Example #1
0
function king_admin_edt()
{
    global $king;
    $data = array();
    $s = $king->access('admin');
    $_sql = "adminname,adminpass,adminlevel,adminlanguage,admineditor,adminmode,adminlogin,siteurl";
    //,admindiymenu
    $_adminid = kc_get('adminid');
    if ($GLOBALS['ismethod'] || $_adminid == '') {
        //POST过程或新添加的过程
        $data = $_POST;
        if (!$GLOBALS['ismethod']) {
            //初始化新添加的数据
            $data['adminlanguage'] = LANGUAGE;
            $data['adminlogin'] = '******';
        }
    } else {
        //编辑数据,从数据库读出
        $data = $king->db->getRows_one('select ' . $_sql . ' from %a_admin where adminid=' . $_adminid . ' limit 1;');
    }
    $fields = explode(',', $_sql);
    $data = kc_data($fields, $data);
    $s = $king->openForm('manage.php?action=admin_edt');
    //帐号
    if ($_adminid) {
        //update
        $s .= $king->htmForm($king->lang->get('system/admin/name'), '<input class="k_in w100" type="text" disabled="true" value="' . htmlspecialchars($data['adminname']) . '" />');
        $s .= kc_htm_hidden(array('adminname' => $data['adminname']));
    } else {
        $_array = array(array('adminname', 0, 2, 12), array('adminname', 1), array('adminname', 12, $king->lang->get('system/check/none'), $king->db->getRows_one("select adminid from %a_admin where adminname='" . $king->db->escape(kc_post('adminname')) . "';")));
        $s .= $king->htmForm($king->lang->get("system/admin/name") . ' (2-12)', '<input class="k_in w150" type="text" name="adminname" value="' . htmlspecialchars($data['adminname']) . '" maxlength="12" />', $_array);
    }
    //密码
    if ($_adminid) {
        $_array = array(array('pass1', 17, null, 'pass2'));
    } else {
        $_array = array(array('pass1', 0, 6, 30), array('pass1', 17, null, 'pass2'));
    }
    $s .= $king->htmForm($king->lang->get('system/admin/pass1') . ' (6-30)', '<input class="k_in w150" type="password" name="pass1" maxlength="30" />', $_array);
    $s .= $king->htmForm($king->lang->get('system/admin/pass2'), '<input class="k_in w150" type="password" name="pass2" maxlength="30" />');
    //adminlanguage
    $s .= $king->htmForm($king->lang->get('system/common/language'), kc_htm_select('adminlanguage', kc_htm_selectlang(), $data['adminlanguage']));
    //admineditor
    $array_dir = kc_f_getdir('system/editor/', 'dir');
    $_array = array();
    foreach ($array_dir as $val) {
        $_array[$val] = $val;
    }
    $s .= $king->htmForm($king->lang->get('system/common/editor'), kc_htm_select('admineditor', $_array, $data['admineditor']));
    //adminmode
    $_array = array(2 => $king->lang->get('system/admin/mode2'), 1 => $king->lang->get('system/admin/mode1'), 0 => $king->lang->get('system/admin/mode0'));
    $s .= $king->htmForm($king->lang->get('system/admin/mode'), kc_htm_radio('adminmode', $_array, $data['adminmode']));
    //adminlevel
    if ($king->admin['adminid'] != $_adminid) {
        $data['adminlevel'] == 'admin' ? $_checkbox = '<input type="checkbox" id="adminlevel" name="adminlevel" value="admin" onclick="javascript:selevel()" checked="checked" />' : ($_checkbox = '<input type="checkbox" id="adminlevel" name="adminlevel" value="admin" onclick="javascript:selevel()" />');
        $_array = array('-' . $king->lang->get('system/name') . '-', $king->lang->get('system/level/channel') . '[', '#open_settring' => $king->lang->get('system/common/setting'), '#open_help' => $king->lang->get('system/common/help'), ']', '[', '#resetpass' => $king->lang->get('system/level/resetpass'), ']', '[', '#novice' => $king->lang->get('system/level/novice'), ']', '|', $king->lang->get('system/common/system') . '[', '#systeminfo' => $king->lang->get('system/level/config'), '#systemcache' => $king->lang->get('system/level/clearcache'), '#module' => $king->lang->get('system/level/module'), '#plugin' => $king->lang->get('system/level/plugin'), '#lnk' => $king->lang->get('system/level/lnk'), '#phpinfo' => $king->lang->get('system/level/phpinfo'), '#timingtask' => $king->lang->get('system/level/timingtask'), ']', '|', $king->lang->get('system/level/log') . '[', '#log' => $king->lang->get('system/common/access'), '#log_delete' => $king->lang->get('system/common/del'), ']', '-', $king->lang->get('system/common/filemanage') . '[', '#brow' => $king->lang->get('system/common/access'), '#brow_md' => $king->lang->get('system/common/md'), '#brow_upfile' => $king->lang->get('system/common/upfile'), '#brow_delfile' => $king->lang->get('system/common/delfile'), ']', '|', $king->lang->get('system/level/event') . '[', '#event' => $king->lang->get('system/common/access'), '#event_delete' => $king->lang->get('system/common/del'), ']', '-', $king->lang->get('system/upfile/manage') . '[', '#upfile' => $king->lang->get('system/upfile/access'), '#upfile_edt' => $king->lang->get('system/common/edit'), '#upfile_delete' => $king->lang->get('system/upfile/del'), ']', '-', $king->lang->get('system/bot/title') . '[', '#bot' => $king->lang->get('system/common/access'), '#botedt' => $king->lang->get('system/common/edit'), '#botdel' => $king->lang->get('system/common/del'), ']', '|', $king->lang->get('system/title/conn') . '[', '#conn' => $king->lang->get('system/common/access'), '#conn_edt' => $king->lang->get('system/common/edit'), '#conn_del' => $king->lang->get('system/common/del'), ']');
        $module = $king->getModule();
        foreach ($module as $val) {
            $language = is_file(ROOT . $val . '/language/' . $king->admin['adminlanguage'] . '.xml') ? $king->admin['adminlanguage'] : LANGUAGE;
            $xml = new KC_XML_class();
            $xml->load_file($val . '/language/' . $language . '.xml');
            $array_kingcms = $xml->xml2array();
            $array_access = $array_kingcms['ACCESS'];
            if ($array_access) {
                $_array[] = '|';
                $_array[] = '|';
                $_array[] = '-' . $king->lang->get($val . '/name') . '-';
                //			kc_error('<pre>'.print_r($array_access,1));
                foreach ($array_access as $k => $v) {
                    $v == '|' ? $_array[] = '|' : ($_array[$k] = $v);
                }
            }
        }
        $_s = '<div id="levels">';
        $_s .= kc_htm_checkbox('level', $_array, $data['adminlevel']);
        $_s .= '</div>';
        $s .= $king->htmForm($king->lang->get('system/admin/setlevel'), '<span>' . $_checkbox . '<label for="adminlevel">' . $king->lang->get('system/level/admin') . '</label></span>' . $_s);
        $s .= "<script>function selevel(){if (\$('#adminlevel').attr('checked')==true){\$('#levels').hide()}";
        $s .= "else{\$('#levels').show();}};selevel();</script>";
    }
    //adminlogin
    $_array = array(array('adminlogin', 0, 5, 100));
    $array_value = array('../system/manage.php' => $king->lang->get('system/common/home'), '../portal/manage.php' => $king->lang->get('system/title/list'));
    $s .= $king->htmForm($king->lang->get('system/admin/login') . ' (5-100)', '<input type="text" name="adminlogin" id="adminlogin" class="k_in w300" value="' . htmlspecialchars($data['adminlogin']) . '" maxlength="100" />' . kc_htm_setvalue('adminlogin', $array_value), $_array);
    //siteurl
    $_array = array(array('siteurl', 0, 0, 100));
    $s .= $king->htmForm($king->lang->get('system/admin/url') . ' (0-100)', '<input type="text" name="siteurl" id="siteurl" class="k_in w300" value="' . htmlspecialchars($data['siteurl']) . '" maxlength="100" />', $_array, null, kc_help('system/help/lockurl', 350, 150));
    $s .= kc_htm_hidden(array('adminid' => $_adminid));
    $s .= $king->closeForm('save');
    if ($GLOBALS['ischeck']) {
        $_sql = 'adminlanguage,admineditor,adminmode,adminlogin,siteurl';
        //,admindiymenu
        if (!$_adminid) {
            $_sql .= ',adminname';
        }
        $_array_sql = explode(',', $_sql);
        $_array = array();
        foreach ($_array_sql as $val) {
            $_array[$val] = $data[$val];
        }
        //		$_array=array_combine($_array_sql,array_map('post',$_array_sql));
        if (kc_post('pass1')) {
            $_array['adminpass'] = md5(kc_post('pass1'));
        }
        if ($king->admin['adminid'] != $_adminid) {
            if (kc_post('adminlevel') == 'admin') {
                $_adminlevel = 'admin';
            } else {
                $data['level'][] = 0;
                /**
                is_array($data['level'])
                	? array_push($data['level'],0)
                	: $data['level']=array(0);
                */
                $_adminlevel = implode(',', $data['level']);
            }
            $_array['adminlevel'] = $_adminlevel;
        }
        if ($_adminid) {
            $king->db->update('%a_admin', $_array, 'adminid=' . $_adminid);
            $_nlog = 7;
            $king->cache->del('system/admin/' . $data['adminname']);
        } else {
            //			kc_error('<pre>'.print_r($_array,1));
            $king->db->insert('%a_admin', $_array);
            $_nlog = 5;
        }
        //写log
        $king->log($_nlog, 'AdminName:' . $data['adminname']);
        //更新缓存
        $king->cache->rd('system/mainmenu/' . $king->admin['adminid']);
        $king->cache->del('system/admin/' . $king->admin['adminname']);
        kc_goto($king->lang->get('system/goto/is'), 'manage.php?action=admin_edt', 'manage.php?action=admin');
    }
    $king->skin->output($king->lang->get('system/title/admin'), king_inc_admin_left(), '', $s);
}
Example #2
0
 /**
 	按钮
 */
 public function tag_menu($inner, $ass, $attrib)
 {
     global $king;
     $module = $attrib['module'];
     if (!$king->isModule($module)) {
         return;
     }
     $language = is_file(ROOT . $module . '/language/' . $king->admin['adminlanguage'] . '.xml') ? $king->admin['adminlanguage'] : LANGUAGE;
     $xml = new KC_XML_class();
     $xml->load_file($module . '/language/' . $language . '.xml');
     $array_kingcms = $xml->xml2array();
     $array_channel = $array_kingcms['CHANNEL'];
     $tmp = new KC_Template_class();
     $s = '';
     if ($array_channel) {
         foreach ($array_channel as $key => $val) {
             $arr = $xml->attrib('CHANNEL->' . $key);
             if ($king->acc($arr['access'])) {
                 $tmp->assign('name', htmlspecialchars($val));
                 $tmp->assign('href', $arr['href']);
                 $tmp->assign('target', $arr['target'] ? ' target="' . $arr['target'] . '"' : '');
                 $tmp->assign('key', $key);
                 $tmp->assign('access', $arr['access']);
                 $tmp->assign('onclick', $arr['onclick'] ? ' onclick="' . $arr['onclick'] . '"' : '');
                 $tmp->assign('rel', $arr['rel'] ? ' rel="' . $arr['rel'] . '"' : '');
                 $tmp->assign('class', $arr['class']);
                 $tmp->assign('img', $arr['img'] ? $arr['img'] : '');
                 $s .= $tmp->output($inner);
             }
         }
     }
     return $s;
 }
Example #3
0
 public function infoTag($tagname)
 {
     global $king;
     $md5path = preg_replace('/(\\w{2})(\\w+)/', "\$1/\$2", md5($tagname));
     $xmlpath = $king->config('xmlpath', 'portal') . '/portal/tag/' . $md5path . '.xml';
     $xml = new KC_XML_class();
     if (is_file(ROOT . $xmlpath)) {
         $xml->load_file($xmlpath);
         $tag = $xml->xml2array();
     } else {
         if (!($res = $king->db->getRows_one("select * from %s_tag where ktag='" . $king->db->escape($tagname) . "'"))) {
             $this->error(htmlspecialchars($tagname), $king->lang->get('portal/error/nottag'));
         }
         $tag = array();
         foreach ($res as $key => $rs) {
             $tag[$key] = htmlspecialchars($rs);
         }
         $str = $xml->array2xml($tag);
         kc_f_put_contents($xmlpath, $str);
     }
     return $tag;
 }