Search code examples
phpmysqlcodeigniterpyrocms

CodeIgniter / Pyrocms - how do I make my custom modules sub-navigation alter to suit the section?


I'm making a custom module for PyroCMS, and I want to get the section menu working with regard to applying the current class. The CMS php, which I don't want to change looks like this:

<li class="<?php if ($name === $active_section) echo 'current' ?>">

When I'm viewing /admin/courses/ this is correct, and the first navigation element has the class, current.

enter image description here

$name is taken from the language file, as set up in details.php. $active_section is taken from the view, and is equal to

$this->_ci_cached_vars['active_section']

However when I view /admin/courses/chapters/, 'courses' is still determined by the system to be the current section, so the navigation is confusing.

What I need is a way of changing the value of $active_session in the view acording to which function of the controller (index, chapters or pages) is being used.

I've tried changing the value of $this->_ci_cached_vars['active_section'] in each controller function, but that doesn't work. Any ideas?

I'm sure there's something basic I'm missing completely.


Solution

  • Got it. I'm using multiple methods in one controller, and the 'protected $section = 'courses'; line, which happens before the index method, was setting the section for everything. It couldn't be set a second time within another method, but there is a way to define a section within a method.

    $this->template->active_section = 'section'; Starting my method as follows gave me what I wanted.

    public function chapters(){
    
            //Set active section
            $this->template->active_section = 'chapters';
     ...
    
    }