SMF的修改
smf,是加拿大的 simplemachines 论坛程序简称,在中文网站中使用的似乎很少(国内貌似是DZ的天下)
不过我还是挺喜欢的。始终无法适应DZ这种程序……
smf的修改,我说过是中文站这次升级过程中最为顺利、花费时间精力最少的。
就先说smf好了。
smf的升级太傻瓜了,去官网下个升级包覆盖安装后运行升级程序就完了。
关闭论坛、论坛备份,都是在升级前可以选择的项目,不必提前做。
以下修改效果见:bbs.gmly.info
字体修改:
模板css文件夹下(/Themes/default/css/),index.css
body
{
background: #E9EEF2 url(../images/theme/backdrop.jpg) repeat-x;
font: 88%/130%
后面可以加字体,如:’微软雅黑’,’黑体’,’宋体’
不要直接保存,而是要保存为UTF8
在任何php和css文件中出现中文就保存为UTF8是我的习惯,我没有测试过直接保存会不会有用,理论上应该不认
字体大小也在这个文件中修改,各人要求不一,各取所需即可(SMF默认字体挺小的,一般人都会改吧==)
引用文字对于中文网站来说真的太小了,修改279行的font-size即可

加入统计和分享:
还是修改模板文件,index.template.php
如果是浮动分享和隐藏的统计,那么找到</body></html>,在此之前加入js代码即可
但如果是固定位置的,就需要找位子了。
查找<div id="footer_section">,在那之后找个合适的位子就成
比如我是在版权和RSS、WAP等的最后加了个统计代码
就是在 $txt[‘wap2’], ‘</span></a></li>之后加一个<li>统计代码</li>,插在</ul>’;之前

广告居右,版权居左
smf默认的版权是在底部正中的,可以把它挪到左边,右边放广告
仍然是在论坛底部做的文章,我是参考了smf官方论坛的布局来做的
先是改css,模板的css文件夹下的index.css文件,最后加这么一串
#advert
{
float: right;
}
然后去改模板的index.template.php,找到<div id="footer_section"><div class="frame">
后面加入
<div id="advert">广告代码</div>
加在版权信息之前

增加导航项目:
要在“首页”“注销”那一行加入其它链接,如“blog”,修改的文件就不是模板文件了
而是:/Sources/Subs.php
找到这里:
if (($menu_buttons = cache_get_data(‘menu_buttons-‘ . implode(‘_’, $user_info[‘groups’]) . ‘-‘ . $user_info[‘language’], $cacheTime)) === null || time() – $cacheTime <= $modSettings[‘settings_updated’])
{
$buttons = array(
‘home’ => array(
‘title’ => $txt[‘home’],
‘href’ => $scripturl,
‘show’ => true,
‘sub_buttons’ => array(
),
‘is_last’ => $context[‘right_to_left’],
// ‘target’ => ‘_blank’,
),
这之后就是论坛导航栏项目,可将需要添加的项目放在指定位置。
例如,我是在这一连串的项目之后加入了两个:
‘homepage’ => array(
‘title’ => ‘[Home]’,
‘href’ => ‘http://www.gmly.info’,
‘show’ => true,
‘sub_buttons’ => array(
),
),
‘wikipage’ => array(
‘title’ => ‘[Wiki]’,
‘href’ => ‘http://wiki.gmly.info’,
‘show’ => true,
‘sub_buttons’ => array(
),
),
之所以’title’ =>后不用中文而用英文,是因为这个文件只能用Windows编码打开和编辑,中文是无法辨认的。
当然,网上应该有把中文转换为这种编码的转换网页,但我懒得找==(这话怎么这么熟悉?)

签名档和附件提示:
smf默认的附件和签名档是以<hr>标签分割的,比较难看
如果要改成<legend>标签的那种框效果,就又要改模板文件了
模板的Display.template.php
480行是附件分隔,也就是这些代码之后
if (!empty($message[‘attachment’]))
{
echo ‘
在这之后的代码改为
<fieldset style="clear: right;" width="98%"><legend><strong>我的附件!</strong></legend>
<div style="overflow: ‘, $context[‘browser’][‘is_firefox’] ? ‘visible’ : ‘auto’, ‘; width: 100%;">’;
签名档也照此修改即可,597行
<br><fieldset style="clear: right;" width="98%"><legend><strong>我的签名档!</strong></legend>
<div>’, $message[‘member’][‘signature’], ‘</div></fieldset>’;
特别注意不要去引用signature的class,否则那行hr是不会消失的。

设置默认签名档:
设置默认签名档绝对不是我原计划当中的事情……
凡是属于“没事找事”一类的,绝对不是我自己的本意。
问题在于,论坛升级后看了下帖子,发现有些帖子出现了错位,下面的帖被挤到旁边去了,位于上一贴的用户信息旁边。
我感觉是因为上一贴内容太少,高度不够,于是下面帖的就被挤到一旁了。
是什么问题,完全没有头绪,因为在我本机的php环境下测试是正常的,当然我是全新安装并不是升级。
我认为这个问题很棘手,是个从正面很难解决的故障,需要大量的调试,所以一开始就没打算正面突破。
帖子内容太少会造成这样的问题,还是因为高度不够,那就让帖子达到不会把下面的帖子挤掉的高度,而且不是通过css方式去限制高度(改过smf的css的都知道,css文件一大堆的!)
不改css去控制帖子的最低高度,最简单的方法应该是设置默认签名档,有了签名档,高度自然就够了。
smf是有设置默认签名档的插件的,但,中文站服务器没法装smf插件==
所以只能手动。
用elseif语句加入默认签名档应该就行了。
就在那一行签名档的</fieldset>’;之后,加入:
elseif (empty($message[‘member’][‘signature’]) && empty($options[‘show_no_signatures’]) && $context[‘signature_enabled’])
{
echo ‘
<br><fieldset style="clear: right;" width="98%"><legend><strong>默认签名档!</strong></legend> <a href="http://t.sina.com.cn/1796731422"><img src="http://service.t.sina.com.cn/widget/qmd/1796731422/38982fa0/1.jpg"></a><p><strong>请到【个人资料】 – 【论坛相关设定】 – 【签名档:】 中设置属于自己的签名档</strong></fieldset>’;
}
这是引用了新浪微博的签名,一个url+一张img,解决问题。
新浪给的签名是bbc代码,自己把它改成上面那样的html代码就成了。
至于说把它改成引用主站的rss更新?
我是不会给自己找那么麻烦的事情做的……
呃,别人给我找的这种麻烦事我也不会去做的……

其他
favicon.ico:修改index.template.php,在</head>之前加入
<link rel="shortcut icon" href="favicon.ico位置" />
smflogo:用一个图片替换原先的smflogo.jpg,若要再在logo加链接,则修改index.template.php,177行改为
‘, empty($settings[‘site_slogan’]) ? ‘<a href="http://www.gmly.info"><img id="smflogo" src="’ . $settings[‘images_url’] . ‘/smflogo.jpg" alt="前往古墓丽影中文站主页" /></a>’ : ‘<div id="siteslogan" class="align_right">’ . $settings[‘site_slogan’] . ‘</div>’, ‘
再“其他”的修改……
如果有的话,我自己也不记得了==
不过我还是挺喜欢的。始终无法适应DZ这种程序……
smf的修改,我说过是中文站这次升级过程中最为顺利、花费时间精力最少的。
就先说smf好了。
smf的升级太傻瓜了,去官网下个升级包覆盖安装后运行升级程序就完了。
关闭论坛、论坛备份,都是在升级前可以选择的项目,不必提前做。
以下修改效果见:bbs.gmly.info
字体修改:
模板css文件夹下(/Themes/default/css/),index.css
body
{
background: #E9EEF2 url(../images/theme/backdrop.jpg) repeat-x;
font: 88%/130%
后面可以加字体,如:’微软雅黑’,’黑体’,’宋体’
不要直接保存,而是要保存为UTF8
在任何php和css文件中出现中文就保存为UTF8是我的习惯,我没有测试过直接保存会不会有用,理论上应该不认
字体大小也在这个文件中修改,各人要求不一,各取所需即可(SMF默认字体挺小的,一般人都会改吧==)
引用文字对于中文网站来说真的太小了,修改279行的font-size即可

加入统计和分享:
还是修改模板文件,index.template.php
如果是浮动分享和隐藏的统计,那么找到</body></html>,在此之前加入js代码即可
但如果是固定位置的,就需要找位子了。
查找<div id="footer_section">,在那之后找个合适的位子就成
比如我是在版权和RSS、WAP等的最后加了个统计代码
就是在 $txt[‘wap2’], ‘</span></a></li>之后加一个<li>统计代码</li>,插在</ul>’;之前

广告居右,版权居左
smf默认的版权是在底部正中的,可以把它挪到左边,右边放广告
仍然是在论坛底部做的文章,我是参考了smf官方论坛的布局来做的
先是改css,模板的css文件夹下的index.css文件,最后加这么一串
#advert
{
float: right;
}
然后去改模板的index.template.php,找到<div id="footer_section"><div class="frame">
后面加入
<div id="advert">广告代码</div>
加在版权信息之前

增加导航项目:
要在“首页”“注销”那一行加入其它链接,如“blog”,修改的文件就不是模板文件了
而是:/Sources/Subs.php
找到这里:
if (($menu_buttons = cache_get_data(‘menu_buttons-‘ . implode(‘_’, $user_info[‘groups’]) . ‘-‘ . $user_info[‘language’], $cacheTime)) === null || time() – $cacheTime <= $modSettings[‘settings_updated’])
{
$buttons = array(
‘home’ => array(
‘title’ => $txt[‘home’],
‘href’ => $scripturl,
‘show’ => true,
‘sub_buttons’ => array(
),
‘is_last’ => $context[‘right_to_left’],
// ‘target’ => ‘_blank’,
),
这之后就是论坛导航栏项目,可将需要添加的项目放在指定位置。
例如,我是在这一连串的项目之后加入了两个:
‘homepage’ => array(
‘title’ => ‘[Home]’,
‘href’ => ‘http://www.gmly.info’,
‘show’ => true,
‘sub_buttons’ => array(
),
),
‘wikipage’ => array(
‘title’ => ‘[Wiki]’,
‘href’ => ‘http://wiki.gmly.info’,
‘show’ => true,
‘sub_buttons’ => array(
),
),
之所以’title’ =>后不用中文而用英文,是因为这个文件只能用Windows编码打开和编辑,中文是无法辨认的。
当然,网上应该有把中文转换为这种编码的转换网页,但我懒得找==(这话怎么这么熟悉?)

签名档和附件提示:
smf默认的附件和签名档是以<hr>标签分割的,比较难看
如果要改成<legend>标签的那种框效果,就又要改模板文件了
模板的Display.template.php
480行是附件分隔,也就是这些代码之后
if (!empty($message[‘attachment’]))
{
echo ‘
在这之后的代码改为
<fieldset style="clear: right;" width="98%"><legend><strong>我的附件!</strong></legend>
<div style="overflow: ‘, $context[‘browser’][‘is_firefox’] ? ‘visible’ : ‘auto’, ‘; width: 100%;">’;
签名档也照此修改即可,597行
<br><fieldset style="clear: right;" width="98%"><legend><strong>我的签名档!</strong></legend>
<div>’, $message[‘member’][‘signature’], ‘</div></fieldset>’;
特别注意不要去引用signature的class,否则那行hr是不会消失的。

设置默认签名档:
设置默认签名档绝对不是我原计划当中的事情……
凡是属于“没事找事”一类的,绝对不是我自己的本意。
问题在于,论坛升级后看了下帖子,发现有些帖子出现了错位,下面的帖被挤到旁边去了,位于上一贴的用户信息旁边。
我感觉是因为上一贴内容太少,高度不够,于是下面帖的就被挤到一旁了。
是什么问题,完全没有头绪,因为在我本机的php环境下测试是正常的,当然我是全新安装并不是升级。
我认为这个问题很棘手,是个从正面很难解决的故障,需要大量的调试,所以一开始就没打算正面突破。
帖子内容太少会造成这样的问题,还是因为高度不够,那就让帖子达到不会把下面的帖子挤掉的高度,而且不是通过css方式去限制高度(改过smf的css的都知道,css文件一大堆的!)
不改css去控制帖子的最低高度,最简单的方法应该是设置默认签名档,有了签名档,高度自然就够了。
smf是有设置默认签名档的插件的,但,中文站服务器没法装smf插件==
所以只能手动。
用elseif语句加入默认签名档应该就行了。
就在那一行签名档的</fieldset>’;之后,加入:
elseif (empty($message[‘member’][‘signature’]) && empty($options[‘show_no_signatures’]) && $context[‘signature_enabled’])
{
echo ‘
<br><fieldset style="clear: right;" width="98%"><legend><strong>默认签名档!</strong></legend> <a href="http://t.sina.com.cn/1796731422"><img src="http://service.t.sina.com.cn/widget/qmd/1796731422/38982fa0/1.jpg"></a><p><strong>请到【个人资料】 – 【论坛相关设定】 – 【签名档:】 中设置属于自己的签名档</strong></fieldset>’;
}
这是引用了新浪微博的签名,一个url+一张img,解决问题。
新浪给的签名是bbc代码,自己把它改成上面那样的html代码就成了。
至于说把它改成引用主站的rss更新?
我是不会给自己找那么麻烦的事情做的……
呃,别人给我找的这种麻烦事我也不会去做的……

其他
favicon.ico:修改index.template.php,在</head>之前加入
<link rel="shortcut icon" href="favicon.ico位置" />
smflogo:用一个图片替换原先的smflogo.jpg,若要再在logo加链接,则修改index.template.php,177行改为
‘, empty($settings[‘site_slogan’]) ? ‘<a href="http://www.gmly.info"><img id="smflogo" src="’ . $settings[‘images_url’] . ‘/smflogo.jpg" alt="前往古墓丽影中文站主页" /></a>’ : ‘<div id="siteslogan" class="align_right">’ . $settings[‘site_slogan’] . ‘</div>’, ‘
再“其他”的修改……
如果有的话,我自己也不记得了==

