Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

[教程] 个人经验SS模板模块代码阅读

[复制链接]
baiyuxiong 发表于 2008-2-10 13:35:17 | 显示全部楼层 |阅读模式
做模板的过程中,经常遇到模块调用代码的使用,我根据自己作SS模板的经验,总结了一下和大家分享,如有不正确的地方,欢迎指正。
官方模板softsea的bbs_index.html.php中,有这样的代码(为下文方便,我在前面加了[1]、[2]……):
<!--热门帖子列表(全部)-->
[1]   <!--{block name="bbsthread" parameter="order/views
DESC/limit/0,6/cachetime/92400/subjectlen/40/subjectdot/1/cachename/hotthread/tpl/data"}-->
[2]   <div id="all" class="tabcontent" style="display: none;">
    <ul class="msgtitlelist">
[3]     <!--{loop $_SBLOCK['hotthread'] $value}-->
[4]     <li><cite><a href="#uid/$value[authorid]#">$value[author]</a>
</cite><a href="$value[url]">$value[subject]</a></li>
[5]     <!--{/loop}-->
    </ul>
[6]   </div>
[1]为模块调用代码。[2]~[6]是一个DIV,实现模块调用的显示。[3]和[5]为循环语句,实现调用的循环显示,[4]为简
单的HTML语句,详细说明可见视频教程:
[url=http://discuz.net/viewthread.php?tid=320058&highlight=%CA%D3%C6%B5%2B%C4%A3%B0%E5]http://discuz.net/viewthread.php?tid=320058&highlight=%CA%D3%C6%B5%2B%C4%A3%B0%E5[/url]
我这里主要讲如何看懂模块调用代码.
以下面的代码为例。
<!--{block name="bbspost" parameter="fid/17,14/tid/5/order/dateline
ASC/limit/0,10/cachetime/900/subjectlen/51/subjectdot/1/messagelen/29/messagedot/1/cachename/bbsbbsbbs/tpl/data"}
--><!--bbsbbs-->
我们从头开始看:
name="bbspost",告诉我们基本模块为论坛帖子。
我列出常见模块的name如下:
用户回复:name="spacecomment"
个人空间列表:name="userspace"
站点公告:name="announcement"
论坛公告:name="bbsannouncement"
论坛主题:name="bbsthread"
论坛版块:name="bbsforum"
论坛友情链接:name="bbslink"
论坛会员:name="bbsmember"
论坛帖子:name="bbspost"
论坛附件:name="bbsattachment"
parameter="……"中包含所有设置的参数,如果有些参数在该语句中没有,则使用默认,至于默认是什么,你可以
自己去建一个模块,未修改时参数的值即为默认值。
现在我们来看各参数的意义。
fid/17,14:表示我们读取的帖子所在的版块fid为17和14。版块fid的查看方法有N种,最简单的:鼠标放到论坛版块
名称上点右键-属性;如这个页面:[url=http://bbs.thutl.com/]http://bbs.thutl.com/[/url],鼠标放到“本期最佳推荐”上点右键选属性,看到:地址(
URL)[url=http://bbs.thutl.com/forumdisplay.php?fid=14]http://bbs.thutl.com/forumdisplay.php?fid=14[/url] 问号后fid=14,就是版块fid了。如果你想读取fid为14,15和16的
版块的帖子,直接将17,14改为14,15,16就行了,注意中间用逗号隔开。
tid/5:表示只显示ID为5的帖子,也就只显示一篇帖子,如果想显示版块下所有帖子,去掉本句就OK了。
order/dateline ASC/:这句控制帖子显示排序方式,这里的意思是按帖子发布时间递增的方式显示,如果想改为时
间递减显示,将ASC改为DESC。
limit/0,10:1行10列,显示10条数据,limit/1,10表示显示2行10列20条数据。
cachetime/900:缓存更新时间间隔900秒,即15分钟,这个是默认时间。
subjectlen/51:标题长度为51个字节,一个汉字两个字节,一个字母一个字节。
subjectdot/1:标题截取有省略号;如果这个参数值为0则无省略号。若删除本句则,采用系统默认无省略号。
messagelen/29:帖子内容长度29字节。
messagedot/1:内容截取有省略号;默认无省略号;
cachename/bbsbbsbbs:变量名为bbsbbsbbs,调用显示时用到:{loop $_SBLOCK['bbsbbsbbs'] $value};
tpl/data:模块风格文件为styles/data.html.php;如果想需要其它风格,可以到安装文件styles目录下新建风格;将data修
改为相应的名称即可。
<!--bbsbbs-->:模块名。
上面的代码就分析到这儿了,到于其它的代码,大同小异,看参数的英文意思也能猜个大概,我不讲了。
如果读懂了模块的代码,以后我们改风格的时候,就不用每次都到后台新建或编辑模块了,可直接找到系统默认
模块中的类似调用代码稍加修改。比如排序方式,如果按发布时间排序,就是最新帖子列表;如果按点击排序,
就是最热帖子列表;修改一个单词而已。
如果再有点儿CSS、DIV功底,做模板就太简单了。

[[i] 本帖最后由 baiyuxiong 于 2008-2-10 13:38 编辑 [/i]]
dinghua07 发表于 2008-4-9 11:41:02 | 显示全部楼层
很强,顶一下先
回复

使用道具 举报

freehorse_wl 发表于 2008-7-2 21:36:09 | 显示全部楼层
好帖!强顶!


有没有说明各个代码与网站具体板块相对应的帖子啊?
回复

使用道具 举报

白岩书院 发表于 2008-7-29 14:46:26 | 显示全部楼层
回复

使用道具 举报

qihooqq 发表于 2008-7-29 14:55:20 | 显示全部楼层
学习 了
回复

使用道具 举报

lapeno 发表于 2008-8-1 10:13:39 | 显示全部楼层
学习了,谢谢分享
回复

使用道具 举报

278437652 发表于 2010-8-19 16:29:56 | 显示全部楼层
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2024-12-28 09:07 , Processed in 0.027379 second(s), 4 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表