Highlight active link

12 posts by 5 authors in: Forums > CMS Builder
Last Post: March 9, 2010   (RSS)

By benedict - August 24, 2009

Hi guys,

I have what hopefully is an problem. I wish for the active link to become highlighted when the visitor arrives at that page.

I have got this working in HTML no problem by adding a class called "active" to the <li>. You can see below:

<ul class="nav">
<li class="active"><a href="index.php" class="home">Home</a></li>
<li><a href="executive-recruitment.php?Who-Is-hunterPac-1" class="who">Who</a></li>
<li><a href="executive-recruitment.php?What-2" class="what">What</a></li>
<li><a href="executive-recruitment.php?Why-3" class="why">Why</a></li>
<li><a href="executive-recruitment.php?How-4" class="how">How</a></li>
<li><a href="contactus.php" class="contact">Contact</a></li>
</ul>


Now, who, what, why and how are all in a section called "Other Pages". How can I dynamically get the correct navigation point to highlight (i.e. have class of "active" added to the <li>) when the visitor reaches a page?

Thanks in advance.

B

Re: [benedict] Highlight active link

By Chris - August 25, 2009

Hi benedict,

If you're only worried about solving this for executive-recruitment.php, and you're going to hard-code links like that, one solution would be to test the current record's "num" field and insert some HTML if it matches on each link. For example:

<li<?php if ($record['num'] == 1) { echo ' class="active"'; } ?>><a href="executive-recruitment.php?Who-Is-hunterPac-1" class="who">Who</a></li>
<li<?php if ($record['num'] == 2) { echo ' class="active"'; } ?>><a href="executive-recruitment.php?What-2" class="what">What</a></li>
<li<?php if ($record['num'] == 3) { echo ' class="active"'; } ?>><a href="executive-recruitment.php?Why-3" class="why">Why</a></li>
<li<?php if ($record['num'] == 4) { echo ' class="active"'; } ?>><a href="executive-recruitment.php?How-4" class="how">How</a></li>


I hope this helps you out! Please let us know if you have any more questions or comments.
All the best,
Chris

Re: [chris] Highlight active link

By benedict - September 1, 2009

Hi Chris,

Thanks for taking the time out to help me. This worked a treat. Thanks!

Cheers,

Benedict

Re: [benedict] Highlight active link

By benedict - March 3, 2010

Hi guys,

As a follow up to this one, I now have a bit more of an advanced need. This time instead of looking at the record number on the end, I have this:<a href="#" class="opener">
<span> <em>Short Courses</em> </span>
</a>
</a>Now, I would like to show the active link for this, which is coded like this:<a href="#" class="opener selected">
<span> <em>Short Courses</em> </span>
</a>
</a>The key is getting that "selected" word added in there for the class.

To explain further, I am using this in the head of the document to show the short courses naviagtion (I have done the same thing to show long courses and accredited courses):
//short courses nav
list($courses_shortRecords, $courses_shortMetaData) = getRecords(array(
'tableName' => 'courses',
'where' => ' course_type LIKE "%Short Courses%" ',
)); So the bottom line is, that if the current record being shown on the detail page is a Short Course, I would like the Short Course section of the nav to be expanded (i.e. by having the word " selected" added to the opener class).

Thanks in advance.

Re: [benedict] Highlight active link

By Chris - March 3, 2010

Hi benedict,

Can you please attach the complete PHP source code for your page?
All the best,
Chris

Re: [chris] Highlight active link

By benedict - March 3, 2010

Here you go - courses.php is the file and sidenav.php is the include with the code I need to correct.

Re: [benedict] Highlight active link

By Donna - March 3, 2010

Hi Benedict -- nothing was attached to your post, can you give that another try?
Donna

--
support@interactivetools.com

Re: [Donna] Highlight active link

By benedict - March 3, 2010

Oops - here you go.
Attachments:

archive_002.zip 7K

Re: [chris] Highlight active link

By aev - March 5, 2010

Hi Chris,

Is this a shortcut for creating a foreach loop on the array, with an if statement checking for a match inside? If yes, it's great!

<a href="#" class="opener<?php if (in_array($record['num'], array_pluck($courses_nationalRecords, 'num'))) { echo " selected" } ?>">

-aev-