사이트 탐색 막대에서 사용자가 현재보고있는 페이지를 결정하고 해당 메뉴 항목에 .active
클래스를 제공하는 논리가 있습니다.CI 활성 탐색 항목
매우 우아하지는 않지만 필자가 생각해 낸 코드는 작동합니다. 이것을 더 잘 할 수있는 방법을 생각해 볼 수 있습니까? 어떻게 논리를보기에서 컨트롤러로 옮길 수 있습니까? 어떻게 반복 할 수 있습니까?
컨트롤러 :
<?php
class Pages extends CI_Controller {
public function view ($page = 'home') {
if (!file_exists('application/views/pages/'.$page.'.php'))
show_404();
$data['active'] = $page;
$this->load->view('templates/header', $data);
$this->load->view('pages/'.$page, $data);
$this->load->view('templates/footer', $data);
}
}
?>
뷰 : 어쩌면
<ul class="nav">
<li class="<?php echo($active=='home')?'active':''; ?>"><a href="./">blog</a></li>
<li class="<?php echo($active=='about')?'active':''; ?>"><a href="about">about</a></li>
<li class="<?php echo($active=='projects')?'active':''; ?>"><a href="projects">projects</a></li>
<li class="<?php echo($active=='lab')?'active':''; ?>"><a href="lab">lab</a></li>
<li class="<?php echo($active=='contact')?'active':''; ?>"><a href="contact">contact</a></li>
</ul>
http://codereview.stackexchange.com에 있어야합니다. –
CR에 새로운 질문을 만들어야합니까? 아니면 누군가이 질문을 움직일 것입니까? –
개인적으로 당신이 가진 것은 입찰 거래가 아닙니다. PHP를 특정 변수로 바꾸는 "우아한"방법이있을 수 있습니다 ('onload' Javascript?). 또 다른 방법은 메뉴 목록을 동적으로 만들고 그 안에 값을 설정하는 것입니다. 반 다스 ... –