示例#1
0
        }
    }
    /* 初始化权限系统的权限文件和系统提示 */
    init_privilege_sys_pfile();
    make_json_ok();
} else {
    /* 权限检查 */
    admin_privilege_valid('module.php', 'list');
    /* 取得管理员的增加操作和非增加、列表操作 */
    $m_aa = admin_module_acts('module.php');
    $m_ab = filter_module_acts($m_aa, array('add'), true);
    $m_ac = filter_module_acts($m_aa, array('add', 'list'), false);
    array_unshift($m_ac, array('module_act_name' => $_LANG['act_dmove'], 'module_act_code' => 'dmove'));
    array_unshift($m_ac, array('module_act_name' => $_LANG['act_umove'], 'module_act_code' => 'umove'));
    /* 模块列表 */
    $tpl['all'] = all_module();
    /* 模块列表 - 数据重构 */
    foreach ($tpl['all'] as $i => $r) {
        $tpl['all'][$i]['pre'] = '<span class="';
        $tpl['all'][$i]['pre'] .= ($r['lvl'] > 1 ? 'minus' : 'plus') . '" style="';
        $tpl['all'][$i]['pre'] .= $r['rht'] - $r['lft'] > 1 ? 'cursor:pointer;' : '';
        $tpl['all'][$i]['pre'] .= 'margin-left:' . intval($r['lvl'] - $tpl['all'][0]['lvl']) * 2 . 'em;" ';
        $tpl['all'][$i]['pre'] .= 'onclick="tabletree_click(this)"></span>';
        /* 编辑操作 */
        $attribs = array();
        $attribs['edit']['onclick'] = "wnd_module_fill(this,'edit',{$r[module_id]})";
        /* 上/下移操作 */
        $attribs['umove']['onclick'] = "deal_tbltr_move(this,'up',{$r[module_id]},'modules/kernel/module.php')";
        $attribs['dmove']['onclick'] = "deal_tbltr_move(this,'down',{$r[module_id]},'modules/kernel/module.php')";
        /* 增加操作 */
        if ($r['lft'] != $r['rht'] - 1) {
示例#2
0
/**
 * 下拉列表 - 模块
 *
 * @params str  $name      下拉列表名称
 * @params mix  $selected  下拉列表选中项
 * @params arr  $appends   下拉列表追加项
 * @params arr  $attribs   下拉列表属性
 */
function ddl_module($name, $selected = '', $appends = array(), $attribs = array())
{
    global $_LANG;
    /* 初始化 */
    $items = array();
    /* 所有模块 */
    $modules = all_module();
    /* 下拉列表顶部项 */
    if (is_array($appends)) {
        if (isset($appends['value']) && isset($appends['text'])) {
            $appends = array(array('value' => $appends['value'], 'text' => $appends['text']));
        }
        foreach ($appends as $i => $item) {
            if (is_array($item) && isset($item['value']) && isset($item['text'])) {
                $items[] = $item;
            }
        }
    }
    /* 下拉列表项 */
    foreach ($modules as $r) {
        $text = f(str_repeat(' ', ($r['lvl'] - 1) * 4) . $r['name'], 'html');
        $items[] = array('value' => $r['module_id'], 'text' => $text);
    }
    $fc = new Formc();
    return $fc->ddl($name, $items, array_merge(array('selected' => $selected), $attribs));
}
示例#3
0
/**
 * 权限表
 *
 * @params str  $name       复选框的名字
 * @params arr  $seled_ids  被选中的权限IDS
 * @params arr  $priv_ids   要显示的权限IDS,当为false表示显示全部
 *
 * @return str
 */
function html_privilege_table($name, $seled_ids = array(), $priv_ids = false)
{
    global $_LANG;
    /* 要显示的权限IDS为空时 */
    if (is_array($priv_ids) && empty($priv_ids)) {
        return '';
    }
    /* 初始化参数 */
    if (!is_array($seled_ids)) {
        $seled_ids = array();
    }
    if (!is_array($priv_ids)) {
        $priv_ids = false;
    }
    /* 构建权限SQL */
    $sql = 'SELECT * FROM ' . tname('privilege');
    //SELECT * FROM
    $sql .= $priv_ids === false ? '' : ' WHERE privilege_id IN("' . implode('","', $priv_ids) . '")';
    //WHERE, 限制要显示的权限
    $sql .= 'ORDER BY `order` ASC';
    $privs = array();
    $array = $GLOBALS['db']->getAll($sql);
    /* 重构权限数组 */
    foreach ($array as $r) {
        $privs[$r['module_id']][] = $r;
        $m_ids[$r['module_id']] = $r['module_id'];
        //记录权限所在的模块
    }
    /* 所有模块 */
    $modules = all_module();
    /* 过滤模块 */
    for ($i = count($modules); $i >= 0; $i--) {
        /* 保留预设节点 */
        if (in_array($modules[$i]['module_id'], $m_ids)) {
            continue;
        }
        /* 保留预设节点的父节点 */
        if ($modules[$i + 1]['lvl'] > $modules[$i]['lvl']) {
            continue;
        }
        array_splice($modules, $i, 1);
    }
    $html = '<table class="form-table">';
    foreach ($modules as $i => $module) {
        /* 模块无权限 - 说明该模块为模块组 */
        if (empty($privs[$module['module_id']])) {
            $html .= '<tr style="background-color:#f9f9f9;"><td width="100" style="padding:4px;padding-left:6px;">';
            $html .= '<b>' . $module['name'] . '</b></td><td></td></tr>';
            continue;
        }
        $cb = $cbg = '';
        $cb_checked = true;
        foreach ($privs[$module['module_id']] as $r) {
            /* 初始化权限表HTML的权限ID */
            $pid = 'ptbl_privilege_' . $r['privilege_id'] . '_' . time();
            $cbg .= '<input class="checkbox" type="checkbox"';
            $cbg .= 'name="' . $name . '[]" value="' . $r['privilege_id'] . '" id="' . $pid . '" ';
            $cbg .= (in_array($r['privilege_id'], $seled_ids) ? 'checked="checked"' : '') . ' ';
            $cbg .= 'onclick="Formc.cbgSyncCbg(Formc.cbgByContainer(this.parentNode.previousSibling),Formc.cbgByContainer(this.parentNode))">';
            $cbg .= '<label for="' . $pid . '">' . $r['module_act_name'] . '</label>';
            $cb_checked &= in_array($r['privilege_id'], $seled_ids);
        }
        /* 初始化权限表HTML的模块ID */
        $mid = 'ptbl_module_' . $module['module_id'] . '_' . time();
        $cb .= '<tr><td>';
        $cb .= '<input class="checkbox" type="checkbox" onclick="Formc.cbSyncCbg(this,Formc.cbgByContainer(this.parentNode.nextSibling))" ';
        $cb .= 'id="' . $mid . '"';
        $cb .= $cb_checked ? 'checked="checked"' : '';
        $cb .= '><label for="' . $mid . '" style="color:#005363">' . $module['name'] . '</label></td>';
        $cb .= '<td align="left">';
        $html .= $cb . $cbg . '</td></tr>';
    }
    $html .= '</table>';
    return $html;
}