コード例 #1
0
 /**
  *
  * @global type $submenu
  * @param type $template
  * @return type 
  */
 public function renderMainMenuOptions($template)
 {
     global $submenu;
     $s_menu = $this->getRoleMenu();
     /*
      * First Tab - Main Menu
      */
     $listTemplate = $this->templObj->retrieveSub('MAIN_MENU_LIST', $template);
     $itemTemplate = $this->templObj->retrieveSub('MAIN_MENU_ITEM', $listTemplate);
     $sublistTemplate = $this->templObj->retrieveSub('MAIN_MENU_SUBLIST', $itemTemplate);
     $subitemTemplate = $this->templObj->retrieveSub('MAIN_MENU_SUBITEM', $sublistTemplate);
     $list = '';
     if (is_array($s_menu)) {
         foreach ($s_menu as $menuItem) {
             if (!$menuItem[0]) {
                 //seperator
                 continue;
             }
             //render submenu
             $subList = '';
             if (isset($submenu[$menuItem[2]]) && is_array($submenu[$menuItem[2]])) {
                 foreach ($submenu[$menuItem[2]] as $submenuItem) {
                     $checked = $this->checkChecked('submenu', array($menuItem[2], $submenuItem[2]));
                     $markers = array('###submenu_name###' => $this->removeHTML($submenuItem[0]), '###value###' => $submenuItem[2], '###checked###' => $checked);
                     $subList .= $this->templObj->updateMarkers($markers, $subitemTemplate);
                 }
                 $subList = $this->templObj->replaceSub('MAIN_MENU_SUBITEM', $subList, $sublistTemplate);
             }
             $tTempl = $this->templObj->replaceSub('MAIN_MENU_SUBLIST', $subList, $itemTemplate);
             $markers = array('###name###' => $this->removeHTML($menuItem[0]), '###id###' => $menuItem[5], '###menu###' => $menuItem[2], '###whole_checked###' => $this->checkChecked('menu', array($menuItem[2])));
             $list .= $this->templObj->updateMarkers($markers, $tTempl);
         }
     }
     $listTemplate = $this->templObj->replaceSub('MAIN_MENU_ITEM', $list, $listTemplate);
     $template = $this->templObj->replaceSub('MAIN_MENU_LIST', $listTemplate, $template);
     /*
      * Second Tab - Metaboxes
      */
     $listTemplate = $this->renderMetaboxList($template);
     $template = $this->templObj->replaceSub('METABOX_LIST', $listTemplate, $template);
     /*
      * Third Tab - Advance Settings
      */
     $capList = mvb_Model_API::getCurrentUser()->getAllCaps();
     //TODO ?
     ksort($capList);
     $listTemplate = $this->templObj->retrieveSub('CAPABILITY_LIST', $template);
     $itemTemplate = $this->templObj->retrieveSub('CAPABILITY_ITEM', $listTemplate);
     $list = '';
     if (is_array($capList) && count($capList)) {
         foreach ($capList as $cap => $dump) {
             $desc = str_replace("\n", '<br/>', mvb_Model_Label::get($cap));
             $markers = array('###title###' => $cap, '###description###' => $desc, '###checked###' => $this->checkChecked('capability', array($cap)), '###cap_name###' => mvb_Model_Helper::getCapabilityHumanTitle($cap));
             $titem = $this->templObj->updateMarkers($markers, $itemTemplate);
             if (!in_array($cap, $this->custom_caps)) {
                 $titem = $this->templObj->replaceSub('CAPABILITY_DELETE', '', $titem);
             } else {
                 $titem = $this->templObj->replaceSub('CAPABILITY_DELETE', $this->templObj->retrieveSub('CAPABILITY_DELETE', $titem), $titem);
             }
             $list .= $titem;
         }
         $template = $this->templObj->replaceSub('CAPABILITY_LIST_EMPTY', '', $template);
     } else {
         $empty = $this->templObj->retrieveSub('CAPABILITY_LIST_EMPTY', $template);
         $template = $this->templObj->replaceSub('CAPABILITY_LIST_EMPTY', $empty, $template);
     }
     $listTemplate = $this->templObj->replaceSub('CAPABILITY_ITEM', $list, $listTemplate);
     $template = $this->templObj->replaceSub('CAPABILITY_LIST', $listTemplate, $template);
     //Posts & Pages
     $template = $this->templObj->replaceSub('POST_INFORMATION', '', $template);
     $template = $this->templObj->updateMarkers(array('###access_config###' => stripslashes(mvb_Model_API::getBlogOption(WPACCESS_PREFIX . 'access_config', ''))), $template);
     return $template;
 }
コード例 #2
0
 /**
  * Add New Capability
  * 
  * @global type $wpdb
  * @return type 
  */
 protected function add_capability()
 {
     global $wpdb;
     $cap = strtolower(trim($_POST['cap']));
     if ($cap) {
         $cap = sanitize_title_with_dashes($cap);
         $cap = str_replace('-', '_', $cap);
         $capList = mvb_Model_API::getCurrentUser()->getAllCaps();
         if (!isset($capList[$cap])) {
             //create new capability
             $roles = mvb_Model_API::getRoleList(FALSE);
             if (isset($roles[WPACCESS_SADMIN_ROLE])) {
                 $roles[WPACCESS_SADMIN_ROLE]['capabilities'][$cap] = 1;
             }
             $roles[WPACCESS_ADMIN_ROLE]['capabilities'][$cap] = 1;
             //add this role for admin automatically
             mvb_Model_API::updateBlogOption('user_roles', $roles);
             //check if this is for specific user
             //TODO
             $user = mvb_Model_Helper::getParam('user', 'POST');
             if ($user) {
                 $conf = mvb_Model_API::getUserAccessConfig($user);
                 $conf->addCapability($cap);
                 $conf->saveConfig();
             }
             //save this capability as custom created
             $custom_caps = mvb_Model_API::getBlogOption(WPACCESS_PREFIX . 'custom_caps');
             if (!is_array($custom_caps)) {
                 $custom_caps = array();
             }
             $custom_caps[] = $cap;
             mvb_Model_API::updateBlogOption(WPACCESS_PREFIX . 'custom_caps', $custom_caps);
             //render html
             $tmpl = new mvb_Model_Template();
             $templatePath = WPACCESS_TEMPLATE_DIR . 'admin_options.html';
             $template = $tmpl->readTemplate($templatePath);
             $listTemplate = $tmpl->retrieveSub('CAPABILITY_LIST', $template);
             $itemTemplate = $tmpl->retrieveSub('CAPABILITY_ITEM', $listTemplate);
             $markers = array('###role###' => $_POST['role'], '###title###' => $cap, '###description###' => '', '###checked###' => 'checked', '###cap_name###' => mvb_Model_Helper::getCapabilityHumanTitle($cap));
             $titem = $tmpl->updateMarkers($markers, $itemTemplate);
             $titem = $tmpl->replaceSub('CAPABILITY_DELETE', $tmpl->retrieveSub('CAPABILITY_DELETE', $titem), $titem);
             $result = array('status' => 'success', 'html' => $tmpl->clearTemplate($titem));
         } else {
             $result = array('status' => 'error', 'message' => 'Capability ' . $_POST['cap'] . ' already exists');
         }
         mvb_Model_Cache::clearCache();
     } else {
         $result = array('status' => 'error', 'message' => mvb_Model_Label::get('LABEL_124'));
     }
     return $result;
 }