2011-12-07 12 views
0

私は最後のオプションで問題がある、メニューオプションを構築しています。アンカーメソッドはリンクポップアップの新しいウィンドウとして機能しません。さらに、オプション1と2で、私は素晴らしい見ていないそれらのコードを繰り返します。メニューナビゲーションを最適化する方法

これらのコードを最適化する方法はありますか?それをきれいにする。私のコントローラで

:私の見解では

public function loadPage($name, $pageID) { 
    $data['title'] = $this->tabPageData; 
    $data['tabMenu'] = $this->model->getAllMenuItems(); 

    if ($name == 'portfolio-1') { 
     // load portfolio 1, get the page content (photos) and its name 
     $data['tabPageContent'] = $this->model->getPageContentByPageID($pageID); 
     $data['pageName'] = $this->model->getPageNameByID($pageID); 
    } elseif ($name == 'portfolio-2') { 
     $data['tabPageContent'] = $this->model->getPageContentByPageID($pageID); 
     $data['pageName'] = $this->model->getPageNameByID($pageID); 
    } elseif ($name == 'contact') { 
     // load Contact page 
     $data['tabContact'] = $this->model->getContactByPageID($pageID); 
    } else { 
     // load a Blog site 
     echo anchor('http://mysite.tumblr.com', 'target=_blank'); 
    } 
    $this->load->view('content', $data); 
} 

<div id="menu"> 
     <ul> 
      <?php foreach ($tabMenu as $item) : ?> 
       <?php 
        $url = "<li><a href='" . base_url(); 
        $url .= str_replace("+", "-", urlencode(strtolower($item->name))) . "/". ($item->cat_id) . "'>"; 
        $url .= strtoupper($item->name) . "</a></li>"; 
        echo $url; 
       ?> 
      <?php endforeach; ?>  
     </ul> 
    </div> <!-- end of Menu --> 
+0

http://codereview.stackexchange.com –

答えて

2

私はあなたがあなたのナビゲーションのためのリスト項目を作成するヘルパーメソッドを作成してビューをクリーンアップすることを示唆しています。

navigation_helper.phpというファイルに次のコードをapplication/helpers/と置き換えてください。

if (!defined('BASEPATH')) exit('No direct script access allowed'); 

if (!function_exists('build_list_item')) 
{ 
    function build_list_item ($item) { 
     $url_item_name = str_replace('+', '-', urlencode(strtolower($item->name))); 
     $url = base_url() . $url_item_name . "/". $item->cat_id; 
     return '<li><a href="' . $url . '">' . strtoupper($item->name) . '</a></li>'; 
    } 
} 

コントローラーにヘルパーを読み込んでいることを確認してください。頻繁に使用する場合は、オートロードしてください。

$this->load->helper('navigation_helper'); 

は、その後、あなたのビューで、あなたはこれを行うことができます:

<div id="menu"> 
    <ul> 
     <?php foreach ($tabMenu as $item): ?> 
      <?php echo build_list_item($item); ?> 
     <?php endforeach; ?>  
    </ul> 
</div> 
+0

それは素晴らしい作品!ありがとう。さて、コントローラを最適化することができますか? – qpixo

関連する問題