Mini-Space发布后,估计很多人希望制作自己站点的 Mini-Space 风格及模块吧,再此,我向大家介绍下 Mini-Space 模板、风格以及模块的开发方法
一、Mini-Space 的模板结构
Mini-Space 采用一套模板文件多套 CSS 的方式切换模板,因此所有风格的 Mini-Space 其实都是在使用一套模板。
模板文件在 templates/default 目录下
space.htm
Space 主模板
| Space 所有页面都需要调用的模板文件,模板分为以下几块:
顶部区 menu_top
头部区 header
菜单区 menu
模块区 main_layout0 代表左侧 main_layout1 代表中间、main_layout2 代表右侧
尾部区 footer
| space_topic.htm
Space 文集页模板
| 显示文集内容的模板,模板分为以下几块:
文集主题 module_topic
文集评论 module_topiccomment
| space_module.htm
Space 各个模块的模板
| 此模板存放了 Space 的各个模块的子模板,其中通过函数的形式定义了各个模块的子模板,包含如下函数:
特殊主题前缀 threadspecial 此函数不是模块模板,而是以下每个模块都需要用到的部分
用户信息模块 userinfo
文集日历模块 viewcalendar
主题模块 mythreads
回复模块 myreplies
悬赏模块 myrewards
交易模块 mytrades
文集模块 myblogs
发表文集模块 postblog
最热文集模块 hotblog
收藏的论坛模块 myfavforums
收藏的主题模块 myfavthreads
好友模块 myfriends
各个模块函数的模板语法基本结构为:- <!--{if $mod}-->
- 模块显示在单独列表页时的模板
- <!--{elseif $center}-->
- 模块显示在首页中间时的模板
- <!--{else}-->
- 模块显示在首页左右两侧时的模板
- <!--{/if}-->
复制代码 |
viewpro.htm 为 Space 为Space的个人信息页模板,viewpro_classic.htm 为老版个人信息页模板,当 Mini-Space关闭、用户被禁或者拥有X-Space个人空间后的模板。
二、Mini-Space 的风格文件结构
Mini-Space 的所有风格均放置在 mspace 目录下,一个子目录一个风格,站长要添加风格的话,只需要将风格目录复制或上传到 mspace 目录下即可。
每个风格目录中文件的含义如下:
style.ini
风格的识别文件
| 当目录中包含此文件的时候才被论坛识别为一个合法的风格目录,此文件的内容有三行文字,每行的含义为:
1: 风格名称
2: 风格版权
3: 风格版本
如:
QUOTE:
默认风格
Discuz!
1.0
| style.css
风格的样式表
| 此文件为风格的 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
| 图片文件 | 风格所用到的图片文件 |
三、模块拓展
模块的拓展主要修改 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 文件
添加语言包项最后设置一个$spacelimitmytest 的变量让他值为 1,就算开启了
此变量可以通过添加后台的基本设置中添加一个设置项,也可以固定的写在程序中。
对Mini-Space感兴趣的可以加入QQ群: 12893286
[ 本帖最后由 monkeye 于 2007-3-23 14:42 编辑 ] |