admin管理员组

文章数量:1530842

2023年12月17日发(作者:)

摘 要

PHPcms 是中国领先的网站内容管理系统,同时也是一个开源的PHP开发框架。Phpcms由内容模型、会员、问吧、专题、财务、订单、广告、邮件订阅、 短消息、自定义表单、全站搜索等20多个功能模块组成,内置新闻、图片、下载、信息、产品5大内容模型。Phpcms

采用模块化开发,支持自定义内容模型和会员模型,并且可以自定义字段。

PHPCMS的技术优势主要体现在系统的稳定性、扩展性、安全性、全面性,在负载能力和发布效率上具有突出的优势。PHPCMS的会员系统非常强大,特别适合大型门户、行业网站的运营。

PHPCMS采用国内领先模板技术,全站采用DIV+css设计。使用者可以通过修改模板结合二次开发,做出适合自己需求的网站。

关键词 :

PHPCMS PHPCMS模板制作 PHPCMS二次开次 GET语法使用

目 录

第一章:前言........................................1

第二章:PHPCMS模板结构及其位臵.............................1

第三章:PHPCMS模板制作及相关知识...........................3

3.1 PHPCMS的模板机制...............................3

3.2 PHPCMS模板常用变量含义.........................4

3.3 phpcms模板语法规则.............................5

3.4 PHPCMS get语法规则.............................6

3.5 模板解析、制作思路及一些常用的例子..............8

第四章:总结.................................................13

第五章:

参考文献..............................................13

一、前言

所谓PHPCMS网站模板,就是生成网页的“模子”,主要包括固定的图片、表格、颜色等美术风格,以及要从数据库输出的数据标签,还有简单的phpcms定义的语法(也可以是很复杂的php语法)。PHPCMS每个网站的每个栏目,都可以设臵不同的模板,最终栏目的网页都是一个“模子”里出来的,应此这个栏目的网页外观、风格是一致的。

PHPCMS的模板按照模块功能,分别放在这些模块名字命名的目录下面,而其中最重要的内容栏目模板,如新闻、产品、信息、图片、下载、视频以及首页的模板则放到phpcms目录下面。

phpcms目录,,是网站所有网页的页头和页尾模板,则是网站首页模板。文件和 是新闻模型的栏目首页和栏目列表页,由于phpcms认为新闻模型是最重要的吧,因此新闻模型的模板默认不要带后缀,其他模型的栏目首页和列表页则要带上后缀,如,,这是信息栏目模型的栏目首页、栏目列表页,其他类似。至于一些扩充模型,如黄页等,其模板则在yp目录下面。

模板生成网页的过程。phpcms的网页允许生成静态网页和动态网页,不管是静态还是动态,风格都由模板限定。首先,网站管理员要把相应模型的模板放到模板目录下面,并在管理后台设定模板方案,确定后,phpcms将把模板编译为相应的php文件,保存到datacache_template下面。编译过程实际上就几条语句,把模板中的phpcms语句转换为php语句,把数据标签翻译为sql数据库操作语句,这就成了标准的php文件,服务器可以直接执行了。对于动态网页来说,工作已经完成了。静态网页则还要做一次“臵换”,执行php模板文件,按照php语法执行sql语句,把sql语句输出的结果再和模板结构部门组合成网页文件(html),并写到服务器空间里面。

这就是pgpcms系统的模板机制,灵活运用这个机制,可以设定不同子栏目灵活多变的模板。phper也要注意的是,直接改datacache_template下面的php模板文件是没用的,必须改templates下面的静态模板。

二、PHPCMS模板结构及其位置

首先从官网把phpcms2008最新版本下载下来,并安装好。安装好之后在网站管理后台里的“网站配臵”--“基本信息”--“生成文件扩展名”那设臵生成 html

扩展名,然后更新首页和缓存。网站程序就会自动生成HTML页面。打开网站下的./templates/default/phpcms/ 目录就可以看到。templates/default/是官方默

