奇矩互动官方论坛's Archiver

奇矩互动IDC

Liming 发表于 2008-5-28 15:44

MooPHP 后台使用方法

我们一向是追求快捷开发项目,而一般的项目都需要有一个管理的后台。所以基于此需求,MooPHP提供了一个快捷的构建管理后台的后台类。后台类使用非常的方便灵活。你需要做的就是关注你具体细节实现的部分。
下面介绍基本的组成和使用方法,欲知更详细的信息可以参考源代码。
[b]目录结构[/b]
./admin.php
入口文件,所有的操作都是调用该文件。后台操作涉及权限问题,需要根据自己的权限需求修改此文件。.
/Moo-admin/menu.inc.php
后台菜单配置文件,通过修改该文件来可以灵活的控制后台的菜单显示。
./Moo-admin
所有后台的操作的子文件存放目录。
./Moo-admin/javascript/
后台用到的javascript文件存放目录。
./Moo-admin/images/
后台用到的图片和css文件存放目录。
页面组成MooPHP后台主要由3个页面组成的一个经典的框架页后台--头部导航菜单页面,左侧子菜单导航页面,中部主要页面。头部导航菜单页面头部导航菜单页面主要是由大的分类组成的菜单。具体的菜单链接由菜单配置文件
./Moo-admin/menu.inc.php来生成。
生成的配置方法例如:
[quote]
$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');
[/quote]
只要根据上面的例子增加 $topMenu 即可,$topMenu的key 需要唯一,和下面的左侧的菜单对应。 上面增加后的效果是生成了3个大的导航菜单,当点击的时候,会在左侧页面显示对应的二级导航菜单,和在主页面显示iniUrl页面。
左侧子菜单导航页面改页面即为二级导航页面。通过修改配置文件 ./Moo-admin/menu.inc.php 来完成左边菜单栏的构建。
[quote]$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')
);
[/quote]
$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 方法完成。
[quote]
/**
* 生成表单信息
*
* @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()){}
[/quote]
下面对常见的表单类型如果使用 showForm 方法进行说明:
[b]单选(radio)[/b]
[quote]$admin->showForm('开关单选样例标题', 'radioName', '1', 'radio', '', '', 0, '开关单选样例说明');[/quote]
[b]多选[/b]
[quote](checkbox)$checkbox = array('checkboxName', array('1'=>'checkbox1', '2'=>'checkbox2','3'=>'checkbox3'));$admin->showForm('checkbox标题', $checkbox, '2', 'mcheckbox', '', '', '', 0, 'checkbox说明');[/quote]
[b]下拉(select)[/b]
[quote]$select = array('selectName', array(        array('1','下拉1'),        array('2','下拉2'),        array('3','下拉3'),        ));$admin->showForm('下拉选择标题', $select, '2', 'select', '', '', '', 0, '下拉选择说明');[/quote]
[b]单行文本(text)[/b]
[quote]$admin->showForm('单行文字输入框标题', 'textName', '初始值', 'text', '', '', 0, '单行文字输入框说明');[/quote]
[b]密码(password)[/b]
[quote]$admin->showForm('单行文字输入框标题', 'textName', '初始值', 'text', '', '', 0, '单行文字输入框说明');[/quote]
[b]文本(textarea)[/b]
[quote]$admin->showForm('密码输入框标题', 'textName', 'password', 'password', '', '', 0, '密码输入框说明(初始值为password)');[/quote]
[b]日历(calendar)[/b]
[quote]echo '<script src="./Moo-admin/javascript/calendar.js" type="text/javascript"></script>';$admin->showForm('日历样例标题', 'calendarName', '', 'calendar', '', '', '', 0, '日历样例说明');[/quote]
[b]  后台也有一个提示跳转的方法为 showMessage ,可以在提示使用[/b]
[quote]   /**
    * 显示提示信息
    *
    * @param string $message :提示文字
    * @param string $forward :提示返回地址
    * @param intval $delay :跳转延时,单位为秒,当为0的时候,在当前页面停止
    * @param string $extra :扩展信息
    * @return void
    */
   function showMessage($message, $forward = '', $delay = 3, $extra = '') {}[/quote]
[b]具体的实现的实例可以看下:[/b]
[quote]  ./Moo-admin/settings.inc.php[/quote]

[b]权限控制需要到实际开发根据实际情况具体控制(一般在入口文件统一控制即可)。[/b]

[[i] 本帖最后由 Liming 于 2008-5-29 10:36 编辑 [/i]]

blankyao 发表于 2008-5-28 16:01

沙发:)

Liming 发表于 2008-5-28 16:09

我还没有改完来。。。
真快

blankyao 发表于 2008-5-28 16:26

[quote]原帖由 [i]Liming[/i] 于 2008-5-28 16:09 发表 [url=http://www.ismole.net/redirect.php?goto=findpost&pid=2471&ptid=760][img]http://www.ismole.net/images/common/back.gif[/img][/url]
我还没有改完来。。。
真快 [/quote]
迅雷不及掩耳之势

页: [1]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.