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();
}