此圖為後台管理中的論壇相關的導航樣式, 增加了信息管理一項的後台功能. 裏面實現的方法是用了模板技術.
由於 discuz 的後台函數模板太讓人傷心, 也實在是不利於二次開發, 所以此教程將後台管理功能更簡易化, 更擴展性.
我們依增加一項管理操作功能為例, 先實現讓它顯示出來.
修改方法:
首先打開: source/admincp/admincp_menu.php
第 16 行: $topmenu = $menu = array();
分別初始化了頂部導航及左側導航兩組用到的數組.
我們查找:
$menu['forum'] = array(
array('menu_forums', 'forums'),
回車新加一行, 註冊逗號之類的. 按上下規則來增加
array('信息管理', 'threadlist'), 'threadlist'表示調用的 php 文件, 完整路徑為 source/admincp/admincp_threadlist.php
保存起來, 現在刷新一下, 右側應該會出現一個新的信息管理功能. 但點擊後, 提示權限不足.
我們打開根目錄下的 admin.php 文件, 在 $admincp_actions_normal 數組中增加一個'threadlist'表示讓些功能許可操作. 注意上下對照一下, 原來代碼怎麼個寫法, 你也怎麼寫. 增加完後的效果.
$admincp_actions_normal = array('index','threadlist' ,'setting', 'members', 'profilefields', 'admingroup', 'usergroups',
現在點擊信息管理, 應該是空白, 而不是錯誤提示了.
現在我們新建立文件: source/admincp/admincp_threadlist.php
在裏面寫上如下代碼:
"我是測試管理頁"
點擊信息管理, 此段信息應該會出來, 那麼恭喜你, 你建立了一個新的後台管理頁. 接下來, 我們要功能與模板化.
將 php 代碼改成:
<?php
$topmenu = array (
'index' => 'asfsadfasdf',
'global' => 'sadfsadf',
'style' => 'asdfsadf',
'topic' => 'asdfsadfasdf',
'user' => 'sdfsdfafsdaf',
'portal' => 'asdfasdfsdaf',
'forum' => 'wrtwrasdfsa',
'group' => 'aswesdfasf',
'extended' => 'asfsadfsadf',
'plugin' => $isfounder ? 'plugins' : '',
'tools' => 'twetwetrwet',
);
//print_r($_G); 測試全局數組
include template('forum/threadlist');
?>
然後建議模板文件: template/default/forum/threadlist.htm
裏面代碼如下:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset={$_G[charset]}" />
<title></title>
<link rel="stylesheet" href="static/image/admincp/admincp.css" type="text/css" media="all" />
<script type="text/java script">
var admincpfilename = 'admin.php', IMGDIR = 'static/image/common', STYLEID = '1', VERHASH = '5nb', IN_ADMINCP = true, ISFRAME = 1;
</script>
<script src="static/js/common.js" type="text/java script"></script>
<script src="static/js/admincp.js" type="text/java script"></script>
<script type="text/java script">
if(ISFRAME && !parent.document.getElementById('leftmenu')) {
redirect(admincpfilename + '?frames=yes&' + document.URL.substr(document.URL.indexOf(admincpfilename) + 10));
}
</script>
</head>
<body>
<table style="text-align:left">
<!--{loop $topmenu $key $val}-->
<tr>
<td>{$key} === $val</td>
</tr>
<!--{/loop}-->
</table>
</body>
</html>
現在訪問看看, 是不是美妙得多了. 內容僅僅是 table 一段, 其它默認的信息建議保留, 可以加載一些 css.
你也可以建立自己獨有的 header 模板, 通過語法來調用.
好了, 你已經成功建立了一個新的後台管理頁.