认模板风格目录。我截图给大家看

大家也可以登录网站后台管理-,在“模板风格”--“管理模板”菜单里找到这些模板名称。如下图:

完整的首页模板就是由里面的(头部)、(首页)、(尾部) 三个模板文件组成的,如果想修改首页就是修改这几个模板。下面我把常用的模板名称列出来,让大家了解。

模板目录里,以category 开头的都是栏目页

如:

文章栏目页

category_ 下载栏目页

category_ 信息栏目页

category_ 图片信息页

category_ 产品栏目页

category_ 视频栏目页

以list 开头的都是列表页

如:

文章列表页

list_ 下载列表页

list_ 图片列表页

list_ 产品列表页

list_ 视频列表页

以show开头的都是内容页

如:

文章内容页

show_ 下载内容页

show_ 信息内容页

show_ 图片内容页

show_ 产品内容页

show_ 视频内容页

上面就是PHPCMS的基本模板名称,如果你想要制作或修改模板,只要找到相应的模板修改就行了。其它以TAG开头的模板都一些标签模板,在后面我再为大家详细解释。官方PHPCM默认的每个频道基本是由栏目页、列表页、内容页 这三个页面组成,头部和尾部都是通用的。所以我们做模板或是仿模板的时候一般都是按:

1、网站首页

2、文章—文章栏目页—文章列表页—文章内容页

3、图片—图片栏目页—图片列表页—图片内容页

4、下载频道同上

5、信息频道同上

6、其他单一页面

这个顺序来做。

三、PHPCMS模板制作

3.1 PHPCMS的模板机制

所谓网站模板,就是生成网页的“模子”,主要包括固定的图片、表格、颜色等美术风格,以及要从数据库输出的数据标签,还有简单的phpcms定义的语法(也可以是很复杂的php语法)。PHPCMS每个网站的每个栏目,都可以设置不同的模板,最终栏目的网页都是一个“模子”里出来的,应此这个栏目的网页外观、风格是一致的。

PHPCMS的模板按照模块功能,分别放在这些模块名字命名的目录下面,而其中最重要的内容栏目模板,如新闻、产品、信息、图片、下载、视频以及首页的模板则放到phpcms目录下面。

phpcms目录,,是网站所有网页的页头和页尾模板,则是网站首页模板。文件和 是新闻模型的栏目首页和栏目列表页,由于phpcms认为新闻模型是最重要的吧,因此新闻模型的模板默认不要带后缀,其他模型的栏目首页和列表页则要带上后缀,如,,这是信息栏目模型的栏目首页、栏目列表页,其他类似。至于一些扩充模型,如黄页等,其模板则在yp目录下面。

下面说说模板生成网页的过程。

phpcms的网页允许生成静态网页和动态网页,不管是静态还是动态,风格都由模板限定。首先,网站管理员要把相应模型的模板放到模板目录下面,并在管理后台设定模板方案,确定后,phpcms将把模板编译为相应的php文件,保存到datacache_template下面。编译过程实际上就几条语句,把模板中的phpcms语句转换为php语句,把数据标签翻译为sql数据库操作语句,这就成了标准的php文件,服务器可以直接执行了。对于动态网页来说,工作已经完成了。静态网页则还要做一次“置换”,执行php模板文件,按照php语法执行sql语句,把sql语句输出的结果再和模板结构部门组合成网页文件(html),并写到服务器空间里面。

这就是pgpcms系统的模板机制,灵活运用这个机制,可以设定不同子栏目灵活多变的模板。phper也要注意的是,直接改datacache_template下面的php模板文件是没用的,必须改templates下面的静态模板。

3.2 PHPCMS模板常用变量含义

{$head[title]}页面标题,用法:{$head[title]}-{$PHPCMS[sitename]}

{$PHPCMS[sitename]}网站名称用法:{$head[title]}-{$PHPCMS[sitename]}

{$head[keywords]}关键字用法:

{$head[description]}网页描用法:

