schug2102
schug2102

Reputation: 21

Add 'active' class to K2 Content Module Item

I have searched to the end of the internet and cannot find an answer to this and my limited php knowledge is making this seemingly easy task very difficult.

The file is modules/mod_k2_content/templates/default/default.php around LINE 22

Here is the code:

<li id="" class="<?php echo ($key%2) ? "odd" : "even";  if(count($items)==$key+1) echo ' lastItem'; ?>">

I simply need to add an 'active' to the class area IF the li is the page I am currently viewing in order to highlight it with CSS.

Upvotes: 1

Views: 927

Answers (3)

schug2102
schug2102

Reputation: 21

Here is the correct code:

<?php $id = JRequest::getVar('id'); ?>
<li class="<?php echo ($key%2) ? "odd" : "even"; if(count($items)==$key+1) echo ' lastItem'; echo ($id == $item->id)?" active":""; ?>">

Upvotes: 1

Irfan
Irfan

Reputation: 7059

David's answer is correct you need to check for option,view and id and than add the class to li here is rest of the code -

<?php
    $jinput = JFactory::getApplication()->input;
    $option = $jinput->get('option');
    $view = $jinput->get('view');
    $id = $jinput->getInt('id'); ?>
    <?php foreach ($items as $key=>$item):  
        $liclass = '';
        if(($option=='com_k2') && ($view=='item') && ($id==$item->id)){
            $liclass = 'active ';
        });
        ?>
        <li class="<?php echo $liclass?><?php echo ($key%2) ? "odd" : "even"; if(count($items)==$key+1) echo ' lastItem'; ?>">

Hope this will help.

Upvotes: 1

David Fritsch
David Fritsch

Reputation: 3731

You should be able to check the standard joomla routing variables to do some checks. I don't use K2 much, so you may have to play with the values to get this working in your case:

$jinput = JFactory::getApplication()->input;

$option = $jinput->get('option');
$view = $jinput->get('view');
$id = $jinput->get('id');

I would then compare those values to the items in the link that are likely in the code directly after the code that you have included. If all three match, you are on that page!

Upvotes: 1

Related Questions