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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

[疑问] 感想littlehz 进来下吧

[复制链接]
vlanq 发表于 2009-6-19 21:24:32 | 显示全部楼层 |阅读模式
本帖最后由 vlanq 于 2009-6-20 16:59 编辑

安你方法已经调出我所想要的效果,请看:
http://www.kjrbl.com/action-channel-name-rwzq.html

可惜我采用的是写了10个版块,即你所说的第一种方法。至于第二种方法,期待你在有空时间里帮我写出来下,让我和大家一起学习。万分感谢!!


新的问题就是频道上,我点击了除资讯和论坛频道外的其他频道,比如我点击“WEB”,点亮的频道颜色却还是在“系统”频道上,如何解决?
antdk 发表于 2009-6-19 21:30:04 | 显示全部楼层
什么意思?
回复

使用道具 举报

 楼主| vlanq 发表于 2009-6-19 21:56:19 | 显示全部楼层
我创建了一个频道,http://www.kjrbl.com/action-channel-name-yszy.html
我把http://www.kjrbl.com/action-bbs.html 这里的代码复制到action-channel-name-yszy.html
了,然后显示不出各板块最新列表。如何解决呢?   
听说因为模板变量中的<!--{loop $forumarr $ckey $cat}-->仅在论坛频道页面有效,普通频道页面这个变量为空值。所以,需要如何改变量?
回复

使用道具 举报

huihui0103 发表于 2009-6-20 01:21:55 | 显示全部楼层
要改php文件
回复

使用道具 举报

littlehz 发表于 2009-6-20 11:15:54 | 显示全部楼层
我再帮你把思路理清楚一点。
论坛频道会自动生成相应的PHP语句,获取到论坛的版块数据之类存放到$forumarr数组变量中,上面的loop循环就是把$forumarr数据变量中的值按特定的方式输出。
但是普通频道不会自动获取论坛数据,也就没有$forumarr数据变量,直接用$forumarr也就是空值,所以什么版块信息都不能显示。
应该需要在后台新建一个模块,选择只获取数据方式读取论坛数据。然后把生成的<!--block代码插入到这个loop之前,loop的控制变量就不再是$forumarr了,而改为模块的变量调用$_SBLOCK['模块中设置的变量名']
回复

使用道具 举报

 楼主| vlanq 发表于 2009-6-20 12:38:49 | 显示全部楼层
littlehz 首先感谢你在百忙中抽时间看我的贴。

  按照你说的方法,现在版块列表出来了,但是里面的板块主题都是重复为一个板块里的主题。
http://www.kjrbl.com/action-channel-name-yszy.html

  于是我依次类推,也创建个主题模块,插入后,问题依然如此,你帮我看看我现在的代码:然后教下如何修改?

  1. <!--各板块最新列表-->
  2.                         <!--{eval $i = 1;}-->
  3.                         <!--{block name="bbsforum" parameter="fid/10,33,37,36,34,32,35,25,40,38,39/limit/0,12/cachetime/900/cachename/webbankuai/tpl/data"}--><!--webbankuai-->
  4.             <!--{loop $_SBLOCK[webbankuai] $ckey $cat}-->
  5.                         <!--{eval $ctime=3800+30*$ckey;}-->                                    
  6.                         <!--{eval $cachetime=38000+30*$ckey;}-->
  7.                  <!--{block name="bbsthread" parameter="fid/10,33,37,36,34,32,35,25,38,39,40/order/dateline DESC/perpage/12/subjectlen/40/bbsurltype/site/cachename/webzhuti/tpl/data"}--><!--555-->
  8.                          <!--{if ($i % 2) == 0}-->
  9.                         <div class="global_module box_r">
  10.                         <!--{else}-->
  11.                         <div class="global_module">
  12.                         <!--{/if}-->
  13.                                 <div class="global_module1_caption"><h3>$cat[name]</h3><a class="more" href="#action/forumdisplay/fid/$cat[fid]#">更多&gt;&gt;</a></div>
  14.                                 <ul class="global_tx_list1">
  15.                                         <!--{loop $_SBLOCK['webzhuti'] $value}-->
  16.                                         <li><span class="box_r"><a href="{S_URL}/space.php?uid=$value[authorid]">$value[author]</a></span><a href="$value[url]" title="$value[subjectall]">$value[subject]</a></li>
  17.                                         <!--{/loop}-->
  18.                                 </ul>
  19.                         </div>
  20.                         <!--{eval $i++;}-->
  21.                         <!--{/loop}-->

  22.                 </div>
  23.                
  24.         </div><!--col1 end-->
复制代码
回复

使用道具 举报

 楼主| vlanq 发表于 2009-6-20 13:00:38 | 显示全部楼层
期待中
~~~~~~~
回复

使用道具 举报

littlehz 发表于 2009-6-20 15:18:06 | 显示全部楼层
本帖最后由 littlehz 于 2009-6-20 16:00 编辑

实现你要的,有两种方法:假设论坛有6个板块
1、分别建6个block name="bbsforum",fid后面接1个论坛版块,每次从1个板块里调用论坛数据,这样就有6个块调用出6个不同的版块帖子。但是这样的缺点就是不够灵活,如果以后添加删除了一个论坛版块,需要手动在这个页面增加删除。类似下面这样的,那些if的判断语句就不需要了。这样是1层循环,但是6个并列。
  1. <!--{block name="bbsthread" parameter="fid/10/order/dateline DESC/perpage/12/subjectlen/40/bbsurltype/site/cachename/webzhuti/tpl/data"}-->
  2. <ul>
  3. <!--{loop $_SBLOCK['webzhuti'] $value}-->
  4.    <li><span class="box_r"><a href="{S_URL}/space.php?uid=$value[authorid]">$value[author]</a></span><a href="$value[url]" title="$value[subjectall]">$value[subject]</a></li>
  5. <!--{/loop}-->
  6. </ul>
  7. <!--{block name="bbsthread" parameter="fid/33/order/dateline DESC/perpage/12/subjectlen/40/bbsurltype/site/cachename/webzhuti/tpl/data"}-->
  8. <ul>
  9. <!--{loop $_SBLOCK['webzhuti'] $value}-->
  10.    <li><span class="box_r"><a href="{S_URL}/space.php?uid=$value[authorid]">$value[author]</a></span><a href="$value[url]" title="$value[subjectall]">$value[subject]</a></li>
  11. <!--{/loop}-->
  12. </ul>
复制代码
2、如果不想手动更新,就用嵌套循环方式:第一次先把所有版块信息取出来(其实只要版块id),循环出来有几个板块id,然后根据这个取出来的版块id再做论坛帖子的查询。第二部的取数据的parameter="fid/10/,就不是填具体的数字10了,而是用第一次取版块信息得到的fid变量。这种情况是有两个嵌套的层级循环。
第二种方法也就是bbs_index.html.php这个模板的方法。
仔细对比学习官方模板是怎么控制它显示的。再根据上面告诉你的原理,多研究些时间能明白,学会了以后也可以帮助他人。
如果还是配置不成功,过几天我有空时再来写代码,这几天有考试,研究时间不多。
回复

使用道具 举报

huihui0103 发表于 2009-6-20 15:55:45 | 显示全部楼层
看一看 怎么样
回复

使用道具 举报

 楼主| vlanq 发表于 2009-6-20 16:49:40 | 显示全部楼层
感谢中.................又学习到了!!!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-6 05:33 , Processed in 0.031926 second(s), 4 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

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