- 1, SupeSite的模板文件和页面的关联
- SupeSite的模板文件和页面url链接地址是有关联的。大家可以打开templates/default目录,可以发现其文件名都是有规律的。下面我会详细说明文件名和链接地址的具体关系。
- 下面列出的是templates/default里面的全部文件
- 可以看到文件名都是有规律的,以bbs_开头的都是论坛的页面文件,以blog_开头的都是日志的页面文件,同理文件、商品、书签、图片的页面都是一样的规律。
- 稍微懂点英文的人都可以看出,以论坛页面文件为例,
- bbs_footer.html.php 代表论坛页面的页脚文件
- bbs_forumdisplay.html.php 代表论坛页面的板块列表
- 对应url地址http://域名?action_forumdisplay_fid_板块编号.html
- bbs_header.html.php 代表论坛页面的头部文件
- bbs_index.html.php 代表论坛首页文件 对应url地址http://域名/action_bbs.html
- bbs_viewthread.html.php
- 代表论坛帖子查看页面 对应url地址http://域名/?action_viewthread_tid_帖子编号.html
- 从上面可以看出,url地址其实和文件名是一致的
- 再看日志的页面文件
- 其中有一个比较特殊的,就是blog_category.html.php,根据页面英文单词可以猜测为日志分类页面,确实是!
- 我们可以访问日志的分类,http://域名?action_category_catid_日志分类编号.html,也和文件名吻合。
- 其他文件、商品、图片、书签页面和日志是一模一样的。
- 资讯页面有2个特殊的,news_view.html.php news_viewcomment.html.php
- 根据英文可以判断是资讯查看页面,和资讯评论查看页面。
- 其对应的url地址分别是http:/域名?action_viewnews_itemid_资讯编号.html
- http://域名/?action_viewcomment_itemid_资讯编号.html
- 下面的图片是站点的相关文件
- 同样,根据上面的方法可以很快得出,分别是站点的公告页面、页脚、头部文件、站点友情链接、登陆、站点地图、快捷面板、投票、注册、搜索、安全问答、tag、tag查看全部页面、脚印页面
- Spaces_开头的都是空间页面,分别是个人空间分类页面、个人空间页脚、头部、首页。
-
- 搞清楚了上面的文件和对应页面url访问链接关系之后,我们来接着看具体页面里的模块。
- 以站点首页为例,我们可以很快定位他对应的文件页面是templates/default/index.html.php
- 2,如何读懂模块代码
- 这个部分网点也说明过,大家可以看看https://discuz.dismall.com/thread-456494-1-1.html
- 首先需要说明的是SupeSite全部页面的信息都是通过模块来进行汇集的。你所看到的页面的每条内容都是利用SupeSite后台的模块功能创建并提取出来的。通过SupeSite的模块功能,您可以将X-Space、Discuz!的几乎全部内容都可以提出出来。
- 具体的创建模块代码,大家可以到SupeSite站点设置――模块功能里面进行创建,全过程都是采取的向导模式,非常简单,Sup也做过一个视频教程,大家可以看看https://discuz.dismall.com/thread-320058-1-1.html
- 推销下,如果您对SupeSite不了解,不妨多看看帮助文档板块的帖子,还有各个板块的置顶贴,相信对您了解SupeSite/X-Space将很有帮助。
- 下面我们来看一段最普通的模块代码,大家可以跟着我来读懂他。
- <!--{blockname="category" parameter="type/news/isroot/1/ischannel/2/order/c.displayorder/limit/0,10/cachetime/25200/cachename/category_news/tpl/data"}-->
- SupeSite创建的所有模块都具有下面的统一格式:
- 1) 以<!--{blockname="开始,以"}-->结束
- 2) blockname=" "引号里面放的是模块的类型,SupeSite的模块类型都有固定的命名规则的。您可以这样查看。
- 登陆SupeSite站点设置――模块功能――模块列表,可以看到有下列基本模块
- 您可以将鼠标放置在任何一个基本模块的名称上,然后查看地址栏,都可以看到类似下面的url地址:
- http://域名/admincp.php?action=blocks&viewblocktype=spacenews&blocktype=spacenews&op=
- 其中blocktype=spacenews这里就可以告诉您当前查看的模块的类型是什么
- 根据英文可以得出,spacenews就是资讯模块
- 同理其他模块类型也可以很方便的知道。
- blocktype=category 系统分类模块
- blocktype=spacenews 资讯模块
- blocktype=poll 投票模块
- blocktype=spaceblog 日志模块
- blocktype=spaceimage 图片模块
- blocktype=spacefile 文件模块
- blocktype=spacegoods 商品模块
- blocktype=spacelink 书签模块
- blocktype=tag TAG模块
- blocktype=spacetag TAG文章信息模块
- blocktype=spacecomment 用户回复模块
- blocktype=userspace 个人空间列表模块
- blocktype=announcement 站点公告模块
- blocktype=bbsthread 论坛主题模块
- blocktype=bbsannouncement 论坛公告模块
- blocktype=bbsforum 论坛板块模块
- blocktype=bbslink 论坛友情链接模块
- blocktype=bbsmember 论坛会员模块
- blocktype=bbsattachment 论坛附件模块
- blocktype=bbspost 论坛帖子模块
- 1) parameter=""这里存放的就是各个模块的具体筛选参数了,相同的模块类型调出来的内容不同就是通过这里控制的,而这里的参数也是SupeSite/X-Space 模块功能自动生成的。
- 2) type/news/isroot/1/ischannel/2/order/c.displayorder/limit/0,10/cachetime/25200/cachename/category_news/tpl/data
- 这段就是模块参数的筛选条件。这里由许多条件通过/组合起来。您稍微留心点,可以发现,上面的代码通过/分成偶数段,从左至右每2段组成一个基本筛选条件,左边代表筛选名字,右边代表筛选条件
- 例如上面的
- type/news 和/isroot/1 和ischannel/2 和order/c.displayorder 和limit/0,10 和cachetime/36800等都是一个独立的基本筛选条件,
- 我稍微解释下:
- type/表示类型,右边的/news表示资讯,所以type/news表示这个模块取的内容来自资讯
- 同理/isroot/1这个左边isroot表示根分类,右边1表示条件成立(这里1表示是,2表示否,下面的专题也是一样),所以这个/isroot/1表示是根分类
- ischannel/2这个左边表示是专题,右边2表示不属于专题。
- order/c.displayorder这个参数很重要,一般每个模块都会有,这个代表的是排序的条件。
- Limit/1,10这个参数也很重要,一般每个模块都会有,这个代表的是取的数据的条数限制,limit右边的2个数字,左边代表的是取的数据的起始行数,右边代表取的数据条数,所以Limit/1,10就表示从第一行数据开始取10条数据。
- cachetime/25200表示的是缓存时间,单位为妙。所以这个就代表缓存时间是7小时
- SupeSite有强大的缓存机制,可以将全部数据进行缓存起来,有效的减少数据库查询,加快页面的打开速度。
- 如果您要了解更多,可以登陆站点设置――模块功能――创建模块,随便进入一个创建模块的页面,查看源文件,就可以看到各个筛选条件对应的变量了
- 以创建日志模块为例,查看他的源文件:
- 随便截取一段,如下图:
- 其中黄色部分表示模块变量的中文意思,蓝色部分表示模块变量,灰色部分表示其对应的取值。
- 通过这种方法,您可以到各个创建模块的页面查看源文件,基本就能明白模块代码里面各个筛选条件是怎么来的,各自代表什么含义了。
- 通过上面的说明,相信以后大家见到一段模块代码都知道怎么入手分析了
- 3, 根据页面查找模块位置
- 我对边在SupeSite/X-Space官方站点http://x.discuz.net随便截了一张图片,如下图:
- 我们如何找到黄色区域的模块代码呢?对于不懂div+css的用户来说,也可以很快确定的~
- 首先,我们可以得到的直观感觉就是他有15条记录,并位于中间部位。
- 接下来,根据上面的内容,我们很清楚这个页面对应的文件是templates/default/index.html.php
- 第三步,我们用记事本打开templates/default/index.html.php这个文件
- 根据上面的模块知识,我们可以得到黄色部分肯定存在的一个筛选条件limit/*,15/
- SupeSite的模块一般都是从0开始的,所以您可以在文件中查找下limit/0,15/
- 这样,您就可以很方便的找到
- <!-- 1周回复热点 -->
- <!--{block name="spaceblog" parameter="dateline/604800/notype/1/order/i.replynum DESC/subjectlen/34/subjectdot/1/limit/0,15/cachetime/1/showspacename/1/cachename/newinfos/tpl/data"}-->
- 如果他是唯一的,就说明您的模块代码找对了。如果不唯一,就可以再结合一点刚才说的模块的知识和页面的知识,也可以很快定位到具体的模块代码的。是不是很简单呢?呵呵
- 标准页面里面的模块提取的内容或许您不太满意,同样,利用刚才的模块知识,您可以在读懂了模块调用的内容之后根据您自己站点的需求修改为您自己的模块代码。
- 3, 修改模块代码适应自己站点
- 以上面找到的模块代码为例:
- <!-- 1周回复热点 -->
- <!--{block name="spaceblog" parameter="dateline/604800/notype/1/order/i.replynum DESC/subjectlen/34/subjectdot/1/limit/0,15/cachetime/1/showspacename/1/cachename/newinfos/tpl/data"}-->
- 大家可以自己到SupeSite站点设置――模块功能――创建一个新的模块并获取模块代码替换这段模块代码。
- 当然,如果您通过多次实践,已经完全熟悉SupeSite的模块参数说明,您也可以直接在这段模块代码中修改。
- 一般大家修改的比较多的无非是条数、缓存时间这些参数,可以这样修改:
- limit/0,15这里读取的是从0行开始的15条数据,如果您需要8条数据,可以改为limit/0,8
- cachetime/1这里表示的是缓存时间为1妙,如果您嫌太短,需要设置为1小时,可以修改为cachetime/3600
- 诸如此类。
- 最后,我要说明的是,SupeSite模块功能给了大家一个强大的自定义站点功能,从现在开始,您不再需要局限于标准程序的设计,通过灵活运用模块功能,您可以利用SupeSite将站点内的数据,打造出千千万万种站点模式!
复制代码 |