/** * * @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; }
/** * 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; }