====== MooPHP 后台使用方法 ====== 我们一向是追求快捷开发项目,而一般的项目都需要有一个管理的后台。所以基于此需求,MooPHP提供了一个快捷的构建管理后台的后台类。 后台类使用非常的方便灵活。你需要做的就是关注你具体细节实现的部分。 下面介绍基本的组成和使用方法,欲知更详细的信息可以参考源代码。 ===== 目录结构 ===== ./admin.php 入口文件,所有的操作都是调用该文件。后台操作涉及权限问题,需要根据自己的权限需求修改此文件。 ./Moo-admin/menu.inc.php 后台菜单配置文件,通过修改该文件来可以灵活的控制后台的菜单显示。 ./Moo-admin 所有后台的操作的子文件存放目录。 ./Moo-admin/javascript/ 后台用到的javascript文件存放目录。 ./Moo-admin/images/ 后台用到的图片和css文件存放目录。 ===== 页面组成 ===== MooPHP后台主要由3个页面组成的一个经典的框架页后台--头部导航菜单页面,左侧子菜单导航页面,中部主要页面。 ==== 头部导航菜单页面 ==== 头部导航菜单页面主要是由大的分类组成的菜单。具体的菜单链接由菜单配置文件 ./Moo-admin/menu.inc.php来生成。 生成的配置方法例如: $topMenu['settings'] = array('name'=>'设置', 'iniUrl'=>'admin.php?action=basic'); $topMenu['article'] = array('name'=>'文章', 'iniUrl'=>'admin.php?action=basic'); $topMenu['category'] = array('name'=>'分类', 'iniUrl'=>'admin.php?action=basic'); 只要根据上面的例子增加 $topMenu 即可,$topMenu的key 需要唯一,和下面的左侧的菜单对应。 上面增加后的效果是生成了3个大的导航菜单,当点击的时候,会在左侧页面显示对应的二级导航菜单,和在主页面显示iniUrl页面。 ==== 左侧子菜单导航页面 ==== 改页面即为二级导航页面。通过修改配置文件 ./Moo-admin/menu.inc.php 来完成左边菜单栏的构建。 $leftMenu['settings'] = array(); $leftMenu['settings']['system'] = array(); $leftMenu['settings']['system']['name'] = '系统设置'; $leftMenu['settings']['system']['array'] = array( array('title' => '站点标题', 'url'=>'admin.php?action=basic'), array('title' => '站点地址', 'url'=>'admin.php?action=basic') ); $leftMenu['settings']['basic'] = array(); $leftMenu['settings']['basic']['name'] = '基本设置'; $leftMenu['settings']['basic']['array'] = array( array('title' => '注册设置', 'url'=>'admin.php?action=basic'), array('title' => '页面显示', 'url'=>'admin.php?action=basic') ); $leftMenu['article'] = array(); $leftMenu['article']['system'] = array(); $leftMenu['article']['system']['name'] = '文章设置'; $leftMenu['article']['system']['array'] = array( array('title' => '文章分类', 'url'=>'admin.php?action=basic'), array('title' => '文章标签', 'url'=>'admin.php?action=basic') ); $leftMenu['category'] = array(); $leftMenu['category']['system'] = array(); $leftMenu['category']['system']['name'] = '分类设置'; $leftMenu['category']['system']['array'] = array( array('title' => '编辑分类', 'url'=>'admin.php?action=basic'), array('title' => '增加分类', 'url'=>'admin.php?action=basic') ); $leftMenu 为一个多维数组。一维的key即和头部的导航 $topMenu的key相对应,来完成一二级菜单的关联。 二维的key组成二级导航的菜单的一组。三维的key为name 和 array, name为该组菜单的标题,array 为该组下所有的菜单链接 每个菜单链接还是数组形式配置,title 对应链接标题,url 对应为在主页面打开的链接url。 参照上面的例子和规则是可以很灵活的增加自己的菜单的。 ==== 中部主要页面 ==== 中部页面是后台的主要页面,通过左侧链接打开主页面。 而左侧的链接是自己定义的(参照上面左侧页面说明)。 如果是通过./admin.php 入口的url,调用规则是所有文件放在 ./Moo-admin/ 目录下,且符合命名规则 $action.inc.php。 例如调用地址为 admin.php?action=basic 则会自动调用子文件 ./Moo-admin/basic.inc.php。 ===== 预置表单函数的使用 ===== admin.php在调用的时候已经初始化了一个后台管理类。对于常见的表单类型可以利用 showForm 方法完成。 /** * 生成表单信息 * * @param string $setName : 设置的标题名称 * @param string $varName : 生产的表单变量的名称 * @param string $value : 生产的表单初始值 * @param string $type : 生产的表单类型 * @param string $width :左表格和占的宽度比例 * @param string $disabled : 是否禁止提交或者设置为只读(readonly) * @param string $hidden : 是否增加隐藏的折叠层 * @param string $comment : 设置的说明 * @param array $lang : 语言包数组 * @return void */ function showForm($setName, $varName, $value, $type = 'radio', $width = '45%', $disabled = '', $hidden = 0, $comment = '', $lang = array()){} 下面对常见的表单类型如果使用 showForm 方法进行说明: ==== 单选(radio)==== $admin->showForm('开关单选样例标题', 'radioName', '1', 'radio', '', '', 0, '开关单选样例说明'); ==== 多选(checkbox)==== $checkbox = array('checkboxName', array('1'=>'checkbox1', '2'=>'checkbox2','3'=>'checkbox3')); $admin->showForm('checkbox标题', $checkbox, '2', 'mcheckbox', '', '', '', 0, 'checkbox说明'); ==== 下拉(select)==== $select = array('selectName', array( array('1','下拉1'), array('2','下拉2'), array('3','下拉3'), )); $admin->showForm('下拉选择标题', $select, '2', 'select', '', '', '', 0, '下拉选择说明'); ==== 单行文本(text)==== $admin->showForm('单行文字输入框标题', 'textName', '初始值', 'text', '', '', 0, '单行文字输入框说明'); ==== 密码(password)==== $admin->showForm('单行文字输入框标题', 'textName', '初始值', 'text', '', '', 0, '单行文字输入框说明'); ==== 文本(textarea)==== $admin->showForm('密码输入框标题', 'textName', 'password', 'password', '', '', 0, '密码输入框说明(初始值为password)'); ==== 日历(calendar)==== echo ''; $admin->showForm('日历样例标题', 'calendarName', '', 'calendar', '', '', '', 0, '日历样例说明');