2011-12-07 5 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

그것은 잘 작동합니다! 감사. 이제 Controller를 최적화 할 수있는 방법이 있습니까? – qpixo

관련 문제