在邱嵩松sdcms标签、模板与仿站教程 2-4这一节中,我们讲讲sdcms的一些小页面的仿制。我们以公告页为例子,希望大家能举一反三,自己模仿好投票、投稿、地图、友情链接等简单页面,一定要多参考默认模板,这是sdcms的精华部分。想要提高仿站水平,必须先将默认模板中的全部标签好好掌握。
一、先来看公告内容页,head区中,<TITLE>{sdcms:notice_title}</TITLE> <meta name="keywords" content="{sdcms:webkey}" /> <meta name="description" content="{sdcms:webdec}" />这三项分别指公告的标题,网站的全局关键字和描述。当然后两项不写也可以,但从SEO的角度来说,希望大家写上,每个页面都让这些内容存在。
<link href="{sdcms:root}skins/2009/css/sdcms.css" rel="stylesheet" type="text/css" />
<script>var webdir="{sdcms:root}";</script>
<script src="{sdcms:root}editor/xheditor/jquery.js" language="javascript"></script>
<script src="{sdcms:root}skins/2009/js/sdcms.js" language="javascript"></script>
<!--[if lt IE 7]>
<script type="text/javascript" src="{sdcms:root}skins/2009/js/minmax.js"></script>
<![endif]-->
这些是css路径和sdcms用到的js,css路径大家根据实际情况写。js建议全部保留,有时候如果发现功能上不起作用,也有可能是你里没的一些js没加载进来。
然后内容body区,在相应位置替换,{sdcms:notice_title}为公告标题,作者{sdcms:notice_author} ,日期{sdcms:notice_date} ,人气<span id="show_n_hits"><script>get_hits({sdcms:notice_hits},"show_n_hits")</script></span>。
公告内容区用{sdcms:notice_content}替换掉。
分页用{sdcms:notice_page},当公告过长,需要分页时使用,分页标记在后台写公告时,编辑器里有按钮,可以增加。
上一篇:{sdcms:loop top="1" table="sd_notice" where="where id<{sdcms:notice_id}"}<eof>没有资料</eof><a href="{sdcms:root}notice/{id}{sdcms:filetxt}" [if {isurl}=1]target="_blank"[end if]>{title}</a>{/sdcms:loop}
下一篇:{sdcms:loop top="1" table="sd_notice" where="where id>{sdcms:notice_id}" order="id"}<eof>没有资料</eof><a href="{sdcms:root}notice/{id}{sdcms:filetxt}" [if {isurl}=1]target="_blank"[end if]>{title}</a>{/sdcms:loop}
这些标签一般都是固定的。
二、然后我们来看公告列表页:
head区省略不写,跟上面的差不多,注意标题得自己写 如sdcms非官网公告列表。
全部公告列表:{sdcms:page table="sd_notice" pages="{sdcms:pages}"}
<eof><div>没有资料</div></eof>
<h1 class="list_title"><a href="{sdcms:root}notice/{id}{sdcms:filetxt}" [if {isurl}=1]target="_blank"[end if]>{title}</a></h1>
<div class="notice_other">作者:<span>{author}</span> 日期:<span>{adddate date="yyyy-mm-dd hh.ff.ss"}</span></div>
{/sdcms:page}
分页标记:{sdcms:listpage}
热门公告:{sdcms:loop table="sd_notice" top="10" order="hits desc,id desc"}
<dt><a href="{sdcms:root}notice/{id}{sdcms:filetxt}" [if {isurl}=1]target="_blank"[end if]>{title len="26"}</a></dt>
{/sdcms:loop}
最新公告:{sdcms:loop table="sd_notice" top="10"}
<eof><dt>没有资料</dt></eof>
<dt><a href="{sdcms:root}notice/{id}{sdcms:filetxt}" [if {isurl}=1]target="_blank"[end if]>{title len="26"}</a></dt>
{/sdcms:loop}
大家可能对列表的一维循环里的标签代表的意思不明白,这里统一解释下。以{sdcms:xxx}...{/sdcms:loop}包起来的,是一维循环,table="值"指的是从某个数据库表中调用数据,如sd_notice是公告表,sd_info是内容表等;top="数字"是调用前多少条;ispass=1 指审核通过的文章,如果是0,则未审核通过,如投稿的文章默认是未审核; iscreate=1指生成的文章,有些文章虽然存在,但并未允许生成;ispic=1指带图片的文章 等等,这些参数很好理解,试试就知道它们的意思了,然后需要用 and 给连接起来。<eof><dt>没有资料</dt></eof>这句指,如果在上面的指定条件下找不到,就显示没有资料,这样给人的感觉好些,如果什么都不显示,你还不知道哪里出错了呢。isurl=1指是否是外部链接,即这篇内容是链接到你网站以外的地方的,用if套起来指在新窗口打开链接,len=26指显示标题的前26个字符。这些东西大家都可以在sdcms帮助中查阅到,在此仅为举例说明。
好了,这一节就到这儿,下一节,我们讲内容页的标签写法,有了这一节的基础,相信你对照着默认模板也可以自己写了,赶快先试试吧!