[其他] Discuz! 获取所有分区及板块代码的秘密

[复制链接]
发表于 2024-6-4 21:48:07
在网站开发中,灵活运用DIY和代码调用是关键。当DIY无法满足需求时,可以通过代码来获取所需内容。以下代码是从关于我们插件中提取出来的,可用于其他页面,只需确保调用时与存放的文件名统一,并注意避开与论坛首页、分区、门户文章模板变量的冲突。

以下是1.php代码,将其另存为testsitemap.php并放置于网站根目录。请注意,文件名可自定义,但需在调用时保持一致。同时,记得赋予正确的文件权限以保证代码能够正常执行。
  1. <?php

  2. /**
  3. *  网页地图获取程序
  4. */

  5. if(!defined('IN_discuz')) {
  6.         exit('Access Denied');
  7. }

  8. require_once libfile('function/forumlist');
  9. $newthreads = round((TIMESTAMP - $_G['member']['lastvisit'] + 600) / 1000) * 1000;
  10. $catlist = $forumlist = $forumname = array();
  11. $todayposts = 0;
  12. $postdata = $_G['cache']['historyposts'] ? explode("\t", $_G['cache']['historyposts']) : array(0,0);
  13. $postdata[0] = intval($postdata[0]);
  14. $postdata[1] = intval($postdata[1]);


  15. if(!defined('FORUM_INDEX_PAGE_MEMORY') || !FORUM_INDEX_PAGE_MEMORY) {
  16.         $forums = C::t('forum_forum')->fetch_all_by_status(1);
  17.         $fids = array();
  18.         foreach($forums as $forum) {
  19.                 $fids[$forum['fid']] = $forum['fid'];
  20.         }
  21.         $forum_access = array();
  22.         if(!empty($_G['member']['accessmasks'])) {
  23.                 $forum_access = C::t('forum_access')->fetch_all_by_fid_uid($fids, $_G['uid']);
  24.         }
  25.         $forum_fields = C::t('forum_forumfield')->fetch_all($fids);
  26.         foreach($forums as $forum) {
  27.                 $forum = array_merge($forum, $forum_fields[$forum['fid']]);
  28.                 if($forum_access['fid']) {
  29.                         $forum = array_merge($forum, $forum_access[$forum['fid']]);
  30.                 }
  31.                 $forumname[$forum['fid']] = strip_tags($forum['name']);
  32.                 $forum['extra'] = empty($forum['extra']) ? array() : dunserialize($forum['extra']);
  33.                 if(!is_array($forum['extra'])) {
  34.                         $forum['extra'] = array();
  35.                 }
  36.                 if($forum['type'] != 'group') {
  37.                         $todayposts += $forum['todayposts'];
  38.                         if($forum['type'] == 'forum' && isset($catlist[$forum['fup']])) {
  39.                                 if(forum($forum)) {
  40.                                         $catlist[$forum['fup']]['forums'][] = $forum['fid'];
  41.                                         $forum['orderid'] = $catlist[$forum['fup']]['forumscount']++;
  42.                                         $forum['subforums'] = '';
  43.                                         $forumlist[$forum['fid']] = $forum;
  44.                                 }
  45.                         } elseif(isset($forumlist[$forum['fup']])) {
  46.                                 $forumlist[$forum['fup']]['todayposts'] += $forum['todayposts'];
  47.                                 if($_G['setting']['subforumsindex'] && $forumlist[$forum['fup']]['permission'] == 2 && !($forumlist[$forum['fup']]['simple'] & 16) || ($forumlist[$forum['fup']]['simple'] & 8)) {
  48.                                         $forumurl = !empty($forum['domain']) && !empty($_G['setting']['domain']['root']['forum']) ? 'http://'.$forum['domain'].'.'.$_G['setting']['domain']['root']['forum'] : 'forum.php?mod=forumdisplay&fid='.$forum['fid'];
  49.                                         $forumlist[$forum['fup']]['subforums'] .= (empty($forumlist[$forum['fup']]['subforums']) ? '' : ', ').'<a href="'.$forumurl.'" '.(!empty($forum['extra']['namecolor']) ? ' style="color: ' . $forum['extra']['namecolor'].';"' : '') . '>'.$forum['name'].'</a>';
  50.                                 }
  51.                         }
  52.                 } else {
  53.                         if($forum['moderators']) {
  54.                                  $forum['moderators'] = moddisplay($forum['moderators'], 'flat');
  55.                         }
  56.                         $forum['forumscount']         = 0;
  57.                         $catlist[$forum['fid']] = $forum;
  58.                 }
  59.         }
  60.         unset($forum_access, $forum_fields);

  61. } else {
  62.         require_once DISCUZ_ROOT.'./source/include/misc/misc_category.php';
  63. }
  64. ?>
