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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

[修改] 小米论坛样式,论坛首页列表展示+分页【9.12更新】

[复制链接]
sh6713 发表于 2013-9-10 16:38:15 | 显示全部楼层 |阅读模式
本帖最后由 sh6713 于 2013-9-12 16:14 编辑

注:此文章在DX3.0基础上描写

很多人包括我,都想要小米论坛 bbs.xiaomi.com 或 乐视 bbs.letv.com 论坛的首页样式,因为这种论坛首页比较直观,符合现代人懒惰的口味,不用一个一个版块去点了。但可惜,官方没有提供这种样式功能,并且DIY功能只可以调用指定数量的文章,无法展现分页按钮。

这两天在论坛搜刮资料,把模板区和插件区都翻遍了,也没发现什么特别好的办法或者插件,很多以列表为首页主打的模版也无法解决翻页的问题。传说中有用单版论坛模式,关联版块设置,本人觉得那样不太合理,也不高效。

于是,更换思路,发现论坛自带的“导读”页的‘最新回复’似乎和我们想象中的比较像,但是有个问题,如果将这个页面设置为论坛首页,那么域名后面跟了很长一段网址:
  1. forum.php?mod=guide&view=new
复制代码
这个网址,是导读页判断列表调用哪种类型帖子的,如果直接设为首页,这样显得很不专业,对收录可能也有影响,那么怎么把这一截网址去掉呢?

=============================================================

1、复制一份forum.php文件,命名为abc.php

修改abc.php,大约第41行左右
  1. $mod = !in_array(C::app()->var['mod'], $modarray) ? 'index' : C::app()->var['mod'];
复制代码
改为:
  1. $mod = !in_array(C::app()->var['mod'], $modarray) ? 'guide' : C::app()->var['mod'];
复制代码
意思是论坛默认打开是"guide"这个模型,"guide"也就是导读页模型。

2、修改forum_guide.php   ,在source/module/forum下面
大约17行
  1. if(!in_array($view, array('hot', 'digest', 'new', 'my', 'newthread', 'sofa'))) {
  2. $view = 'hot';
复制代码
改为:
  1. if(!in_array($view, array('hot', 'digest', 'new', 'my', 'newthread', 'sofa'))) {
  2. $view = 'new';
复制代码
意思是默认显示“最新回复”文章,hot是最新热门,digest是最新精华,newthread是最新发表,你想默认显示什么,上面就改成什么。

3、后台导航增加一个菜单,路径abc.php,并设置为首页

到此为止,将“导读”页的‘最新回复’设为论坛首页,并隐藏网址尾巴的想法基本实现,列表展现+分页功能也自然实现了。

下一步,将进行这个页面的布局样式修改,改为左右分栏,并增加DIY功能,因为默认没有DIY功能。

具体修改办法已在下面公布:

评分

1

查看全部评分

 楼主| sh6713 发表于 2013-9-10 16:38:36 | 显示全部楼层
本帖最后由 sh6713 于 2013-9-12 16:36 编辑

今天终于把导读页的DIY功能研究出来了{:soso_e102:}

因为,我始终相信一个道理,同一个文件(不管是forum.php还是拷贝的abc.php),版块模式下可以DIY,其他模式下也一定可以DIY。

查看discuz.htm和guide.htm模版,一个是首页模版(也就是版块列表模版),一个是导读页模版(也就是我们打算用来做论坛首页的模版);我发现同样都是调用header.htm的头部模版,discuz.htm有DIY按钮,但是guide.htm就不显示,那么可以说明discuz.htm肯定有个地方是和header.htm有关联,但是在模版文件中并没有发现问题,php文件就不用看了,因为是同一个文件,那么问题出在哪里呢?

于是我想到了模型,到source/module/forum文件夹中查看forum_index.php和forum_guide.php文件,这两个文件,一个是版块列表模型,一个是导读模型,对比两个文件的差别,找出为何一个有DIY按钮,一个没有DIY按钮。

终于被我发现forum_index.php的模版引用代码和forum_guide.php的引用代码有所区别,一个是“include template('diy:forum/discuz:'.$gid);”,一个是“include template('forum/guide');”,这句话的大概意思很明白了,forum_index.php引用discuz.htm做模版并可以DIY,而forum_guide.php引用guide.htm做模版但无法DIY。

于是,修改方法如下:
修改:source/module/forum/forum_guide.php
  1. include template('forum/guide');
复制代码
改为:
  1. include template('diy:forum/guide:'.$gid);
复制代码
保存之后发现导读页的DIY按钮出现了,说明这个页面已经可以DIY了。但是还差一步,我们要在模板页里面插入DIY区域代码,否则DIY模块没有地方放置,打开guide.htm,在想要DIY的地方插入如下代码:
  1. <!--{if empty($gid)}-->
  2. <div class="wp">
  3. <!--[diy=diy1]--><div id="diy1" class="area"></div><!--[/diy]-->
  4. </div>
  5. <!--{/if}-->
复制代码
其中的diy1是不同DIY区域的编号,如果你要增加3个DIY区域,就复制代码改成diy2,diy3以此类推。

另外,在第一个DIY上面插入一行:
  1. <style id="diy_style" type="text/css"></style>
复制代码
否则DIY不能进行样式修改!


保存guide.htm模版文件,刷新abc.php页面,点击DIY按钮,是不是可以插入DIY模块了,到此将导读页的“最新回复”作为论坛首页,并实现DIY功能已经全部OK,剩下就是页面排版和美化了,接下来我将进行这个页面的个性化修改,争取出一个懒人安装包。

什么小米论坛首页,DIY翻页都是浮云了。

图片演示:


因为在本地修改,所以暂时没有网址演示。


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

1314学习网 发表于 2013-9-10 19:10:21 | 显示全部楼层
前排支持下分享。。。
回复

使用道具 举报

老粗布 发表于 2013-9-10 19:29:28 | 显示全部楼层
谢谢楼主的分享   我收藏了
回复

使用道具 举报

非一般感觉 发表于 2013-9-20 22:14:31 | 显示全部楼层
  厉害啊 感谢lz分享
回复

使用道具 举报

非氵去改装 发表于 2013-9-23 12:50:04 | 显示全部楼层
我也需要这样的论坛首页,跟着楼主好好学习。
回复

使用道具 举报

ohalu 发表于 2013-9-23 13:10:19 | 显示全部楼层
謝謝樓主的分享 我收藏了
回复

使用道具 举报

iStory 发表于 2013-9-23 13:47:33 | 显示全部楼层
正在找这个
回复

使用道具 举报

kx5000 发表于 2013-9-23 15:43:10 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-15 20:04 , Processed in 0.044253 second(s), 5 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

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