function admin_setup() { $pages = array(); $pre_page = array(); $pre_page = apply_filters('ae_admin_menu_pages', $pre_page); $root_slug = "et-mailing"; $is_root_slug_used = FALSE; //check if any page used root slug if (count($pre_page) > 0) { $root_slug = $pre_page[0]['args']['slug']; } $options = AEM_Option::get_instance(); foreach ($pre_page as $page) { //Get section of $page $sections = $page['container']->get_sections(); //Foreach all section, add section to single page foreach ($sections as $section) { $arg = $section->get_args(); $container = new AE_container(array('class' => $arg['class'], 'id' => 'settings'), $section, $options); $pages[] = array('args' => array('parent_slug' => $root_slug, 'page_title' => $arg['title'], 'menu_title' => $arg['title'], 'cap' => 'administrator', 'slug' => $is_root_slug_used ? $arg['id'] : $root_slug, 'icon' => $arg['icon'], 'desc' => ''), 'container' => $container); $is_root_slug_used = TRUE; } } /** * add menu page */ $menu_arg = array('page_title' => __('Mailing setings', AEM_DOMAIN), 'menu_title' => __('Mailing', AEM_DOMAIN), 'cap' => 'administrator', 'slug' => $root_slug, 'icon_url' => '', 'pos' => 3); $this->admin_menu = new AE_Menu($pages, $menu_arg); foreach ($pages as $key => $page) { new AE_Submenu($page, $pages); } }
public static function instance() { if (self::$_instance == NULL) { self::$_instance = new self(); } return self::$_instance; }
/** * Add admin menu in ET's themes * * @param $pages */ public function add_admin_menu_pages($pages) { $options = AEM_Option::get_instance(); $modules = AEM()->module_factory()->get_modules(); $temp = array(); $general_section = $this->get_general_section(); $temp[] = new AE_section($general_section['args'], $general_section['groups'], $options); foreach ($modules as $module) { $section = $module->get_setting_section(); $temp[] = new AE_section($section['args'], $section['groups'], $options); } $mailing_container = new AE_container(array('class' => 'mailing-settings', 'id' => 'settings'), $temp, $options); $pages[] = array('args' => array('parent_slug' => 'et-overview', 'page_title' => __('Mailing', AEM_DOMAIN), 'menu_title' => __('Mailing', AEM_DOMAIN), 'cap' => 'administrator', 'slug' => 'aem-settings', 'icon' => 'M', 'desc' => __("Third-party email service management.", AEM_DOMAIN)), 'container' => $mailing_container); return $pages; }
/** * Get option instace * * @return AEM_Option|null */ function AEM_Option() { return AEM_Option::instance(); }