分享

[框架] 后台页面开发

[复制链接]

后台页面开发

发表于 2020-1-5 09:33:50 来自 框架 阅读模式 正序浏览
1058 0 查看全部
  • 创建项目
在 ./source/admincp/menu/ 目录下创建 menu_mynav.php 文件 在“管理中心-全局”中加一个项目,需要在 menu_mynav.php 中给 $menu['global'] 数组变量,为其添加一个键值。如:
$menu['global'][] = array('menu_mynav_mytest', 'mynav_mytest');

创建一个语言包文件 ./source/language/lang_admincp_mynav.php 您可以在此语言包文件中添加一个中文键值来创建边栏按钮
$extend_lang = array
(
        'menu_mynav_mytest' => '我的项目',
);
$GLOBALS['admincp_actions_normal'][] = 'mynav';

其中 mynav_mytest 为指向的后台链接所对应的 action 和 operation, 如:admin.php?action=mynav&operation=mytest
  • 创建后台页面
当创建好上面项目之后,就可以根据 action 和 operation 来创建后台页面 对应链接 action 在 ./source/admincp/ 中创建 admincp_mynav.php 全新的后台PHP页面,并在内部加入下面的代码确保其后台正常的访问安全:
<?php
if(!defined('IN_DISCUZ') || !defined('IN_ADMINCP')) {
        exit('Access Denied');
}

在此页面中以正常的 PHP 逻辑进行编写即可,注意链接中的 &operation=mytest 可以使用下面的php进行判断:
if($operation == 'mytest') {
        //...
}

常用后台函数
当您在编写后台时,需要对几个常用后台显示函数进行详细的了解。下面的函数讲解按照重要性、常用性进行排序
showsetting()表单显示
  • 返回值:无
  • 参数:
    • $setname - 指定输出标题,如:setting_basic_bbname, 自动匹配描述文字为:setting_basic_bbname_comment,comment形式文字可以在./source/language/lang_admincp.php语言包中添加
    • $varname - 指定表单的name值,如settingnew[bbname]
    • $value - 指定表单默认值\变量
    • $type - 表单样式
      • radio单选
      • text文本、password密码、number数字
      • file上传文件
      • filetext 上传文件或在线文件切换型表单
      • textarea 多行文本
      • select 选择框
      • mradio 高级单选模式
      • mcheckbox 高级多选模式
      • binmcheckbox 二进制数值多选模式
      • mselect 高级选择框模式
      • color 颜色选择
      • calendar 日期选择
      • multiply多表单型,daterange时间范围
      • 其他未在上述样式中出现的$type均独立输出
    • $disabled - 是否不可修改
    • $hidden - 是否隐藏
    • $comment - 强制描述文字
    • $extra - 表单扩展属性
    • $setid - 用于拼接表单外层Div的id
  • 使用方法举例:
    //以文本形式输出表单(站点名称 text):
    showsetting('setting_basic_bbname', 'settingnew[bbname]', $setting['bbname'], 'text');
    //以单选形式输出表单(显示授权信息链接 radio):
    showsetting('setting_basic_boardlicensed', 'settingnew[boardlicensed]', $setting['boardlicensed'], 'radio');
    //以多行文本形式输出表单(网站第三方统计代码 textarea):
    showsetting('setting_basic_stat', 'settingnew[statcode]', $setting['statcode'], 'textarea');
    //以高级单选形式输出表单(新用户注册验证 mradio)
    showsetting('setting_access_register_verify', array('settingnew[regverify]', array(
            array(0, $lang['none'], array('regverifyext' => 'none')),
            array(1, $lang['setting_access_register_verify_email'], array('regverifyext' => '')),
            array(2, $lang['setting_access_register_verify_manual'], array('regverifyext' => ''))
    )), $setting['regverify'], 'mradio');
    //以高级多选形式输出表单('允许新用户注册 mcheckbox)
    showsetting('setting_access_register_status', array('settingnew[regstatus]', array(
            array('open', $lang['setting_access_register_open']),
            array('invite', $lang['setting_access_register_invite'], 'showinvite'),
            $_G['setting']['connect']['allow'] ? array('connect', $lang['setting_access_register_connect'], 'showconnect') : array(),
    )), $regstatus, 'mcheckbox');

