protected function display_menus(Template $template)
 {
     $menus = MenusCache::load()->get_menus();
     $columns_disabled = ThemesManager::get_theme(AppContext::get_current_user()->get_theme())->get_columns_disabled();
     foreach ($menus as $cached_menu) {
         $menu = $cached_menu->get_menu();
         if ($menu->check_auth() && !$columns_disabled->menus_column_is_disabled($menu->get_block())) {
             $display = false;
             $filters = $menu->get_filters();
             $nbr_filters = count($filters);
             foreach ($filters as $filter) {
                 if ($nbr_filters > 1 && $filter->get_pattern() != '/' || $filter->match() && !$display) {
                     $display = true;
                 }
             }
             if ($display) {
                 $menu_content = $cached_menu->has_cached_string() ? $cached_menu->get_cached_string() : $menu->display();
                 $block = $menu->get_block();
                 switch ($block) {
                     case Menu::BLOCK_POSITION__HEADER:
                         $template->put('C_MENUS_HEADER_CONTENT', true);
                         $template->assign_block_vars('menus_header', array('MENU' => $menu_content));
                         break;
                     case Menu::BLOCK_POSITION__SUB_HEADER:
                         $template->put('C_MENUS_SUB_HEADER_CONTENT', true);
                         $template->assign_block_vars('menus_sub_header', array('MENU' => $menu_content));
                         break;
                     case Menu::BLOCK_POSITION__LEFT:
                         $template->put('C_MENUS_LEFT_CONTENT', true);
                         $template->assign_block_vars('menus_left', array('MENU' => $menu_content));
                         break;
                     case Menu::BLOCK_POSITION__RIGHT:
                         $template->put('C_MENUS_RIGHT_CONTENT', true);
                         $template->assign_block_vars('menus_right', array('MENU' => $menu_content));
                         break;
                     case Menu::BLOCK_POSITION__TOP_CENTRAL:
                         $template->put('C_MENUS_TOPCENTRAL_CONTENT', true);
                         $template->assign_block_vars('menus_top_central', array('MENU' => $menu_content));
                         break;
                     case Menu::BLOCK_POSITION__BOTTOM_CENTRAL:
                         $template->put('C_MENUS_BOTTOM_CENTRAL_CONTENT', true);
                         $template->assign_block_vars('menus_bottom_central', array('MENU' => $menu_content));
                         break;
                     case Menu::BLOCK_POSITION__TOP_FOOTER:
                         $template->put('C_MENUS_TOP_FOOTER_CONTENT', true);
                         $template->assign_block_vars('menus_top_footer', array('MENU' => $menu_content));
                         break;
                     case Menu::BLOCK_POSITION__FOOTER:
                         $template->put('C_MENUS_FOOTER_CONTENT', true);
                         $template->assign_block_vars('menus_footer', array('MENU' => $menu_content));
                 }
             }
         }
     }
 }
Example #2
0
 /**
  * @desc Generate the cache
  */
 public static function generate_cache()
 {
     MenusCache::invalidate();
 }