下面這句話出自discuz程式,應該怎麼理解呢?
$recommendgroups = array();
if($_G['forum']['status'] != 3 && helper_access::check_module('group')) {
loadcache('forumrecommend');
$recommendgroups = $_G['cache']['forumrecommend'][$_G['fid']];
}
if($recommendgroups) {
if(empty($_G['cookie']['collapse']) || strpos($_G['cookie']['collapse'], 'recommendgroups_'.$_G['fid']) === FALSE) {
$collapse['recommendgroups'] = '';
$collapseimg['recommendgroups'] = 'collapsed_no.gif';
} else {
$collapse['recommendgroups'] = 'display: none';
$collapseimg['recommendgroups'] = 'collapsed_yes.gif';
}
}
我的痛點是不理解這個二維數組是怎麼來的$_G['forum']['status']
回複討論(解決方案)
html頁面有一個loop迴圈
顯然這個 html 是模板了,因為 php 和 js 都沒有 loop 迴圈
不過常見的模板引擎似乎也沒有 loop 迴圈
你還是貼出標記吧
$_G['cache']['forumrecommend'][$_G['fid']]
我主要是不理解這個多維陣列,它是啥意思呢
找到根目錄下,forum.php
裡面有個方法,loadforum();
該方法在/source/function/function_forum.php
方法中的:$forum = C::t('forum_forum')->fetch_info_by_fid($fid);,就是擷取板塊的設定
方法中有:$_G['forum'] = &$forum;,所以$_G['forum']['status']有值
loadcache('forumrecommend');
在pre_common_syscache中找到cname等於forumrecommend的快取資料(位元據),放入$_G['cache']中
$_G['cache']['forumrecommend']是版主推薦的資訊,對應的表pre_forum_forumrecommend 版主推薦表
$_G['fid']就是當前的板塊id