/**
  *
  * @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;
 }
 private function init_key_params()
 {
     global $menu, $submenu;
     $roles = mvb_Model_API::getCurrentUser()->getRoles();
     $keys = array('post_type' => 1, 'page' => 1);
     //add core params
     if (in_array(WPACCESS_ADMIN_ROLE, $roles)) {
         //do this only for admin role
         if (is_array($menu)) {
             //main menu
             foreach ($menu as $item) {
                 $keys = array_merge($keys, $this->get_parts($item[2]));
             }
         }
         if (is_array($submenu)) {
             foreach ($submenu as $m => $s_items) {
                 if (is_array($s_items)) {
                     foreach ($s_items as $item) {
                         $keys = array_merge($keys, $this->get_parts($item[2]));
                     }
                 }
             }
         }
         mvb_Model_API::updateBlogOption(WPACCESS_PREFIX . 'key_params', $keys);
     }
 }
 protected function add_blog_admin()
 {
     $user_id = get_current_user_id();
     $blog_id = get_current_blog_id();
     $ok = add_user_to_blog($blog_id, $user_id, WPACCESS_ADMIN_ROLE);
     if ($ok) {
         mvb_Model_API::getCurrentUser()->add_role(WPACCESS_ADMIN_ROLE);
         mvb_Model_API::getCurrentUser()->add_role(WPACCESS_SADMIN_ROLE);
         $result = array('status' => 'success', 'message' => mvb_Model_Label::get('LABEL_154'));
     } else {
         $result = array('status' => 'error', 'message' => mvb_Model_Label::get('LABEL_155'));
     }
     return $result;
 }