コード例 #1
0
ファイル: Menu.class.php プロジェクト: mozdial/Directory
 /**
  *	Draws menus 
  *		@param $menu_position
  *		@param $draw
  */
 public static function DrawMenu($menu_position = 'left', $draw = true)
 {
     global $objSettings, $objLogin;
     $output = '';
     if ($menu_position == 'left') {
         $objLogin->DrawLoginLinks();
     }
     // Get all menus which have items (links to pages)
     $menus = self::GetMenus($menu_position);
     $menus_count = $menus[1];
     $objNews = News::Instance();
     $show_news_block = ModulesSettings::Get('news', 'show_news_block');
     $show_subscribe_block = ModulesSettings::Get('news', 'show_newsletter_subscribe_block');
     if (Modules::IsModuleInstalled('news') && ($show_news_block == 'right side' || $show_subscribe_block == 'right side')) {
         $menus_count++;
     }
     $show_inquiries_block = ModulesSettings::Get('inquiries', 'show_inquiries_block');
     if (Modules::IsModuleInstalled('inquiries') && $show_inquiries_block == 'right side') {
         $menus_count++;
     }
     if (ModulesSettings::Get('listings', 'show_categories_side_block') == $menu_position . ' side') {
         $output .= Categories::DrawSideBlock(false);
         $menus_count++;
     }
     if (ModulesSettings::Get('listings', 'show_featured_block') == $menu_position . ' side') {
         $output .= Listings::DrawFeaturedBlock(false);
         $menus_count++;
     }
     if (ModulesSettings::Get('listings', 'show_recent_block') == $menu_position . ' side') {
         $output .= Listings::DrawRecentBlock(false);
         $menus_count++;
     }
     if (ModulesSettings::Get('listings', 'show_directory_statistics') == $menu_position . ' side') {
         $menus_count++;
     }
     if ($menus_count > 0) {
         $output .= '<div id="column-' . $menu_position . '-wrapper">';
     }
     // Display all menu titles (names) according to their order
     for ($menu_ind = 0; $menu_ind < $menus[1]; $menu_ind++) {
         // Start draw new menu
         $output .= draw_block_top($menus[0][$menu_ind]['menu_name'], '', 'maximazed', false);
         $menu_links = self::GetMenuLinks($menus[0][$menu_ind]['id'], Application::Get('lang'), $menu_position);
         if ($menu_links[1] > 0) {
             $output .= '<ul>';
         }
         for ($menu_link_ind = 0; $menu_link_ind < $menu_links[1]; $menu_link_ind++) {
             $class = Application::Get('page_id') == $menu_links[0][$menu_link_ind]['id'] ? ' active' : '';
             if ($menu_links[0][$menu_link_ind]['content_type'] == 'link') {
                 $output .= '<li>' . prepare_permanent_link($menu_links[0][$menu_link_ind]['link_url'], $menu_links[0][$menu_link_ind]['menu_link'], $menu_links[0][$menu_link_ind]['link_target'], 'main_menu_link' . $class) . '</li>';
             } else {
                 // draw current menu link
                 $output .= '<li>' . prepare_link('pages', 'pid', $menu_links[0][$menu_link_ind]['id'], $menu_links[0][$menu_link_ind]['page_key'], $menu_links[0][$menu_link_ind]['menu_link'], 'main_menu_link' . $class) . '</li>';
             }
         }
         if ($menu_links[1] > 0) {
             $output .= '</ul>';
         }
         $output .= draw_block_bottom(false);
     }
     if ($menu_position == 'left') {
         if (!$objLogin->IsLoggedIn() || Application::Get('preview') == 'yes') {
             if (Modules::IsModuleInstalled('customers') && ModulesSettings::Get('customers', 'allow_login') == 'yes') {
                 if (Application::Get('customer') != 'login') {
                     $output .= Customers::DrawLoginFormBlock(false);
                 }
             }
         }
         if (Modules::IsModuleInstalled('news')) {
             if ($show_news_block == 'left side') {
                 $output .= $objNews->DrawNewsBlock(false);
             }
             if ($show_subscribe_block == 'left side') {
                 $output .= $objNews->DrawSubscribeBlock(false);
             }
         }
         if (Modules::IsModuleInstalled('inquiries')) {
             if ($show_inquiries_block == 'left side') {
                 $output .= Inquiries::DrawLastInquiriesBlock(false);
             }
         }
     }
     if ($menu_position == 'right') {
         if (Modules::IsModuleInstalled('inquiries')) {
             if ($show_inquiries_block == 'right side') {
                 $output .= Inquiries::DrawLastInquiriesBlock(false);
             }
         }
         if (Modules::IsModuleInstalled('news')) {
             if ($show_news_block == 'right side') {
                 $output .= $objNews->DrawNewsBlock(false);
             }
             if ($show_subscribe_block == 'right side') {
                 $output .= $objNews->DrawSubscribeBlock(false);
             }
         }
     }
     if (ModulesSettings::Get('listings', 'show_directory_statistics') == $menu_position . ' side') {
         $output .= Listings::DrawDirectoryStatistics(false);
     }
     if ($menu_position == 'right') {
         if (Modules::IsModuleInstalled('adsense')) {
             $output .= '<div class="adsense-vertical">' . Adsense::GetVerticalBanerCode() . '</div>';
         }
     }
     if ($menus_count > 0) {
         $output .= '</div>';
     }
     $output .= '<br />';
     if ($draw) {
         echo $output;
     } else {
         return $output;
     }
 }