示例#1
0
文件: role.php 项目: TonyWoo/cmlerp
 function goDispModify()
 {
     $m = new Menu(&$this->dbObj);
     $p = new Power(&$this->dbObj, $this->getUid());
     $d = new DispAttachRule(&$this->dbObj, $this->getUid());
     $t = new Template('../template/system');
     $t->set_file('f', 'roledetail.html');
     //设置全局权限块
     $t->set_block('f', 'ttr', 'tr');
     $t->set_block('ttr', 'ttd', 'td');
     //设置菜单权限块
     $t->set_block('f', 'ruleList', 'u');
     $t->set_block('ruleList', 'attachList', 'a');
     //设置组块
     $t->set_block('f', 'gtr', 'gr');
     $t->set_block('gtr', 'gtd', 'gd');
     //默认值
     $rudf = $gdf = array();
     if ($this->isAppend) {
         $t->set_var('actionName', '增加');
         $rudf = array('base' => array(), 'attach' => array());
     } else {
         $updid = $_GET[MODIFY . 'id'] + 0;
         $rudf = $p->getRoleRule($updid);
         $t->set_var('actionName', '修改');
         $t->set_var($this->dbObj->GetRow('select * from ' . WEB_ADMIN_TABPOX . 'role where roleid = ' . $updid));
         $gdfr = $this->dbObj->GetArray('select groupid from ' . WEB_ADMIN_TABPOX . 'grouprole where roleid = ' . $updid);
         foreach ($gdfr as $v) {
             $gdf[] = $v['groupid'];
         }
     }
     $t->set_var($_GET);
     //设置全局菜单
     $grus = $this->dbObj->Execute('select * from ' . WEB_ADMIN_TABPOX . 'otherrule where isrule=1 and (ruleid=0 or ruleid is null)');
     $n = 1;
     $l = $grus->NumRows() + 1;
     while ($rs =& $grus->FetchRow()) {
         $gr_df = isset($rudf['attach'][0][$rs['configvarname']]) ? $rudf['attach'][0][$rs['configvarname']] : null;
         $t->set_var($d->disp($rs, $gr_df, "</td><td width='25%'>", 4, "</td></tr><tr><td width='25%'>"));
         $t->parse('td', 'ttd', true);
         if ($n++ % 2 > 0) {
             if ($n == $l) {
                 if (($l - 1) % 2 == 1) {
                     $t->set_var(array('name' => '', 'value' => ''));
                     $t->parse('td', 'ttd', true);
                 }
                 $t->parse('tr', 'ttr', true);
             }
         } else {
             $t->parse('tr', 'ttr', true);
             $t->set_var('td');
         }
     }
     //设置菜单权限
     $rus = $m->getMenuTreeArr(0);
     foreach ($rus as $v) {
         if ($v['ruleurl']) {
             $t->set_var('display', '');
         } else {
             $t->set_var('display', 'none');
         }
         if (array_key_exists($v['ruleid'], $rudf['base'])) {
             $t->set_var('rschecked', $rudf['base'][$v['ruleid']][0] ? ' checked' : '');
             $t->set_var('rbchecked', $rudf['base'][$v['ruleid']][1] ? ' checked' : '');
             $t->set_var('rachecked', $rudf['base'][$v['ruleid']][2] ? ' checked' : '');
             $t->set_var('rmchecked', $rudf['base'][$v['ruleid']][3] ? ' checked' : '');
             $t->set_var('rdchecked', $rudf['base'][$v['ruleid']][4] ? ' checked' : '');
             $t->set_var('richecked', $rudf['base'][$v['ruleid']][5] ? ' checked' : '');
             $t->set_var('rechecked', $rudf['base'][$v['ruleid']][6] ? ' checked' : '');
             $t->set_var('rrchecked', $rudf['base'][$v['ruleid']][7] ? ' checked' : '');
             $t->set_var('rhchecked', $rudf['base'][$v['ruleid']][8] ? ' checked' : '');
         } else {
             $t->set_var('rschecked', '');
             $t->set_var('rbchecked', '');
             $t->set_var('rachecked', '');
             $t->set_var('rmchecked', '');
             $t->set_var('rdchecked', '');
             $t->set_var('richecked', '');
             $t->set_var('rechecked', '');
             $t->set_var('rrchecked', '');
             $t->set_var('rhchecked', '');
         }
         $t->set_var($v);
         $t->set_var('a');
         //设置菜单的附加值
         $ar = $this->dbObj->Execute('select * from ' . WEB_ADMIN_TABPOX . 'otherrule where isrule=1 and ruleid=' . $v['ruleid']);
         while ($arr =& $ar->FetchRow()) {
             $ar_df = isset($rudf['attach'][$v['ruleid']][$arr['configvarname']]) ? $rudf['attach'][$v['ruleid']][$arr['configvarname']] : null;
             $t->set_var($d->disp($arr, $ar_df, "</td><td width='50%'>", 2, "</td></tr><tr><td width='50%'>"));
             $t->parse('a', 'attachList', true);
         }
         $t->parse('u', 'ruleList', true);
     }
     //设置组列表
     $gs = $this->dbObj->GetArray('select * from ' . WEB_ADMIN_TABPOX . 'group');
     $j = count($gs) + 1;
     $i = 1;
     foreach ($gs as $v) {
         $t->set_var($v);
         if (in_array($v['groupid'], $gdf)) {
             $t->set_var('gchecked', ' checked');
         } else {
             $t->set_var('gchecked', '');
         }
         $t->parse('gd', 'gtd', true);
         if ($i++ % 6 > 0) {
             if ($i == $j) {
                 $t->parse('gr', 'gtr', true);
             }
         } else {
             $t->parse('gr', 'gtr', true);
             $t->set_var('gd');
         }
     }
     $t->set_var('path', WEB_ADMIN_HTTPPATH . '/common/');
     $t->parse('out', 'f');
     $t->p('out');
 }