{$PHPCMS[version]}phpcms版本用法:

{$PHPCMS[version]}">PHPCMS_PATH}指向网站根目录用法:

{$MODULE[ads][linkurl]}广告模块域名路径用法:

{$MODULE[vote][linkurl]}投票模块域名路径与上面面是相同的,这样可以将模块绑定不同的域名,而路径不会有错误。

{$skindir}指向模版风格文件夹/templates/default/skins/default

{$PHP_SITEURL}]}')">加入收藏】

网站的域名地址用用法:法:【

3.3 phpcms模板语法规则

1、变量表示

{$name}被解析成,表示显示变量$name的值,其中的“name”由英文字母、数字和下划线组成首字母必须是英文字母或者下划线。

2、常量表示

{name}被解析成,表示显示常量name的值,其中的“name”由英文字母、数字和下划线组成首字母必须是英文字母或者下划线。

3、条件判断

{if*}*{else}*{else}*{/if}或者{if*}*{/if},其中{if*}中的*就是此判断语句的条件表达式,符合php的表达式。

{if$userid}{$username}{else}{$noname}{/if}

4、循环

{loop$a$b}*{/loop}

或者

{loop$a$b$c}*{/loop},{loop$a$b}*{/loop}

被解析成*

{loop$a$b$c}*{/loop}则被解析成$c){?>*

5.模板包含

{template'modulename','filename'}

例如:{template'phpcms','header'}表示包含模板目录,phpcms目录下文件

建议if和loop语法应该写在html注释符之间,这样可以避免在编辑工具中难看,

例如:

这样写if

这样写loop

如果不习惯这套语法,也可以直接在模板中书写php代码,例如

3.4 PHPCMS get语法规则

Phpcms2008 同时支持 中文标签 和 get代码标签,从而大大的增加了模板制作的速度和效率。中文标签适合美工使用,代码标签适合懂点SQL语句的人使用;需要我们去认真挖掘,Phpcms2008不仅强大,而且易用,下面将会对Phpcms的个性化利器---万能GET标签进行详细的讲解。

GET标签让Phpcms具备了超强的数据整合能力。 Phpcms2008 的 get标签不仅能调用Phpcms系统的数据,同时也可以调用任何其他Mysql数据库数据,并支持分页功能。

Phpcms2008 在新建模板和修改模板页面增加了 get 标签生成器,get 标签生成器可以帮助您列出指定数据源的数据表和字段,通过填空和选择方式生成可用的 get 标签代码。

Phpcms2008 首次提供了最全面的数据字段,对本系统任何数据表和字段都提供了中文说明,这也会大大降低 get 标签的使用难度。

如果说,我不懂SQL怎么办?没有问题,get 标签还有强大的创建工具 Phpcms2008 在新建模板和修改模板页面增加了 get 标签傻瓜式生成器,get 标签生成器可以帮助您列出指定数据源的数据表和字段,通过填空和选择方式生成可用的 get 标签代码。Phpcms2008 首次提供了最全面的数据字段,对本系统任何数据表和字段都提供了中文说明,这也会大大降低 get 标签的使用难度。

一、 get标签样式以及语法

get标签样式:

{get dbsource=" " sql=" "} {/get}

{get dbsource=" " sql=" " /}

get标签语法:

标签属性值必须用双引号括起来( " " )。

如:{get sql=" " /}

标签必须含有结束标记,即正确get标签必须是成对出现:整个Get标签含有结束标记“ {/get}”,或者是“/”。(可以参考上面提到的 “二、get标签样式”)

例如:{get sql=" " }{/get}

标签里面含有的变量,数组和函数必须用“{}”包括。

例如:{str_cut($r[title], 50)}

{$r[url]}

标签 sql语句中条数限制。( rows=" " )

例如:显示10条信息

{get sql=" " rows="10"}

{/get}

标签 sql语句中条件限制。( where )

例如:调用栏目ID为1的信息

{get sql="select * from phpcms_content where catid=1"}

标题:{$r[title]} URL:{$r[url]}

{/get}

二、get 标签参数完整剖析

get dbsource="数据源" dbname="数据库" sql="SQL语句" rows="行数" return="返回变量名称" page="$page"}

