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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

[求助] 100元 求助父版调用子版块分类 帖子

[复制链接]
lxlsje 发表于 2013-4-29 13:12:47 | 显示全部楼层 |阅读模式
本帖最后由 lxlsje 于 2013-4-29 14:40 编辑

所有分类信息已经做好了,而且已经绑定好了版块一级模板,都正常显示了。 唯独当访问父级版块时,默认是不调用子版块的分类信息帖子,我现在想调用下级子版块的所有分类信息帖子(包含当前版块),

用到的模板页面有: forumdisplay.htm  ,forumdisplay_list.htm  ,  forumdisplay_sort.htm


1.-----------------以下是forumdisplay.htm  页面 主要用到的代码--------------------------------------///

<!--{if !$subforumonly}-->
<!--{hook/forumdisplay_threadtype_extra}-->
<!--//IF判断,如果没有数据调用-->
<!--{if empty($_G['forum']['sortmode'])}-->      
<!--下面调用模板没有多大作用,这个用途是: 在本版块里没有数据的时候调用它来显示-->
<!--{subtemplate forum/forumdisplay_list}-->  
<!--否则执行数据调用-->
<!--{else}-->                                          
<!--下面调用模板用途是: 在本版块里有数据的时候才会调用它来显示-->
<!--{subtemplate forum/forumdisplay_sort}-->
<!--{/if}-->
<!--{/if}-->


2.-----------------以下是forumdisplay_sort.htm  页面 主要用到的代码--------------------------------------///

<!--对于forumdisplay_sort.htm页面, 这个主要来显示调用分类模板数据的。-->


<div id="threadlist" style="clear:both;">
<!--{if $quicksearchlist && !$_GET['archiveid']}-->
<!--{subtemplate forum/search_sortoption}-->
<!--{/if}-->
$sorttemplate['header']
<form method="post" autocomplete="off" name="moderate" id="moderate" action="forum.php?mod=topicadmin&action=moderate&fid=$_G[fid]&infloat=yes&nopost=yes">
$sorttemplate['body']  
<!--这个就是调用帖子列表-->
<!--{if $_G['forum']['ismoderator'] && $_G['forum_threadcount']}-->
<!--{template forum/topicadmin_modlayer}-->
<!--{/if}-->
</form>
$sorttemplate['footer']
</div>

