本題是關於php做的cms管理系統discuz的問題,所以回答本題要搞過discuz的人.
問題是這樣:我想把系統內建的尾部統計線上人數的代碼放在頭部,所以我就複製了這段代碼到頭部中,但是奇怪的是顯示為亂碼,起碼以為是條件判斷的原因,後來多次檢查,感覺不是.
下面的代碼我是我複製的,不知為啥放在head.htm中就是不行呢,應該如何寫才是正確的呢?
{lang onlinemember}- $onlinenum {lang onlines}- $membercount {lang index_members}($invisiblecount {lang index_invisibles}),$guestcount {lang index_guests}- {lang index_mostonlines} $onlineinfo[0] {lang on} $onlineinfo[1].
{lang onlinemember}{lang onlinemember}- {lang total} $onlinenum {lang onlines}- $membercount {lang index_members},$guestcount {lang index_guests}- {lang index_mostonlines} $onlineinfo[0] {lang on} $onlineinfo[1].
-
$_G[cache][onlinelist][legend]
-
- $online[username]$online[username]
- {lang online_only_guests}
回複討論(解決方案)
是複製上面代碼後的結果
清緩衝看看。
清緩衝看看。
請緩衝這是最起碼的常識吧!
統計線上人數,那是首頁的功能,如:$onlinenum,$invisiblecount等,都是在\source\module\forum\forum_index.php裡面定義的
而header.htm是所有頁面都要引用的,裡面的變數都是在初始化的時候取出放到了$_G裡面,所以,你直接copy的代碼不生效
有兩種辦法:
1>在source\class\discuz\discuz_application.php中初始化的時候查詢資料庫,並放到$_G中(不建議新手這樣做)
2>在header.htm中調用一個函數,如:,getnolineinfo()方法在source\function\function_core.php中自己定義,裡面具體的實現代碼,請參考source\module\forum\forum_index.php中178行左右的if裡面的代碼