PHPCMS建站经验分享
在这里不对模型、模板设置、category,list,show等静态页面引入、配置文件(caches\configs\database.php 和 caches\configs\system.php)、缓存清理、附件地址替换、等逻辑讲解。
安装CMS-》删除所有栏目-》拷贝default文件夹-》配置文件夹里面的config文件-》后台重新配置站点,选模板风格-》开始引入HTML、JS、建立模型、建立栏目,为栏目选择模板、、、
只是罗列一些数据标签,比如如何获取当前栏目的上级的上级栏目url或者栏目名称、或者站点常量等常用数据标签总结,方便查阅。
网页title信息:
1 <title>{if isset($SEO['title']) && !empty($SEO['title'])}{$SEO['title']}{/if}{$SEO['site_title']}</title>
站点地址:
1 <a href="{siteurl($siteid)}" class="logo"> 2 <img src="{IMG_PATH}img/logo.png" alt=""> 3 </a>
获取栏目ID为1下面所有的栏目信息:
获取某一栏目下的所有栏目信息:

1 {pc:content action="category" catid="1" num="25" siteid="$siteid" order="listorder ASC" return="data"} 2 <?php $i = 1; ?> 3 {loop $data $k $v} 4 <a href="{$v[url]}"; class="navOption navOption{$i} <?php if($i<=3){echo "fl";}?> <?php if($i>3){echo "fr";}?>"><span class="en">{$v[catdir]}</span><span class="cn">{$v[catname]}</span></a> 5 <?php $i++; ?> 6 {/loop} 7 {/pc}
获取指定栏目ID下面的指定某一条信息:

此时如何获取ID为2的里面的内容:
1 <div class="textWrp"> 2 附近的车站:<br><br> 3 {pc:content action="lists" catid="2" num="25" siteid="$siteid" order="listorder ASC" return="data"} 4 {loop $data $k $v} 5 <?php if($k==2){ ?> 6 <span>{$v[description]}</span> 7 <?php }?> 8 {/loop} 9 {/pc} 10 </div>
此时是获取栏目ID为2也就是公共设置下面的ID为2的内容。
action为list或者category,一个是获取栏目信息,一个是获取栏目下面的内容信息。而order之中的排序,listorder是可以设置的,上面的排序左边那个可以输入排序ID进行排序。
数据表之中自带的在主表,自己设置的字段默认在副表,二者一并查出需要加上moreinfo="1".
在点击某一栏目下面的某一篇文章详情的时候,页面跳转,此时不需要在用PC标签进行查询数据,直接就是酱紫的
1 <div class="content"> 2 <h2>{$title}</h2> 3 <p>{$content}</p> 4 </div>
页码切换(show页面):
1 <div class="changeArticle clearfix"> 2 <a href="{$previous_page[url]}" class="prev_article fl">上一篇:{$previous_page[title]}</a> 3 <a href="{$next_page[url]}" class="next_article fr">下一篇:{$next_page[title]}</a> 4 </div>
获取某一栏目下的所有内容信息:

比如此时我们要获取到公司简介(栏目下面已经没有栏目)栏目下面的所有内容(一共四篇文章):

数据标签:
1 <div class="bg"> 2 <div class="imgl"> 3 <img src="{IMG_PATH}img/img06.jpg" width="204" height="504" alt=""> 4 </div> 5 <ul class="showArea"> 6 {pc:content action="lists" catid="$catid" moreinfo="1" num="25" page="$page"} 7 <?php $i = 1; ?> 8 {loop $data $v} 9 <li class="<?php if($i==1){echo "now";}?>"> 10 <div class="title"> 11 <h2>{$v[title]}</h2> 12 <h3>{$v[en_name]}</h3> 13 </div> 14 <div class="content"> 15 {$v[content]} 16 </div> 17 </li> 18 <?php $i++; ?> 19 {/loop} 20 {/pc} 21 </ul> 22 </div>
指定栏目对应的url:
1 <a href="{$CATEGORYS[7][url]}" class="backToList" >查看更多</a>
此时点击查看更多就相当于点击顶部导航栏的 “工程案例”。

