Discuz Mini-Space 模板结构以及功能拓展手册

Mini-Space发布后,估计很多人希望制作自己站点的 Mini-Space 风格及模块吧,再此,我向大家介绍下 Mini-Space 模板、风格以及模块的开发方法

一、Mini-Space 的模板结构

Mini-Space 采用一套模板文件多套 CSS 的方式切换模板,因此所有风格的 Mini-Space 其实都是在使用一套模板。

模板文件在 templates/default 目录下

[table][tr][td=1,1,200][b]space.htm[/b]

Space 主模板

[/td][td]Space 所有页面都需要调用的模板文件,模板分为以下几块:

 顶部区 menu_top

 头部区 header

 菜单区 menu

 模块区 main_layout0 代表左侧 main_layout1 代表中间、main_layout2 代表右侧

 尾部区 footer

[/td][/tr][tr][td][b]space_topic.htm[/b]

Space 文集页模板

[/td][td]显示文集内容的模板,模板分为以下几块:

 文集主题 module_topic

 文集评论 module_topiccomment

[/td][/tr][tr][td][b]space_module.htm[/b]

Space 各个模块的模板

[/td][td]此模板存放了 Space 的各个模块的子模板,其中通过函数的形式定义了各个模块的子模板,包含如下函数:

 特殊主题前缀   threadspecial   此函数不是模块模板,而是以下每个模块都需要用到的部分

 用户信息模块   userinfo

 文集日历模块   viewcalendar

 主题模块     mythreads

 回复模块     myreplies

 悬赏模块     myrewards

 交易模块     mytrades

 文集模块     myblogs

 发表文集模块   postblog

 最热文集模块   hotblog

 收藏的论坛模块  myfavforums

 收藏的主题模块  myfavthreads

 好友模块     myfriends

各个模块函数的模板语法基本结构为:

 模块显示在单独列表页时的模板

 模块显示在首页中间时的模板

 模块显示在首页左右两侧时的模板

[/td][/tr][/table]

viewpro.htm 为 Space 为Space的个人信息页模板,viewpro_classic.htm 为老版个人信息页模板,当 Mini-Space关闭、用户被禁或者拥有X-Space个人空间后的模板。

二、Mini-Space 的风格文件结构

Mini-Space 的所有风格均放置在 mspace 目录下,一个子目录一个风格,站长要添加风格的话,只需要将风格目录复制或上传到 mspace 目录下即可。

每个风格目录中文件的含义如下:

[table][tr][td]style.ini

风格的识别文件

[/td][td]当目录中包含此文件的时候才被论坛识别为一个合法的风格目录,此文件的内容有三行文字,每行的含义为:

 1: 风格名称

 2: 风格版权

 3: 风格版本

如:

QUOTE:

默认风格

Discuz!

1.0

[/td][/tr][tr][td]style.css

风格的样式表

[/td][td]此文件为风格的 CSS 样式表文件,风格以及模块的样式定义均在此文件中,此文件中模块含义的 CSS 定义如下:

 用户信息模块   #module_userinfo        

 主题模块     #module_threads    

 回复模块     #module_replies     

 文集模块     #module_blogs

 文集主题     #module_topic

 文集评论     #module_topiccomment

 文集发表评论   #module_postcomment

 发表文集模块   #module_postblog

 最热文集模块   #module_hotblog

 悬赏模块     #module_rewards

 交易模块     #module_trades

 好友模块     #module_friends

 收藏的论坛模块  #module_favforums

 收藏的主题模块  #module_favthreads

[/td][/tr][tr][td]图片文件[/td][td]风格所用到的图片文件[/td][/tr][/table]

三、模块拓展

模块的拓展主要修改 include/space.func.php 和风格的 space_module.htm 文件。

include/space.func.php

打开此文件,开头我们首先会看到如下2个数组

$modulesettings = array(

'userinfo' => array('1', 0, 1),

'calendar' => array('1', 0),

'myblogs' => array('', 1),

'mythreads' => array('', 1),

'myreplies' => array('', 1),

'myrewards' => array('', 1),

'mytrades' => array('', 1),

'myfriends' => array('1', 2),

'myfavforums' => array('1', 2),

'myfavthreads' => array('1', 2)

);

$listmodule = array(

'myblogs' => 1,

'mythreads' => 2,

'myreplies' => 3,

'myrewards' => 4,

'mytrades' => 5,

'myfavforums' => 6,

'myfavthreads' => 7

);

$modulesettings 为 Space 模块的声明数组,所有的标准模块均在此处声明,含义为:

'模块标识名' => array('不允许出现的位置', 默认位置, 隐藏更多链接)

位置中数字0代表左侧、1代表中间、2代表右侧,不允许出现的位置如果不允许出现在2个位置,用逗号分割

$listmodule 为包含列表内容模块的声明数组,所有的包含列表内容的模块在此处声明,含义为:

'模块标识名' => 菜单顺序

当您需要添加一个新的模块时,您需要在 $modulesettings 数组中添加他的模块标识,如

'mytest' => array('', 0,1)

表示此模块允许出现在所有位置,默认位置为左侧,且模块头不显示更多的链接

然后在 space_module.htm 中添加名为 mytest 的函数即子模板

要为此模块命名,可以修改 spaces.lang.php 文件

添加语言包项

'mytest' => '测试模块'

最后设置一个$spacelimitmytest 的变量让他值为 1,就算开启了

此变量可以通过添加后台的基本设置中添加一个设置项,也可以固定的写在程序中。

[link]

评论

Popular Posts

如何提高情商(EQ)

地方门户网站项目可行性分析

快乐来自于做出「舍弃」的能力

2009年即将流行的牛逼语录:经典的我都无语了(转载)

小清新必须死

SolveigMM Video Splitter - 无损视频编辑工具(视频剪辑,合并等)

《挪威的森林》精彩篇章:永远记得我

不要再Best Regards了!英文Email四大问题

聪明处事72招

没有灵魂,只有交易——为何“苹果”会杀人