相对于其它CMS来说 ,phpcms更为专 业,功能也更为强大。 但,对于站长的入门要 求也就稍微的高了一些 。 特别是对根基比较差的 站长,很多都是看的一 头雾水。我个人接触P HPCMS2008 也就两周多。看了论坛 的几篇教程,今天想想 ,我决定自己写下一些 使用过程中的心得,以 方便广大新手站长能够 轻松入门,并打造出属 于自己的网站。【前提 声明:个人水平有限, 有不足和不对的地方还 望大家多多指教。】 一。模板制作之标签篇 1. 内容标签 在官方模板页里边,我 们可以看到如 {tag_网站首页头 条} 这样的标签。 这种标签就是“内容标 签”,可以在后台的“ 模板风格”->的“内 容标签管理”里进行查 看和修改。 这种标签属于模块化的 标签,也就是说它通过 SQL语句查询配合数 据调用条件赋值到模板 通过模板引擎来进行读 取和生成的。 大家编辑一下模板基本 上就能看出来。 【如果打算做出一个个 性化的网站,我不太推 崇过多的使用这种方式 ,当然,很多重复调用 的部分,用这种方式还 是不错的。 或许是因为个人喜好, 我个人不太常用这种方 式,所以这里就不多讲 ,我们今天主要要讲一 下get】 2. get常用调用方式 我觉得这种方式的灵活 性很强大。个人推荐。 下面将重点说一下,g et的几种常用调用方 式,个人认为,做PH PCMS的模板,了解 了get基本上就够用 了。 (1)调用一个栏目下 的最新,带缩略图的文 章,同时调用出起内容 简介(多个栏目ID调 用) 以下为模板中的标签 <div class="oz_ z1" id="tt_ind ex"><!--中一 开始资讯推荐--> {get sql="selec t*from phpcms_con tent where catid>=79 and catid<=85 and status=99 and posids=1 and `thumb`!=& apos;&apos ; order by updatetime desc" rows="1"} <li><A href=" {$r[url]} " target="_b lank"> {str_cut($ r[title], 40)} </A></li>< br /> <div id="tit_z1 "> <dt><A href=" {$r[url]} " title="{st r_cut($r[t itle], 50)}" target="_b lank"><img src=" {thumb($r[ thumb], 110, 75)} " /></A></dt > <dl><A href="{$r[ url]}" target="_b lank"> {str_cut($ r[descript ion],100)} </A></dl> </div> {/get} 在使用get的时候注 意一点就是{/get } get的结束标签。 说明: phpcms_con tent 这是数据库里边数据表 的名称,如果你的数据 表前缀进行了修改,这 里也必须进行修改。如 果你在安装phpcm s的时候设置的为wo shi_. 那么这里就应该是wo shi_conten t catid>=79 and catid<=85 栏目ID大于等于75 并且栏目id小于等于 85. 也就是调用栏目ID7 5 76 77 78 79 80 81 82 83 84 85的文章。 posids=1 文章类型为首页推荐 status=99 文章已经通过审核 `thumb`!=& apos;&apos ; 缩略图不为空,也就是 必须要有缩略图 {$r[url]} 内容页的地址 {str_cut($ r[title], 40)} 文章标题,长度限制为 40 {thumb($r[ thumb], 110, 75)} 缩略图地址 缩略图大小限制为wi dth=110px height=75p x {str_cut($ r[descript ion],100) 文章简介调用 简介长度为100 通过上面的调用及模板 语句(div li ),我通过css的控 制可得出如下test .gif。 具体的css部分,我 们后面在讲。 (2)调用多个栏目I D,(栏目ID为不连 续ID) 也就是说我们在栏目建 立初期有栏目ID75 76 77 78 79 80 81 82 83 84 85。 而在建立了其它栏目之 后,我们有在这个栏目 添加了一个新的栏目, 产生了一个新的ID。 比如ID 95. 那么我们应该怎么样使 用get来调用啦? 在(1)中我们使用了 catid>=XX and catid<=XX 如果说现在要加入ca tid95 那么就不能在用and 了 而应该使用 or 。 具体方式如下 {get sql="selec t*from phpcms_con tent where catid>=79 and catid<=85 or catid=95 order by updatetime desc" rows="6"} {/get} 如果说我们这里调用的 是文章标题列表 数量为6 那么我们要在div中 循环的就应该是li了 。具体如下 <div class="oz_ z2"> {get sql="selec t*from phpcms_con tent where catid>=79 and catid<=85 or catid=95 order by updatetime desc" rows="6"} <li><A href="{$r[ url]}" target="_b lank">{str _cut($r[ti tle], 38)}</A></ li> {/get} </div> 这里说明一点upda tetime 的排序方式。 比如说我们想按照文章 录入的时间来进行降序 排列(也就是吧最新的 排前面),在使用up datetime之后 ,我们会发现,编辑一 前的文章之后,这篇文 章被调用到了列表的最 前面。所以updat etime是文章编辑 或修改时间,如果我们 不想以这种方式进行排 序,而是想以文章录入 时间进行降序排列,可 以吧这里的updat etime改为inp uttime (3)使用get调用 栏目名及其相对应的栏 目地址 在使用get 的sql查询时,我们 通常都会查询phpc ms_content 这个表,在这个表里边 包括了所有的文章及下 载等内容信息,但栏目 只有id却没有栏目名 ,所有的栏目信息都在 phpcms_cat egory 这个表里边,其实打开 数据库一看,我们就一 目了然了。所以在调用 栏目名及其地址的时候 我们需要借助{str _cut($CATE GORY[$r[ca tid]][catn ame],4)} 这种方式来进行参数传 递,呵呵,我索性连栏 目名长度截取也加上, 方便大家吧。呵呵。 有够BT ,呵呵 具体示例如下: <div class="oz_ z2"> {get sql="selec t*from phpcms_con tent where catid>=52 and catid<=55 or catid=50 or catid=77 or catid=78 order by updatetime desc" rows="6"} <li><p>[<a href=" {$CATEGORY [$r[catid] ][url]} " target="_b lank"> {str_cut($ CATEGORY[$ r[catid]][ catname],4 )} </a>]</p>< A href="{$r[ url]}" target="_b lank">{str _cut($r[ti tle], 38)}</A></ li> {/get} </div> 这个get调用的栏目 ID分别为52 53 54 55 77 78 活学活用 呵呵! {$CATEGORY [$r[catid] ][url]} 栏目地址 {str_cut($ CATEGORY[$ r[catid]][ catname],4 )} 栏目名 长度为4 根据自己需要调整吧~ 其他参数前面介绍了! 这里就不多说了 继续下一个问题。 (4)如何调用后台设 置的标题颜色??? 其实这个东东 一点都不神秘。 只是个<span>< /span>而已! 呵呵 接下来就直接示例吧! <div id="hdlist "> <ul> {get sql="selec t*from 99inet_con tent where catid=40 and status=99 order by updatetime desc" rows="7"} <li> [{date(&ap os;m-d&apo s;, $r <A href="{$r[ url]}" target="_b lank"> {if $r[style]} <span class="{$r [style]}"> {str_cut($ r[title], 22)} </span> {else} {str_cut($ r[title], 22)} {/if} </A></li> {/get}</ul > </div> {get}部分俺就不 说了,上面基本上都说 了~ [{date(&ap os;m-d&apo s;, $r[updatet ime])}] 这个地方调用的是文章 日期 在这个小部分,大家注 意我标出来的蓝色代码 和量个绿色代码,有人 会问:为什么调用两次 标题里?? 呵呵 别急 接下来告诉大家为什么 。 <A href="{$r[ url]}" target="_b lank"> {if $r[style]} <span class="{$r [style]}"> {str_cut($ r[title], 22)} </span> {else} {str_cut($ r[title], 22)} {/if} </A> 其实这段代码好简单奥 ,有html基础地人 都能看明白。{if$ r[style]} 如果数据库相对应的文 章的style字段不 为空(也就是有内容) ,就生成< span class="{$r [style]}"> {str_cut($ r[title], 22)} </span> ,也就是说如果这篇文 章你设置了标题颜色或 者效果(加粗、斜体等 ),那么最终生成的h tml页应该是这样的 <a href="文章地址 " target="_b lank"><spa n class="b"> 网站标题</span ></a> 其实class的指是 官方设置好的,这里的 b是标题加粗。 其值我们在这里不深究 。 如果说在后台没有给标 题加任何效果。你们生 成的html就是 <a href="文章地址 " target="_b lank网站标题</ a> 没有调用<span> 而已 我尽量说的比较简单了 ,我认为这个确实应该 很简单了吧。 呵呵 忘了一点,不过记得以 前有位仁兄好像发过, 想象我也加上吧,这样 基本上get的常规用 法就比较全面了。 (5)调用的技巧,l imit参数。 【比如:调用从第二条 开始的连续几条信息】 <div id="hdlist "> <ul> {get sql="selec t*from phpcms_con tent where catid=39 and status=99 order by updatetime desc limit 2,7"} <li>[{date ('m-d ', $r[updatet ime])}] <A href="{$r[ url]}" title="{st r_cut($r[t itle], 50)}" target="_b lank">{if $r[style]} <span class="{$r [style]}"> {str_cut($ r[title], 22)}</span >{else}{st r_cut($r[t itle], 22)}{/if}< /A></li> {/get}</ul > </div> 调用栏目id为39并 且通过审核的文章,从 第二条起的连续7条信 息。 这个里边就使用了上面 讲的调用后台设置的标 题颜色。 简单 简单 相当的简单。 这次真的完了。 奥对了,在使用lim it是 不可同时使用row ,至于为什么?你想想 就明白了 (6)如何使用get 在栏目首页调用所有文 章模型的文章 (这个是模型的全部) <div class="tes t"> {get sql="SELEC T contentid, catid,type id,areaid, title,styl e,thumb,ke ywords,des cription,u serid,upda tetime,inp uttime,url FROM `yimi_cont ent` WHERE status=99 ".get_sql_ catid($cid )." ORDER BY contentid DESC" rows="40"} <li><a href="{$r[ url]}">{$r [title]}</ a></li> {/get} </div> 可惜是模型的全部 大家可以试验一下 给个思路 研究中... (7)最近发现一个问 题,哪就是在get的 使用过程中 大家比较困惑的是id 的取值,这点是我没想 到的,呵呵,所以我今 天增加了栏目首页调用 所有子栏目内容的说明 。同时也提一下,id 的另一种赋值方法。 {get sql="SELEC T * FROM `phpcms_co ntent` c,`phpcms_ content_co unt` n WHERE c.contenti d=n.conten tid AND c.`status` =99 and catid in (39,40,41, 42,43,44,4 5,46,47,48 ,66,68,69, 70,71,72,7 3,74,75,76 ) ORDER BY contentid DESC" rows="10"} <li><a href="{$r[ url]}">{$r [title]}</ a></li> {/get} 用哪种方法就看自己喜 好吧,反正个人认为能 达到目的就行。