假如地址栏上的catid是38,而我们想获取38的上级栏目的名称:
1 {$CATEGORYS[$CAT[parentid]][catname]} //上级
{$CATEGORYS[$catid][catname]} //当前栏目名称
如何获取当前栏目ID的父栏目下面的所有子栏目信息:
1 {pc:content action="category" catid="$CATEGORYS[$catid][parentid]" num="25" siteid="$siteid" order="listorder ASC"
return="data"} 2 <?php $i = 0; ?> 3 {loop $data $k $v} 4 <li style="<?php if($i==0){echo "border:none";}?>">{$v[catname]}
<i class="{if $v[catid]==$catid} cur {/if}"></i>
</li> 5 <?php $i++; ?> 6 {/loop} 7 {/pc}
时间处理:
1 <h3 class="data_box"> 2 <i>{date('d', $v['inputtime'])}</i> 3 <em>{date('Y-m', $v['inputtime'])}</em> 4 </h3>
获取当前栏目的父栏目下面的其中某一特定栏目的栏目信息:
1 {pc:content action="category" catid="$CATEGORYS[$catid][parentid]" num="25"
siteid="$siteid" order="listorder ASC" return="data"} 2 {loop $data $k $v} 3 <?php if($k==39){ ?> 4 <dt>{$v[catname]}<i>{$v[description]}</i><em><b>首页</b> > <b>{$CATEGORYS[$catid][catname]}</b></em></dt>//这里有获取当前内容所属栏目的栏目名称 5 <?php } ?> 6 {/loop} 7 {/pc}
上面呢,是获取当前栏目的父栏目下面的ID为39的子栏目的栏目信息;
1 {template "content","footer"}
包含某个公共部分。
分页的页码:
1 {$pages} 但是在PC标签里面需要加上: page="$page"
拷贝default目录,然后一点点替换content文件夹里面的文件,与数据标签,选用哪个模板文件夹,在站点配置里面设置,扩展-》菜单管理可以设置后台菜单。
如何取出数组data之中的第六个数值:
1 {pc:content action="lists" catid="21" moreinfo="1" num="25" page="$page"} 2 <?php $key=1;?> 3 {loop $data $k $v} 4 <?php if($key==6){ ?> 5 <div class="hb" id="multi" style="background-image:url({$v[shouyezhanshitupian]});"> 6 <a href="{$v[url]}"> 7 <div class="li_box liz li_h1" > 8 <h1>{$v[shouyexiaobiaoti]}</h1> 9 <p>{$v[chanpingongneng]}</p> 10 </div> 11 </a> 12 </div> 13 <?php } ?> 14 <?php $key++;?> 15 {/loop} 16 {/pc}
或者数组之中的任意个元素
如何加载页面时候根据有无page数据(GET参数)来选择是否调用JS方法:
1 <script type="text/javascript"> 2 if(<?php echo $_GET['page'] ? $_GET['page'] : 0; ?>){ 3 c_tab('#left_tab3','au3','au_nav'); 4 } 5 </script>
后台登陆首页:
Phpcms->modules->admin->templates->login.tpl.php
1 <?php defined('IN_ADMIN') or exit('No permission resources.'); ?> 2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 3 <html xmlns="http://www.w3.org/1999/xhtml"> 4 <head> 5 <meta http-equiv="Content-Type" content="text/html; charset=<?php echo CHARSET;?>" /> 6 <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" /> 7 <title><?php echo L('phpcms_logon')?></title> 8 <style type="text/css"> 9 html{ 10 background: #524B8E; 11 } 12 body{ 13 font-family: "Microsoft YaHei", "微软雅黑", Arial, Helv, Helvetica, sans-serif;} 14 div {overflow: hidden;*display: inline-block;} 15 div {*display: block;} 16 .login_box { 17 /*background: url(<?php echo IMG_PATH?>admin_img/login_bg.jpg) no-repeat;*/ 18 position: absolute; 19 left: 50%; 20 top: 50%; 21 margin-left: -375px; 22 margin-top: -150px; 23 width: 750px; 24 height: 300px; 25 background: #fff; 26 overflow: hidden; 27 box-shadow: 0 0 25px 0px rgb(34, 29, 81); 28 } 29 .login_iptbox { 30 padding: 50px 0 0 301px; 31 font-size: 12px; 32 overflow: visible; 33 } 34 .admin_logo{ 35 position: absolute; 36 left: 0; 37 top: 0; 38 width: 301px; 39 } 40 .admin_logo img{ 41 width: 301px; 42 height: 301px; 43 } 44 .login_iptbox .ipt { 45 height: 30px; 46 width: 195px; 47 /*background: url(<?php echo IMG_PATH?>admin_img/ipt_bg.jpg) repeat-x;*/ 48 *line-height: 24px; 49 overflow: hidden; 50 border: 1px solid #C9C7E1; 51 font-size: 25px; 52 text-align: center; 53 } 54 <?php if(SYS_STYLE=='en') { 55 ?> 56 .login_iptbox .ipt { 57 width: 100px; 58 margin-right: 12px; 59 } 60 <?php 61 } 62 ?> 63 .login_iptbox label { 64 width: 150px; 65 text-align: right; 66 font-size: 13px; 67 display: inline-block; 68 *display: inline; 69 *zoom: 1; 70 } 71 .login_iptbox .ipt_reg { 72 width: 75px; 73 /*background: url(<?php echo IMG_PATH?>admin_img/ipt_bg.jpg) repeat-x;*/ 74 *overflow: hidden; 75 padding: 2px 0 2px 2px; 76 font-size: 16px; 77 font-weight: bold; 78 text-align: center; 79 } 80 .login_tj_btn { 81 margin: 0 auto; 82 padding: 10px 0; 83 /*background: url(<?php echo IMG_PATH?>admin_img/login_dl_btn.jpg) no-repeat 0px 0px;*/ 84 background-color: #6961AB; 85 color: #fff; 86 width: 250px; 87 height: 37px; 88 border: none; 89 cursor: pointer; 90 padding: 0px; 91 display: block; 92 font-family: "Microsoft YaHei", "微软雅黑", Arial, Helv, Helvetica, sans-serif; 93 } 94 .yzm { 95 height: 36px; 96 display: inline-block; 97 *display: inline; 98 *zoom: 1; 99 } 100 .yzm img{ 101 width: 110px; 102 height: 36px; 103 vertical-align: middle; 104 } 105 .cr { 106 font-size: 12px; 107 font-style: inherit; 108 text-align: center; 109 color: #ccc; 110 position: absolute; 111 bottom: 5px; 112 left: 473px; 113 } 114 .cr a { 115 color: #ccc; 116 text-decoration: none; 117 } 118 </style> 119 <script language="JavaScript"> 120 <!-- 121 if(top!=self) 122 if(self!=top) top.location=self.location; 123 //--> 124 </script> 125 </head> 126 <body onload="javascript:document.myform.username.focus();"> 127 <div id="login_bg" class="login_box"> 128 <a class="admin_logo" href="#"><img src="<?php echo IMG_PATH?>admin_img/admin_logo.jpg" alt="" /></a> 129 <div class="login_iptbox"> 130 <form action="index.php?m=admin&c=index&a=login&dosubmit=1" method="post" name="myform"> 131 <label><?php echo L('username')?>:</label> 132 <input name="username" type="text" class="ipt" value="" /> 133 <br/> 134 <br/> 135 <label><?php echo L('password')?>:</label> 136 <input name="password" type="password" class="ipt" value="" /> 137 <br/> 138 <br/> 139 <label><?php echo L('security_code')?>:</label> 140 <input name="code" type="text" class="ipt ipt_reg" onfocus="document.getElementById('yzm').style.display='block'" /> 141 <span class="yzm"><?php echo form::checkcode('code_img')?></span> 142 <br/> 143 <br/> 144 <!-- <div id="yzm" class="yzm"><?php echo form::checkcode('code_img')?><br /><a href="javascript:document.getElementById('code_img').src='<?php echo SITE_PROTOCOL.SITE_URL.WEB_PATH;?>api.php?op=checkcode&m=admin&c=index&a=checkcode&time='+Math.random();void(0);"><?php echo L('click_change_validate')?></a></div> --> 145 <input name="dosubmit" value="登 录" type="submit" class="login_tj_btn" /> 146 </form> 147 </div> 148 <div class="cr">Power By <a href="#">广州承胜</a></div> 149 </div> 150 </body> 151 </html>
前台表单:


然后将前台提交信息的表单name属性改成跟后台一样的;

改成这样,隐藏输入值也要传进去的
前台表单action改成那个调用的javascript代码;
当点击进去新闻内页时候,显示的上一篇下一篇按钮
1 <div class="changeArticle clearfix"> 2 <a href="{$previous_page[url]}" class="prev_article fl">上一篇:{$previous_page[title]}</a> 3 <a href="{$next_page[url]}" class="next_article fr">下一篇:{$next_page[title]}</a> 4 </div>
页码一般在list页面,直接{$page}就OK了,
page="$page"记得在Pc标签加上这一句话就好了,还有就是搜索功能的实现:
思路就是照着官方的发送搜索信息的表单改action还有hidden的数值:
首先当然是需要建立搜索字段了

主要建立了搜索分类时候,得到的typeid要是正确的,了解???发送表单要的

1 <form action="{APP_PATH}index.php" method="get" target="_blank" > 2 3 <!-- <input type="hidden" name="m" value="search"/> 4 <input type="hidden" name="c" value="index"/> 5 <input type="hidden" name="a" value="init"/> 6 <input type="hidden" name="typeid" value="54" id="typeid"/> 7 <input type="hidden" name="siteid" value="1" id="siteid"/> 8 <input type="text" name="q" id="q"/> 9 <input type="submit" value="搜 索" class="button" />--> 10 <!-- {php $j=0} 11 {php $search_model = getcache('search_model_'.$siteid, 'search');} 12 {loop $search_model $k=>$v} 13 {php $j++;} 14 <a href="javascript:;" onclick="setmodel({$v['typeid']}, $(this));" style="outline:medium none;" hidefocus="true" {if $j==1 && $typeid=$v['typeid']} class="on" {/if}>{$v['name']}</a>{if $j != count($search_model)}<span> | </span>{/if} 15 {/loop} 16 {php unset($j);} --> 17 <input type="hidden" name="m" value="search"/> 18 <input type="hidden" name="c" value="index"/> 19 <input type="hidden" name="a" value="init"/> 20 <input type="hidden" name="typeid" value="54" id="typeid"/> 21 <input type="hidden" name="siteid" value="1" id="siteid"/> 22 <input type="text" class="text" name="q" id="q"style="float:left"/> 23 <input type="submit" value="搜 索" class="button" style="float:left"/> 24 </form>

主要看看URL有没拼接正确,
然后就是找到搜索结果展示的页面,找到数据表单(搜索结果数据)并且改成自己网站的页面就OK了

这个就是搜索结果页面了,大兄弟,这TM还没思路吗,我TM都给你做完了好吗!!!


浙公网安备 33010602011771号