phpcms2008几个基本模板文件是构成网站最重要的部分,分别是index.html(首页),list.html(列表页),category.html(栏目页),show.html(内容页).我们改的时候尽量不要改掉系统原来的名字,直接在原模板里改,后面会省很多事.特别是内容页模板,如果你改掉,到时你发的每一篇文章,都要去另外选下模板,文章多了累死你.
好了,index.html从头部开始.主要常用的标签:
{$head[title]} 网页标题 包括seo标题 若要实现自定义的话 可以去include/html.class.php文件里去修改它的显示方式.函数不难,学过php的人都看的懂.
{$head[keywords]} {$head[description]} 分别为关键字与描述
头部加上
phpcms2008 有个很好用的功能 就是可以直接用{if $a==0}判断要显示的东西{/if},这个灵活用的话,可以实现很多自定义的功能.也可以直接写原生php语法.
例
- {if $catid==0}<link href="{SKIN_PATH}css/index.css" rel="stylesheet" type="text/css">{/if}
这里就是通过判断当前页的的一个$catid==0来让它显示不同的CSS样式文件的,首页的$catid==0,{SKIN_PATH} 解析就是/templates/default/skins/default/加上后面的。
phpcms2008的tag标签 我个人觉得就是get标签的封装.弄懂了完全可以不用,写出来又不好理解,没有get标签灵活易懂.所以大部分我都是用get标签调用.
1.get标签可以指定ID 不管这个ID是栏目ID,还是内容ID都可以.结合数据库表来写,就没有什么调用不出来的,数据库是一个程序员基本技能并且接触最多的,一定要掌握.
2.get标签可以嵌套get标签,可以实现调用当前栏目的子栏目,原理是先调出栏目ID,通过栏目ID调用相关子栏目ID.具体怎么弄就要看数据表了.
这个官方教程都很多,自己多看就是了.
当前位置导航有两种写法,一种是官方的{catpos($catid)},想修改就去include/global.func.php修改 catpos函数,另一种是自定义的很灵活的一种,原理是先调出当前的栏目的父栏目ID(如果有的话),子栏目ID:
- php $flmid=$CATEGORY[$catid][parentid]?>
- <div class="place"><span>您所在的位置:<a href="{$CATEGORY[$flmid][url]}" title="{$CATEGORY[$flmid][catname]}" target="_self">{$CATEGORY[$flmid][catname]}a> >> <a href="{$CATEGORY[$catid][url]}" title="{$CATEGORY[$catid][catname]}" target="_self">{$CATEGORY[$catid][catname]}a> >> <a href="{$url}" title="{$title}" target="_self">{$title}a>span>div>
代码详解:
{$title} --文章标题
{$url} ----文章url
{$CATEGORY[$catid][catname]} ---文章所在栏目的名称
{$CATEGORY[$catid][url]} ----文章所在栏目的url
$flmid=$CATEGORY[$catid][parentid]?> 调用文章所在栏目的父栏目ID
{$CATEGORY[$flmid][catname]} ---文章所在栏目的父栏目的名称
{$CATEGORY[$flmid][url]} ----文章所在栏目的父栏目的URL
$CATEGORY是个全局变量,所有模板页面都可以直接用它,保存了整个系统所有栏目的信息(无论是内部栏目,单网页栏目,还是外部链接栏目).其内容是由/data/cache/category.php返回的.
例如:
$CATEGORY[$catid][catname] 当前栏目名称
$CATEGORY[$catid][parentid] 当前栏目的父栏目id
$CATEGORY[$CATEGORY[$catid][parentid]][catname] 当前栏目的父栏目名称,子栏目arrchildid同理.
$CATEGORY数组内部如下
- array (
- 'catid' => '1', 栏目号
- 'module' => 'phpcms', 栏目所属于的模块,一般来均为phpcms
- 'type' => '1', 栏目的类型,0为内部栏目,1为单网页目录,2为外部链接栏目
- 'modelid' => '0', 当前栏目所绑定的功能模型的id, 单网页及外部链接栏目的modelid为0
- 'parentid' => '0', 父栏目的id号,如果为0,则表明是一级栏目
- 'arrparentid' => '0', 当前栏目所有祖先栏目的id,可能是逗号分隔的字符串,没有子栏目一级栏目此值为0,第二级栏目的此值为 "0,n".
- 'child' => '1', 当前栏目是否有子栏目
- 'arrchildid' => '1,2,3,4,5', 当前栏目自己以及其所有后代栏目的id号,用逗号分隔,这个值相当有用.
- 'catname' => '网站介绍', 栏目的名称
- 'style' => '', 栏目的样式,即包含栏目名称颜色及是否加粗的信息,可能的值是 "c1 b", 第一个值可能是c1--c15,代表了bg1--bg15的css样式所定义的颜色.
- 'p_w_picpath' => '', 栏目图片
- 'description' => '',栏目的描述
- 'parentdir' => '', 父栏目的目录,是完整的目录结构,第一级栏目此值为空.
- 'catdir' => 'about', 栏目指定的目录
- 'url' => 'about/index.html', 栏目链接地址
- 'content' => '网站介绍', 未使用
- 'items' => '0', 栏目中的信息数,在目前的版本中,这不包含子栏目的信息数.
- 'hits' => '0', 栏目点击数
- 'listorder' => '1', 排序
- 'ismenu' => '0', 是否在导航栏显示,目前的默认栏目标签,还无法直接实现显示非一级栏目于导航栏
- 'template' => 'page', 栏目模板
- 'ishtml' => '1', 是否生成静态,单网页栏目才有此项,内部栏目及外部链接栏目无此项
- 'category_urlruleid' => '1',栏目的url规则
- 'meta_title' => '',
- 'meta_keywords' => '',
- 'meta_description' => '',
- )
然后搜索下面是主要代码:
- <form action="/search/?type=all" method="get" onsubmit="return CheckPost();">
- <span>站内搜索:span>
- <input type="hidden" name="kwtype" value="0" />
- <input type="hidden" name="searchtype" value="titlekeyword" />
- <input type="text" value="" name="q" id='q' class="search_input" size="30"/><span>
- <input type="p_w_picpath" name="p_w_picpathField" id="p_w_picpathField" src="templates/default/skins/default/p_w_picpaths/search_buttom_bg.png" />span>
- form>
其中onsubmit是个验证提交内空是否为空.提交按钮可以是图片,但最好是submit
看懂后只要拿几个关键点,就行了.