-1

ビューにメニューがあります:

<ul>

    <li>
         <a href="<?php echo base_url(); ?>news" <?php if($nav_item == 'news'): ?>class="active-nav-item"<?php endif; ?>>News about Cars</a>
    </li>

    <li>
     <a href="<?php echo base_url(); ?>products" <?php if($nav_item == 'products'): ?>class="active-nav-item"<?php endif; ?>>Latest Products</a>
    </li>

    <li>
     <a href="<?php echo base_url(); ?>media" <?php if($nav_item == 'media'): ?>class="active-nav-item"<?php endif; ?>>Audio/Video</a>
    </li>

</ul>

そして、このビューにコントローラーから変数 $nav_item を送信しています。

class News extends CI_Controller {

    public function index()
    {
        $data['nav_item'] = 'news'; // variable for navigation 
        $data['main_content'] = 'pages/news';
        $this->load->view('template', $data);
    }
}

したがって、正常に動作していますが、リンク内のコードは非常に長いです。

<a href="<?php echo base_url(); ?>news" <?php if($nav_item == 'news'): ?>class="active-nav-item"<?php endif; ?>>News about Cars</a>

これから、2 つのパラメーターのみを送信し、他のことを自動的に行う関数を作成したいと思います。たとえば、次のようになります。

<a href="<?php echo base_url(); ?>news" <?php activeitem($navitem,'news'); ?>>News about Cars</a>

だから、if $navitem == 'news'響く"class='active-nav-item'"

myown_helper.php などの helpers フォルダーに入れることができるように、この関数を実行する方法。

前もって感謝します。

4

1 に答える 1

2

ヘルパーの機能は次のとおりです。

function activeitem($active_variable = '', $active_nav = '')
{
    return $active_variable == $active_nav ? 'class="active-nav-item"' : '';
}

次に、リンクで次のようにします。

<?=activeitem($nav_item, 'news')?>
于 2012-06-14T20:50:03.503 に答える