需要怎么修改,请直接联系我QQ:20767685,  本人付费100元。如果觉得难度比较大,可以多付一些辛苦费。谢谢,请菜鸟绕远,不要跟我说 什么通过DIY或者后台版块设置, 都没用,  我现在是在父级版块调用子版块的帖子,(父级版块和子版块都绑定了分类信息,所以调用的都是分类信息模板和分类信息数据。知道的人可能会明白分类信息模板的调用函数比较特殊的,跟普通帖子调用方法是不一样的。 详情请见上2.





可能有人 不明白我说的是什么 ,那么我来个更直观的,就会明白了:






我现在要实现的是 , 当我访问父版块时调用子版块的帖子  如下图:



下面的代码就是调用如下图所示,调用当前版块下的  子版块帖子。


<!--{if empty($_G['forum']['sortmode'])}-->
<!--{subtemplate forum/forumdisplay_list}-->
<!--{else}-->
<!--{subtemplate forum/forumdisplay_sort}-->  这个就是调用的帖子列表,如下图,
<!--{/if}-->      这段代码在
forumdisplay.htm 页面。



<!--{subtemplate forum/forumdisplay_sort}--> 这个的代码请最上面的 2 标题里看,

本帖子中包含更多资源

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

x
 楼主| lxlsje 发表于 2013-4-29 14:42:15 | 显示全部楼层

请问我 怎么联系你。
回复

使用道具 举报

漂泊的去 发表于 2013-4-29 18:00:56 来自手机 | 显示全部楼层
楼主走错方向了,应该修改forum_forumdisplay.php文件,修改htm文件会很蛋疼,我也搞过类似的。另外楼主这么依重分类信息,可以考虑安装一个分类信息与主题分类伪静态插件啊,应用中心搜索伪静态就能找到,我作的。
回复

使用道具 举报

 楼主| lxlsje 发表于 2013-4-29 18:56:04 | 显示全部楼层
漂泊的去 发表于 2013-4-29 18:00
楼主走错方向了,应该修改forum_forumdisplay.php文件,修改htm文件会很蛋疼,我也搞过类似的。另外楼主这 ...

forum_forumdisplay.php  是控制帖子列表页的,  我现在这个分类模板是单独做的一个  forum_forumdisplay.html   来处理分类信息,  其它普通论坛版块还是用的以前的 forum_forumdisplay.html

我找了下应该是修改   function_threadsort.php  这个文件,  里有这么一段代码:

function showsortmodetemplate($sortid, $fid, $sortoptionarray, $templatearray, $threadlist, $threadids = array(), &$verify = array()) {
        global $_G;
        $sorttemplate = $replaces = array();
        $sorttemplate['footer'] = $sorttemplate['body'] = $sorttemplate['header'] = '';
        if(strexists($templatearray[$sortid], '[loop]') && strexists($templatearray[$sortid], '[/loop]')) {
                preg_match('/^(.+?)\[loop\](.+?)\[\/loop\](.+?)$/s', $templatearray[$sortid], $r);
                $sorttemplate['header'] = stripslashes($r[1]);
                $templatearray[$sortid] = stripslashes($r[2]);
                $sorttemplate['footer'] = stripslashes($r[3]);
        }
        $rewritespace = is_array($_G['setting']['rewritestatus']) && in_array('home_space', $_G['setting']['rewritestatus']);
        $rewriteviewthread = is_array($_G['setting']['rewritestatus']) && in_array('forum_viewthread', $_G['setting']['rewritestatus']);
        $sortlistarray = showsorttemplate($sortid, $fid, $sortoptionarray, $templatearray, $threadlist, $threadids, true);
        foreach($threadlist as $thread) {
                foreach($thread as $k => $v) {
                        $replaces['{'.$k.'}'] = $v;
                }
                $body = $sortlistarray['template'][$sortid][$thread['tid']];
                $replaces['{author_url}'] = $rewritespace ? rewriteoutput('home_space', 1, '', $thread['authorid']) : 'home.php?mod=space&amp;uid='.$thread['authorid'];
                $replaces['{lastposter_url}'] = $rewritespace ? rewriteoutput('home_space', 1, '', '', $thread['lastposter']) : 'home.php?mod=space&amp;username='.$thread['lastposterenc'];
                $replaces['{subject_url}'] = $rewriteviewthread ? rewriteoutput('forum_viewthread', 1, '', $thread['tid']) : 'forum.php?mod=viewthread&amp;tid='.$thread['tid'];
                $replaces['{lastpost_url}'] = 'forum.php?mod=redirect&tid='.$thread['tid'].'&goto=lastpost#lastpost';
                $replaces['{lastpost_url}'] = 'forum.php?mod=redirect&tid='.$thread['tid'].'&goto=lastpost#lastpost';
                $replaces['{avatar_small}'] = avatar($thread['authorid'], 'small', true);
                $replaces['{typename_url}'] = 'forum.php?mod=forumdisplay&fid='.$fid.'&filter=typeid&typeid='.$thread['tid'];
                $replaces['{attachment}'] = ($thread['attachment'] == 2 ? '<img src="'.STATICURL.'image/filetype/image_s.gif" align="absmiddle" />' :
                                                ($thread['attachment'] == 1 ? '<img src="'.STATICURL.'image/filetype/common.gif" align="absmiddle" />' : ''));
                $replaces['{author_verify}'] = $verify[$thread['authorid']] ? $verify[$thread['authorid']] : '';
                if($_G['forum']['ismoderator']) {
                        if($thread['fid'] == $fid && $thread['displayorder'] <= 3 || $_G['adminid'] == 1) {
                                $replaces['{modcheck}'] = '<input onclick="tmodclick(this)" type="checkbox" name="moderate[]" value="'.$thread['tid'].'" />';
                        } else {
                                $replaces['{modcheck}'] = '<input type="checkbox" disabled="disabled" />';
                        }
                } else {
                        $replaces['{modcheck}'] = '';
                }
                $body = str_replace(array_keys($replaces), $replaces, $body);
                $sorttemplate['body'] .= $body;
        }
        return $sorttemplate;
}
回复

使用道具 举报

 楼主| lxlsje 发表于 2013-4-29 19:00:45 | 显示全部楼层
因为 我静态模板  调用的 代码 是 : $sorttemplate['body']     ,这个函数是调用分类信息模板的列表页。

而处理  $sorttemplate['body']   这个代码的文件就在   function_threadsort.php  这个文件里,


处理的函数如下:
------------------------------------------------------------------------------------------------------------------------------------

function showsortmodetemplate($sortid, $fid, $sortoptionarray, $templatearray, $threadlist, $threadids = array(), &$verify = array()) {
        global $_G;
        $sorttemplate = $replaces = array();
        $sorttemplate['footer'] = $sorttemplate['body'] = $sorttemplate['header'] = '';
        if(strexists($templatearray[$sortid], '[loop]') && strexists($templatearray[$sortid], '[/loop]')) {
                preg_match('/^(.+?)\[loop\](.+?)\[\/loop\](.+?)$/s', $templatearray[$sortid], $r);
                $sorttemplate['header'] = stripslashes($r[1]);
                $templatearray[$sortid] = stripslashes($r[2]);
                $sorttemplate['footer'] = stripslashes($r[3]);
        }
        $rewritespace = is_array($_G['setting']['rewritestatus']) && in_array('home_space', $_G['setting']['rewritestatus']);
        $rewriteviewthread = is_array($_G['setting']['rewritestatus']) && in_array('forum_viewthread', $_G['setting']['rewritestatus']);
        $sortlistarray = showsorttemplate($sortid, $fid, $sortoptionarray, $templatearray, $threadlist, $threadids, true);
        foreach($threadlist as $thread) {
                foreach($thread as $k => $v) {
                        $replaces['{'.$k.'}'] = $v;
                }
                $body = $sortlistarray['template'][$sortid][$thread['tid']];
                $replaces['{author_url}'] = $rewritespace ? rewriteoutput('home_space', 1, '', $thread['authorid']) : 'home.php?mod=space&amp;uid='.$thread['authorid'];
                $replaces['{lastposter_url}'] = $rewritespace ? rewriteoutput('home_space', 1, '', '', $thread['lastposter']) : 'home.php?mod=space&amp;username='.$thread['lastposterenc'];
                $replaces['{subject_url}'] = $rewriteviewthread ? rewriteoutput('forum_viewthread', 1, '', $thread['tid']) : 'forum.php?mod=viewthread&amp;tid='.$thread['tid'];
                $replaces['{lastpost_url}'] = 'forum.php?mod=redirect&tid='.$thread['tid'].'&goto=lastpost#lastpost';
                $replaces['{lastpost_url}'] = 'forum.php?mod=redirect&tid='.$thread['tid'].'&goto=lastpost#lastpost';
                $replaces['{avatar_small}'] = avatar($thread['authorid'], 'small', true);
                $replaces['{typename_url}'] = 'forum.php?mod=forumdisplay&fid='.$fid.'&filter=typeid&typeid='.$thread['tid'];
                $replaces['{attachment}'] = ($thread['attachment'] == 2 ? '<img src="'.STATICURL.'image/filetype/image_s.gif" align="absmiddle" />' :
                                                ($thread['attachment'] == 1 ? '<img src="'.STATICURL.'image/filetype/common.gif" align="absmiddle" />' : ''));
                $replaces['{author_verify}'] = $verify[$thread['authorid']] ? $verify[$thread['authorid']] : '';
                if($_G['forum']['ismoderator']) {
                        if($thread['fid'] == $fid && $thread['displayorder'] <= 3 || $_G['adminid'] == 1) {
                                $replaces['{modcheck}'] = '<input onclick="tmodclick(this)" type="checkbox" name="moderate[]" value="'.$thread['tid'].'" />';
                        } else {
                                $replaces['{modcheck}'] = '<input type="checkbox" disabled="disabled" />';
                        }
                } else {
                        $replaces['{modcheck}'] = '';
                }
                $body = str_replace(array_keys($replaces), $replaces, $body);
                $sorttemplate['body'] .= $body;
        }
        return $sorttemplate;
}
回复

使用道具 举报

 楼主| lxlsje 发表于 2013-4-29 19:01:51 | 显示全部楼层
lxlsje 发表于 2013-4-29 19:00
因为 我静态模板  调用的 代码 是 : $sorttemplate['body']     ,这个函数是调用分类信息模板的列表页。
...

不知道该如何 写一下判断。才能实现。
回复

使用道具 举报

 楼主| lxlsje 发表于 2013-4-29 19:03:12 | 显示全部楼层
漂泊的去 发表于 2013-4-29 18:00
楼主走错方向了,应该修改forum_forumdisplay.php文件,修改htm文件会很蛋疼,我也搞过类似的。另外楼主这 ...

另外, 我以前是用主题分类, 但是不好控制, 不如版块来的痛快。  所以主题分类的话,我还是不想考虑。
回复

使用道具 举报

 楼主| lxlsje 发表于 2013-4-29 19:06:04 | 显示全部楼层
还有就是, 我本来想到了 扩展设置, 版块关联功能, 可是悲剧的是 分类信息设置关联后,是调不出来的,只能用于普通版块关联。
回复

使用道具 举报

漂泊的去 发表于 2013-4-29 20:08:02 来自手机 | 显示全部楼层
lxlsje 发表于 2013-4-29 19:06
还有就是, 我本来想到了 扩展设置, 版块关联功能, 可是悲剧的是 分类信息设置关联后,是调不出来的,只 ...

我调过全部帖子到分区的,是支持分类信息的。版块关联我也试过,为什么我的可以?
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-16 10:00 , Processed in 0.040420 second(s), 4 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

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