相对于其它CMS来说Qphpcms更ؓ(f)专业Q功能也更ؓ(f)强大。但Q对于站长的入门要求也就E微的高了一些?特别是对根基比较差的站长Q很多都是看的一头雾水。我个h接触PHPCMS2008 也就两周多。看了论坛的几篇教程Q今天想惻I我决定自己写下一些用过E中的心得,以方便广大新手站长能够轻村օ门,q打造出属于自己的网站。【前提声明:(x)个h水^有限Q有不和不对的地方q望大家多多指教。?br />
一。模板制作之标签?br />
1. 内容标签
在官Ҏ(gu)杉K里边Q我们可以看到如 {tag_|站首页头条} q样的标{?br />
q种标签是“内容标签”Q可以在后台?#8220;模板风格”->?#8220;内容标签理”里进行查看和修改?br />
q种标签属于模块化的标签Q也是说它通过SQL语句查询配合数据调用条g赋值到模板通过模板引擎来进行读取和生成的?大家~辑一下模板基本上p看出来?nbsp; 【如果打做Z个个性化的网站,我不太推崇过多的使用q种方式Q当Ӟ很多重复调用的部分,用这U方式还是不错的?或许是因Z人喜好,我个Z太常用这U方式,所以这里就不多Ԍ我们今天主要要讲一下get?br />
2. get常用调用方式
我觉得这U方式的灉|性很强大。个人推荐。下面将重点说一下,get的几U常用调用方式,个h认ؓ(f)Q做PHPCMS的模板,了解了get基本上就够用了?br />
Q?Q调用一个栏目下的最斎ͼ带羃略图的文章,同时调用v内容介(多个栏目ID调用Q?br />
以下为模板中的标{?br />
<div class="oz_z1" id="tt_index"><!--中一开始资讯推?->
{get sql="select*from phpcms_content where catid>=79 and catid<=85 and status=99 and posids=1 and `thumb`!='' order by updatetime desc" rows="1"}
<li><A href="{$r[url]}" target="_blank">{str_cut($r[title], 40)}</A></li><br />
<div id="tit_z1">
<dt><A href="{$r[url]}" title="{str_cut($r[title], 50)}" target="_blank"><img src="{thumb($r[thumb], 110, 75)}" /></A></dt>
<dl><A href="{$r[url]}" target="_blank">{str_cut($r[description],100)}</A></dl>
</div>
{/get}
在用get的时候注意一点就是{/get} get的结束标{?
说明Q?phpcms_content q是数据库里Ҏ(gu)据表的名Uͼ如果你的数据表前~q行了修改,q里也必进行修攏V如果你在安装phpcms的时候设|的为woshi_. 那么q里应该是woshi_content
catid>=79 and catid<=85 栏目ID大于{于75q且栏目id于{于85. 也就是调用栏目ID75 76 77 78 79 80 81 82 83 84 85的文章?/font>
posids=1 文章cd为首|?/font>
status=99 文章已经通过审核
`thumb`!='' ~略图不为空Q也是必须要有~略?/font>
{$r[url]} 内容늚地址
{str_cut($r[title], 40)} 文章标题Q长度限制ؓ(f)40
{thumb($r[thumb], 110, 75)} ~略囑֜址 ~略囑֤限制ؓ(f)width=110px height=75px
{str_cut($r[description],100) 文章介调?介长度ؓ(f)100
通过上面的调用及(qing)模板语句(div li ),我通过css的控制可得出如下test.gif?具体的css部分Q我们后面在讌Ӏ?br />
Q?Q调用多个栏目IDQ(栏目IDZq箋IDQ?nbsp; 也就是说我们在栏目徏立初期有栏目ID75 76 77 78 79 80 81 82 83 84 85?而在建立了其它栏目之后,我们有在q个栏目d了一个新的栏目,产生了一个新的ID。比如ID 95. 那么我们应该怎么样用get来调用啦Q?br />
在(1Q中我们使用了catid>=XX and catid<=XX 如果说现在要加入catid95 那么׃能在用and?nbsp; 而应该?or ?具体方式如下
{get sql="select*from phpcms_content where catid>=79 and catid<=85 or catid=95 order by updatetime desc" rows="6"}
{/get}
如果说我们这里调用的是文章标题列?nbsp; 数量? 那么我们要在div中@环的应该是li了。具体如?br />
<div class="oz_z2">
{get sql="select*from phpcms_content where catid>=79 and catid<=85 or catid=95 order by updatetime desc" rows="6"}
<li><A href="{$r[url]}" target="_blank">{str_cut($r[title], 38)}</A></li>
{/get}
</div>
q里说明一点updatetime 的排序方式?比如说我们想按照文章录入的时间来q行降序排列Q也是吧最新的排前面)Q在使用updatetime之后Q我们会(x)发现Q编辑一前的文章之后Q这文章被调用C列表的最前面。所以updatetime是文章编辑或修改旉Q如果我们不想以q种方式q行排序Q而是想以文章录入旉q行降序排列Q可以吧q里的updatetime改ؓ(f)inputtime
Q?Q用get调用 栏目名及(qing)其相对应的栏目地址
在用get 的sql查询Ӟ我们通常都会(x)查询phpcms_contentq个表,在这个表里边包括了所有的文章?qing)下载等内容信息Q但栏目只有id却没有栏目名Q所有的栏目信息都在 phpcms_category q个表里边,其实打开数据库一看,我们׃目了然了。所以在调用栏目名及(qing)其地址的时候我们需要借助{str_cut($CATEGORY[$r[catid]][catname],4)} q种方式来进行参C递,呵呵Q我索性连栏目名长度截取也加上Q方便大家吧。呵c?有够BT Q呵?nbsp; 具体CZ如下Q?br />
<div class="oz_z2">
{get sql="select*from phpcms_content 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="_blank">{str_cut($CATEGORY[$r[catid]][catname],4)}</a>]</p><A href="{$r[url]}" target="_blank">{str_cut($r[title], 38)}</A></li>
{/get}
</div>
q个get调用的栏目ID分别?2 53 54 55 77 78 zdzȝ 呵呵Q?
{$CATEGORY[$r[catid]][url]} 栏目地址
{str_cut($CATEGORY[$r[catid]][catname],4)} 栏目?长度? Ҏ(gu)自己需要调整吧~
其他参数前面介绍了! q里׃多说了 l箋下一个问题?br />
Q4Q如何调用后台设|的标题颜色Q?Q
其实q个东东 一炚w不神U?只是?lt;span></span>而已Q?呵呵 接下来就直接CZ吧!
<div id="hdlist">
<ul>
{get sql="select*from 99inet_content where catid=40 and status=99 order by updatetime desc" rows="7"}
<li> [{date('m-d', $r <A href="{$r[url]}" target="_blank">{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('m-d', $r[updatetime])}] q个地方调用的是文章日期
在这个小部分Q大家注意我标出来的蓝色代码和量个绿色代码,有h?x)问Qؓ(f)什么调用两ơ标题里Q? 呵呵 别?nbsp; 接下来告诉大家ؓ(f)什么?
<A href="{$r[url]}" target="_blank">{if $r[style]}<span class="{$r[style]}">{str_cut($r[title], 22)}</span>{else}{str_cut($r[title], 22)}{/if}</A>
其实q段代码好简单奥Q有html基础Ch都能看明白。{if$r[style]} 如果数据库相对应的文章的style字段不ؓ(f)I(也就是有内容Q,q?lt;span class="{$r[style]}">{str_cut($r[title], 22)}</span> ,也就是说如果q篇文章你设|了标题颜色或者效果(加粗、斜体等Q,那么最l生成的html应该是q样?
<a href="文章地址" target="_blank"><span class="b">|站标题</span></a> 其实class的指是官方设|好的,q里的b是标题加_?其值我们在q里不深I?nbsp;
如果说在后台没有l标题加M效果。你们生成的html是
<a href="文章地址" target="_blank|站标题</a> 没有调用<span>而已
我尽量说的比较简单了Q我认ؓ(f)q个实应该很简单了吧?呵呵
忘了一点,不过记得以前有位仁兄好像发过Q想象我也加上吧Q这样基本上get的常规用法就比较全面了?/strong>
Q?Q调用的技巧,limit参数?【比如:(x)调用从第二条开始的q箋几条信息?br />
<div id="hdlist">
<ul>
{get sql="select*from phpcms_content where catid=39 and status=99 order by updatetime desc limit 2,7"}
<li>[{date('m-d', $r[updatetime])}] <A href="{$r[url]}" title="{str_cut($r[title], 50)}" target="_blank">{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>
调用栏目id?9q且通过审核的文章,从第二条L(fng)q箋7条信息?q个里边׃用了上面讲的调用后台讄的标题颜艌Ӏ?br />
?nbsp; ?nbsp; 相当的简单?q次真的完了?奥对了,在用limit?不可同时使用row Q至于ؓ(f)什么?你想惛_明白?br />
Q?Q如何用get在栏目首调用所有文章模型的文章 Q这个是模型的全部)
<div class="test">
{get sql="SELECT contentid,catid,typeid,areaid,title,style,thumb,keywords,description,userid,updatetime,inputtime,url FROM `yimi_content` WHERE status=99 ".get_sql_catid($cid)." ORDER BY contentid DESC" rows="40"}
<li><a href="{$r[url]}">{$r[title]}</a></li>
{/get}
</div>
可惜是模型的全部 大家可以试验一?nbsp; l个思\ 研究?..
Q?Q最q发C个问题,哪就是在get的用过E中 大家比较困惑的是id的取|q点是我没想到的Q呵呵,所以我今天增加了栏目首调用所有子栏目内容的说明。同时也提一下,id的另一U赋值方法?
{get sql="SELECT * FROM `phpcms_content` c,`phpcms_content_count` n WHERE c.contentid=n.contentid AND c.`status`=99 and catid in (39,40,41,42,43,44,45,46,47,48,66,68,69,70,71,72,73,74,75,76) ORDER BY contentid DESC" rows="10"}
<li><a href="{$r[url]}">{$r[title]}</a></li>
{/get}
用哪U方法就看自己喜好吧Q反正个辑ֈ目的p?br />
注意在(6Q和Q?Q中?`phpcms_content` q个W号是``而不?' 搞错了没办法执行?/strong>
|