动态代码头菜单对codeigniter中的所有页面通用

时间:2019-01-08 10:13:32

标签: php codeigniter codeigniter-3 codeigniter-2

我想创建一个动态菜单,该动态菜单在我网站的所有页面上都是通用的。我在php中完成了此操作,但是我必须使用codeigniter来实现相同的目的。因此,该怎么做才能在所有页面上显示所有菜单。

我已经在控制器上完成了这件事。

    if(!isset($courses['code'])){
        $data['courses'] = $courses;
    }


    $this->load->view('common/'.$page, $data);

其中$ page = header。

此功能在我的课程模式中。

公共函数fetchCourses()     {

    $this->db->select('id, course_name, image, sort_order, parent_id, date_added, status');
    $this->db->from('ls_courses');
    $query = $this->db->get();

    if(!empty($query->result_array()))
    {
        return $query->result_array();
    }
    else
    {
        return $this->db->error();
    }
}

这是我的看法UL。   

            <li class="active"><a href="<?php echo base_url(''); ?>">Home</a></li>

            <li><a href="<?php echo base_url('about'); ?>">About Us</a></li>

            <li><a href="<?php echo base_url('courses'); ?>">Courses<i class="fa fa-angle-down"></i></a>

              <ul class="dropdown_menu">

                <?php if(isset($courses) && !empty($courses)) { ?>
                <?php foreach ($courses as $key => $value) {?>

                <li><a href=""><?php echo $value['course_name']; ?></a>
                  <?php } ?>
                  <?php } ?>

       <?php if(isset($childcourses) && !empty($childcourses)) {  ?>
                 <?php foreach ($childcourses as $key => $value) { ?>
                                            <li><a href="<?php echo base_url('course/details/'.$value['seo_url']); ?>"><?php echo $value['course_name']; ?></a></li>
                            <?php } ?>
                            <?php } ?>

1 个答案:

答案 0 :(得分:1)

有太多可用于模板布局的助手...或者只是...在您所有的控制器中添加另一种方法...

function template($page_name,$data,$headrdata,$footerdata)
{
 $this->load->view('header',$headrdata);
$this->load->view($page_name,$data);
$this->load->view('footer',$footerdata);
}

并加载

之类的视图
if(!isset($courses['code'])){
    $data['courses'] = $courses;
}
$this->template('view_name',$data,$headrdata,footerdata);