cpmsg()提示消息
  • 返回值:无
  • 参数:
  • $message - lang_admincp_msg.php 语言包中需要输出的key
  • $url - 提示信息后跳转的页面,留空则返回上一页
  • $type - 特殊提示信息时指定页面的提示样式,可选参数:succeed、error、download、loadingform
  • $values - 为语言包中的变量关键词指定值,以数组形式输入
  • $extra - 消息文字扩展
  • $halt - 是否输出“Discuz! 提示”标题
  • 使用方法举例:
  • 成功提示信息
    cpmsg('tasks_installed', 'action=tasks&operation=type', 'succeed');

  • 错误提示信息,并传递变量(cachethreaddir为要传递如语言包中的变量关键词)
    cpmsg('cachethread_dir_noexists', '', 'error', array('cachethreaddir' => $settingnew['cachethreaddir']));

showformheader()创建表单头
  • 返回值:无
  • 参数:
  • $action - 表单action的一部分,程序会自动添加 admincp.php?action= 这些内容
  • $extra - 表单附加属性,可以是样式等
  • $name - 表单的name和id
  • $method - 表单提交方式
  • 使用方法举例,合并版块表单:
    showformheader('forums&operation=merge');

showformfooter()创建表单尾
  • 无返回值、无参数
  • 用于接上showformheader()函数进行收尾工作
showtableheader()创建表格头
  • 返回值:无
  • 参数:
  • $title - 如果输入title则显示标题,class为header,否则仅显示一个table头
  • $classname - 定义此输出表格的CSS样式
  • $extra - 表格扩展属性
  • $titlespan - 表格列数
  • 使用方法实例:
    showtableheader('forums_edit_posts', 'nobottom');

showtablefooter()创建表格尾
用于接上showformheader()函数进行收尾工作
showtablerow()创建列表式页面的行
  • 返回值:有
  • 参数:
  • $trstyle - 此行 tr 标签的格式定义,如 class="partition"
  • $tdstyle <array> - TD 标签的格式定义,如 class,colspan 等
  • $tdtext <array> - TD内显示的内容
  • $return 是否返回值
  • 此函数多用于循环中,用来逐行创建一个有规律的数据列表如:论坛版块列表等
  • 使用方法举例 ./source/admincp/admincp_forums.php
    showtablerow('', array('class="td25"', 'class="td28"'), array(
            '<input type="checkbox" class="checkbox" name="delete[]" value="'.$mod[uid].'"'.($mod['inherited'] ? ' disabled' : '').' />',
            '<input type="text" class="txt" name="displayordernew['.$mod[uid].']" value="'.$mod[displayorder].'" size="2" />',
            "<a href=\"".ADMINSCRIPT."?mod=forum&action=members&operation=group&uid=$mod[uid]\" target=\"_blank\">$mod[username]</a>",
            $modgroups[$mod['groupid']],
            cplang($mod['inherited'] ? 'yes' : 'no'),
    ));

showsubmit()创建提交按钮
  • 返回值:无
  • $name - 定义提交按钮的name值
  • $value - 定义按钮的文字值
  • $before - 根据此按钮之前的属性来输出样式
  • $after - 根据此按钮之后的属性来输出样式
  • $floatright - 是否有浮动
  • $entersubmit - 是否使用回车定义按钮提交动作
showhiddenfields()创建隐藏表单域
  • 返回值:无
  • 参数:
  • $hiddenfields <array> 以数组形式传入,循环输出隐藏表单域
showsubmenu()二级导航栏显示参数:
  • $title - 二级导航的当前栏标题
  • $menus <array> - 多个子导航
  • 使用方法举例:
  • 后台-用户-会员管理
    showsubmenu('nav_members', array(
            array('search', 'members&operation=search', 1),
            array('clean', 'members&operation=clean', 0),
            array('nav_repeat', 'members&operation=repeat', 0),
    ));

shownav()面包屑导航栏显示及二级导航栏标题
  • 返回值:无
  • 参数:
  • $header - 导航起点
  • $menu - 子导航标题
  • $nav - 面包屑导航第三层
  • 使用方法举例:
  • 后台-运营-电子商务
    shownav('extended', 'nav_ec', 'nav_ec_config');

以上列举的均为最常用后台函数,仔细了解这些函数的使用已经能够满足您对 Discuz! X 系列版本的后台开发需求

回复

使用道具 举报

游客~
懒得打字嘛,点击右侧快捷回复
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋| 鲸云论坛

© 2013-2016 Comsenz Inc. Powered by Discuz! X3.4