给discuz x增加后台菜单管理功能

我们二次开发时,有时避免不了要为自己的程序增加后台管理功能,首先就要是要添加扩展目录和文件:

新建立目录/source/admincp/menu/  扩展菜单目录,(左侧菜单显示的文件,文件名称的格式 menu_music.php)。

再之后新建文件/source/admincp/menu/menu_music.php  菜单配置 ,music是你模型的的名字,是$_GET[‘action’]的值。

写入文件内容

<?php

$topmenu['music'] = ”;

$menu['music'] = array( 
    array(‘menu_music_channle’, ‘music_channel_confid’),  

/*第一个值为菜单名字;会用默认的lang获取,也可以直接写名字。

第二个值为参数$_GET['action']、$_GET['operation']和$_GET['do'] 用”_”格开,这个在写管理文件时要用,比如这个对应的网址就是admin.php?action=music&operation=channel&do=confid。

每一个数组就是一个菜单按钮。

*/

    array(‘menu_music_sortoption’, ‘music_sort’), 
);

?>

接下来就是写菜单名字了:

新建/source/language/lang_admincp_music.php语言文件,写入下面内容:

<?php

$extend_lang = array 

    ‘header_music’ => ‘音乐’,//这是最上面显示的菜单名字。 
    ‘nav_music’ => ‘音乐′, //子导航菜单名字,下面就是对应菜单配置中的中文

    ‘menu_music_channle_confid” => ‘音乐基本设置’, 
    ‘menu_music_sort’ => ‘音乐分类管理’,);

$GLOBALS['admincp_actions_normal'][] = ‘music’;//这是模板的名字,这个是必须写的!

?>

接下来就是写管理文件了,

创建/source/admincp/admincp_music.php,music是模板名。

具体内容就要自己写了,但是一定要记得在文件头加上

if(!defined(‘IN_DISCUZ’) || !defined(‘IN_ADMINCP’)) { 
    exit(‘Access Denied’); 
}

总结:discuz后台扩展菜单的方法:

第一种:

1.有着PHP的功力,直接修改discuz源文件。(不推荐 兼容性不好)

步骤:

1.打开文件 source/admincp/admincp_menu.php修改添加红色字体

$isfounder = isset($isfounder) ? $isfounder : isfounder();

$topmenu = $menu = array();

$topmenu = array (
'index' => '',
'global' => '',
'style' => '',
'topic' => '',
'user' => '',
'portal' => '',
'forum' => '',
'group' => '',
'extended' => '',
'plugin' => $isfounder ? 'plugins' : '',
'tools' => '',
'music' => '',
);

2.打开文件source/language/lang_admincp_menu.php修改添加

$lang = array
(


  'header_index' => '首頁',
  'header_global' => '全局',
  'header_forum' => '論壇',
  'header_user' => '用戶',
  'header_topic' => '內容',
  'header_extended' => '運營',
  'header_plugin' => '應用',
  'header_style' => '界面',
  'header_adv' => '廣告',
  'header_tools' => '工具',
  'header_uc' => 'UCenter',
  'header_music' => '音乐',
  'header_welcome' => '您好',

保存 即可,刷新后台。OK 顶部菜单已出来。

第二种方法:以扩展的方式写(推荐 兼容性好),discuz会自动扫描source/admincp/menu文件夹下的文件,自动包含。

创建menu_music.php文件

<?php

$topmenu['music'] = '';

$menu['music'] = array(
  array('menu_category_index', 'category_index_music'),

);

?>

2.创建source/language/lang_admincp_music.php

<?php
$extend_lang = array
(
  'header_music' => '音乐',
  'nav_music' => '音乐',
  'mod_name_music' => '音乐模块增强版',

  'menu_category_index' => '音乐信息',
);
$GLOBALS['admincp_actions_normal'][] = 'music';
?>

注意:经过我研究发现 header_music  与topmenu['music']='';是语言对应关系。有错误的欢迎探讨。  

  

只有想不到,没有做不到!!!
鸿鹄IT网络学院
原文地址:https://www.cnblogs.com/zhongbin/p/3152148.html