复制代码
定制你的网页风格:轻松调用代码,HTML样式由你做主。
  1. <div>
  2. <!--{eval require_once DISCUZ_ROOT.'/testsitemap.php';}-->
  3. <!--{eval $gidiconnum = 0;}-->
  4. <!--{loop $catlist $key $cat}-->
  5. <!--{eval $caturl = !empty($cat['domain']) && !empty($_G['setting']['domain']['root']['forum']) ? 'http://'.$cat['domain'].'.'.$_G['setting']['domain']['root']['forum'] : '';}-->
  6. <!--{eval $gidiconnum ++;}-->     
  7.     <div class="box_5">
  8. <!--{eval $forumsss = 0;}-->
  9. <!--{loop $cat[forums] $forumid}-->
  10. <!--{eval $forum=$forumlist[$forumid];}-->
  11. <!--{eval $forumsss += $forum[todayposts];}-->
  12. <!-- 占位注释 -->
  13. <!--{/loop}-->        
  14.          <div class="fs_title">
  15.             <div class="left"><span class="map_bt"><a alt="$cat[name]" href="{if !empty($caturl)}$caturl{else}forum.php?gid=$cat[fid]{/if}" target="_blank">$cat[name]</a></span></div>
  16.             <div class="right"></div>
  17.           </div>
  18.           <div class="blank10"></div>         
  19.           <div class="map_list">
  20. <!--{eval $fidnum = 0;}-->
  21. <!--{loop $cat[forums] $forumid}-->
  22. <!--{eval $forum=$forumlist[$forumid];}-->
  23. <!--{eval $forumurl = !empty($forum['domain']) && !empty($_G['setting']['domain']['root']['forum']) ? 'http://'.$forum['domain'].'.'.$_G['setting']['domain']['root']['forum'] : 'forum.php?mod=forumdisplay&fid='.$forum['fid'];}-->
  24. <!--{eval $fidnum ++;}-->                          
  25.                     <a alt="$fidnum.$forum[name]" href="$forumurl"{if $forum[redirect]} target="_blank"{/if}>$fidnum.$forum[name]</a>
  26. <!--{/loop}-->                                       
  27.                  </div>
  28.         </div>
  29.         <div class="blank10"></div>           
  30. <!--{/loop}-->   
  31.           <div class="blank10"></div>
  32.           <div class="blank10"></div>
  33.           <div class="blank10"></div>
  34. </div>
复制代码




上一篇:discuz论坛,单个板块控制展示的主题数
下一篇:discuz 在板块列表页forumdisplay 调用 $_G 显示获取所有版块 名称 链接

使用道具 举报

Archiver|手机版|小黑屋|吾爱开源 |网站地图

Copyright 2011 - 2012 Lnqq.NET.All Rights Reserved( ICP备案粤ICP备14042591号-1粤ICP14042591号 )

关于本站 - 版权申明 - 侵删联系 - Ln Studio! - 广告联系

本站资源来自互联网,仅供用户测试使用,相关版权归原作者所有

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