输出代码(含返回变量值、数组、函数等)

{/get}

例1:调用本系统单条数据,示例(调用ID为1的信息,标题长度不超过25个汉字,显示更新日期):

{get sql="select * from phpcms_content where contentid=1" /}

标题:{str_cut($r[title], 50)} URL:{$r[url]} 更新日期:{date('Y-m-d', $r[updatetime])}

{/get}

例2:调用本系统多条数据,示例(调用栏目ID为1通过审核的10条信息,标题长度不超过25个汉字,显示更新日期):

{get sql="select * from phpcms_content where catid=1 and status=99 order by updatetime desc"

rows="10"}

标题:{str_cut($r[title], 50)} URL:{$r[url]} 更新日期:{date('Y-m-d', $r[updatetime])}

{/get}

三、get 标签的认识及在模板中如何使用

    {get sql="SELECT * FROM `phpcms_content` c,`phpcms_content_count` n WHERE

    updatetime>'.TIME.'-7*86400 and tid=tid AND c.`status`=99 and catid='$catid'

    '.get_sql_catid($catid).' ORDER BY DESC" rows="8"}

  1. {str_cut($r[title], 88)}
  2. {/get}

这是模板中常见的一个GET语句,最新才开始接触phpcms2008.马上就被她的人性化和超强的功能所征服了„„ 有会员说“只知道是查询语句,不知道具体的含义。”在这我就来解释一下这个get的含义.首先我们从字面上一个个的来解释:

    {get sql="SELECT * FROM `phpcms_content` c,`phpcms_content_count` n WHERE

    updatetime>'.TIME.'-7*86400 and tid=tid AND c.`status`=99 and catid='$catid'

    '.get_sql_catid($catid).' ORDER BY DESC" rows="8"}

  1. {str_cut($r[title], 88)}
  2. {/get}

这就是在模板中常见的用法。

3.5 模板解析、制作思路及一些常用的例子

大家都知道,制作模板之前我们都是先把想要的模板效果样式做成静态的HTML页面,之后再结合PHPCMS模板的变量,结合GET语法把静态的HTML页面转换成PHPCMS可以识别的变量,使PHPCMS可以自动读取PHPCMS程序后台发布的信息,然后在浏览器里显示出来。而这个让静态HTML转换成可以自动读取PHPCMS程序里的内容的方法就是我们需要学的知识。

先给大家举两个例子,用的是 页面的代码。

修改前的静态HTML文件里的网页关键字和网页描述代码:

修成可以自动读取PHPCMS程序里的网页关键字和网页描述内容后的代码:

修改前的静态HTML文件里的网站标题代码:

黑夜之舞网络工作室

修改后的代码:

{$head[title]}

下面我通过官方默认的页面解析,然后通过注释把制作思路说给大家。

"/TR/xhtml1/DTD/">

1.0 Transitional//EN"

/*网页使用的是W3C标准XHTML+CSS ,也就是别人常说的 DIV+CSS */

/*这是官方模板中的网页编码定义,{CHARSET}是只有phpcms才会识别的变量标签,可以自动识别程序的编码

在制作模板的时候改成自己程序相应的编码就行了。假如你的程序编码是GBK的。你改成:

*/

{$head[title]}

/*读取网站的名称*/

/*读取网站的关键字和描述*/

/*这是读取网站后台设置的网址,也是就自己的域名,如果去掉的话,那么CSS样式和其它的图片都无法正常显示*/

/*链接网站ICO图片*/

/*链接模板的CSS样式 做模板的时候把这里改成如:

href="templates/default/skins/default/" rel="stylesheet" type="text/css" />就行。 */

href="/?rssid={$catid}" />

/*读取网页标题*/

type="application/rss+xml" title="{$head[title]}"

/*上面几个JS文件关系到一些重要调用,做模板的时候要记得调用。可以把它们复制到相应模板文件夹里然后再调用*/

{if isset($MODULE['search'])}

{php $types = cache_read('search_');}

{/if}

/*上面是默认搜索部分*/

/*上面是默认会员登录部分*/

/*上面是默认导航菜单部分*/

通过上面的举例,逆向使用,就可以把静态模板转换成PHPCMS可以识别的模板。下面再通过几个例子,加深模板制作的理解。

例:

修改前的代码:

修改后的代码:

    {get sql="select * from phpcms_content where `catid` in (11,12,13) and status=99 order by

    updatetime desc" rows="10"}

  • 查看

    36,'')}

  • {/get}

代码解释:这里是调用11,12,13 这三个栏目里的10篇最新文章,然后通过定义好的样式列表显示出来。

catid in (11,12,13) 括弧中的数字可以换成你调用的栏目的id,记住一定要是子栏目才行。

str_cut($r[title], 36, 标题限制 数字36是显示信息的字数也就是标题的长度 可以调整

{$r[url]} 这个是文章的链接

几个模板中常用的GET标签:

@7天内的点击排行榜

    href="{$r[url]}">{str_cut($r[title],

    {get sql="SELECT * FROM `phpcms_content` c,`phpcms_content_count` n WHERE

    updatetime>'.TIME.'-7*86400 and tid=tid AND c.`status`=99 and catid='$catid'

    '.get_sql_catid($catid).' ORDER BY DESC" rows="8"}

  1. {str_cut($r[title], 88)}
  2. {/get}

@7天内的评论排行榜

    {get sql="SELECT * FROM `phpcms_content` c,`phpcms_content_count` n WHERE

    updatetime>'.TIME.'-7*86400 and tid=tid AND c.`status`=99 and catid='$catid'

    '.get_sql_catid($catid).' ORDER BY ts DESC" rows="8"}

  1. {str_cut($r[title], 88)}
  2. {/get}

@图片推荐GET标签(调用推荐ID为10的带有缩略图的信息)

{get sql="SELECT * FROM `phpcms_content` a, `phpcms_c_news` b WHERE

tid=tid AND `status`=99 AND `thumb`!='' AND a.`contentid`

IN(SELECT `contentid` FROM `phpcms_content_position` WHERE `posid`='10')

".get_sql_catid($catid)." ORDER BY tid DESC" rows="3"}

{/get}

@DIGG排行榜的GET标签

    {get sql="SELECT * FROM phpcms_content c,phpcms_digg d WHERE tid=tid

    AND =99 ORDER BY ts DESC" rows="8"}

  1. {$r[supports]}{str_cut($r[title], 88)}
  2. {/get}

@DIGG排行榜的GET标签

    {get sql="SELECT * FROM phpcms_content c,phpcms_digg d WHERE tid=tid

    AND =99 ORDER BY ts DESC" rows="8"}

  1. {$r[supports]}{str_cut($r[title], 88)}
  2. {/get}

@只调用新闻模型且推荐ID为7的新闻

    {get sql="SELECT * FROM phpcms_content c,phpcms_c_news n,phpcms_content_position p

    WHERE tid=tid and tid=tid and posid=7 and `status`=99

    ORDER BY inputtime DESC" rows="6"}

  • {str_cut($r[title], 88)}
  • {/if}

@调用相关新闻

{get sql="SELECT * FROM phpcms_content c,phpcms_content_tag t WHERE

tid!='$contentid' and tid=tid and =99 AND

IN('.get_sql_in($r[keywords]).') ORDER BY tid DESC" rows="6"}

  • {str_cut($r[title], 88)}
  • {/get}

    四、总结

    PHPCMS模板制作并不困难,只要会点HTML知识,再加上一些SQL语法,结合PHPCMS程序的模板变量就能把模板做出来。平时只要多做几次熟练就行了!

    本文标签: 模板标签栏目