如何从这一行代码为我的助手创建一个函数?

时间:2012-06-14 20:32:03

标签: codeigniter

我的观点中有一个菜单:

<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>

我想从这里创建一个函数,我只发送两个参数,它会自动执行其他操作。例如。它看起来像这样:

<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。

提前致谢。

1 个答案:

答案 0 :(得分:2)

助手的功能可以是:

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

然后在链接上做:

<?=activeitem($nav_item, 'news')?>