close ad
 
Important WebAssist Announcement
open ad
View Menu

Technical Support Forums

Free, outstanding support from WebAssist and your colleagues

rating

Creating a class="current" for navigation on dynamic plugin pages

Thread began 3/23/2011 7:05 am by Jenny I | Last modified 3/25/2011 10:20 am by Jason Byrnes | 4065 views | 7 replies |

Jenny I

Creating a class="current" for navigation on dynamic plugin pages

Hi

I am having diffculty understanding how I would get an image/css navigation to work with dynamic plugin pages.

When using static pages it is really easy you just have to give the menu/navigation item a class style e.g. class="current". I have no idea how I would acheive this using dynamic plugin.

At present

1. I have built my dwt template and created static plugins for my header, sidebar and footer.
2. I then converted the dwt template to a Framework theme.
3. I creted a new php page called management.php and used the dwt template i created
4. I ran data-assist wizard to create my plugin page content.
5. on management.php I ran the dynamic plugin wizard and defined all my dataassist pages.

When I test everything works fine the problem is I dont know how I can make the class="current" dynamic on my main navigation.

I hope this makes sense.

Any help would be much appreciated

Sign in to reply to this post

Jason ByrnesWebAssist

on management.php, what variable are you using for the dynamic plugins?


You would use that same variable in the menu to dynamicly set the class=current on the correct menu item.


for example, if i set the dynamic plugins to use a query string variable named "action":

management.php?action=results - loads results.php
management.php?action=search - loads search.php
management.php?action=update - loads update.php
etc...

you would add an if statement to the menu code to dynamically set the class:

php:
<li><a href="management.php? action=results"<?php if(isset($_GET['action']) && $_GET['action'] == "results") echo(" class=current"); ?>>results</a></li>
<li><a href="management.php? action=search"<?php if(isset($_GET['action']) && $_GET['action'] == "search") echo(" class=current"); ?>>search</a></li>
<li><a href="management.php? action=update"<?php if(isset($_GET['action']) && $_GET['action'] == "update") echo(" class=current"); ?>>update</a></li>
Sign in to reply to this post

Jenny I

This post has been deleted.

Jenny I

Hi Jason,

Thanks so much, I think this is what I need.
The only thing is that my class style is on the <li> tag and not on the <a> tag. The second problem I am facing is that my <li> tag has 2 class styles attached to it e.g

  <li class="home current"><a href="management.php"></li>  



Would you be able to tell me how to write the if statement to dynamically set the class to the <li> tag instead. Also would you also be able to show me how the if statement would look with the variable and without the variable e.g

  <li class="home current"><a href="management.php"></li>
<li class="services"><a href="management.php?action=search"></li>  



The reason I need to know how to declare both is because framework builder already allows you to set a default plugin to load so I would not need to have the variable in the url when creating my main navigation, only when creating my sidebar navigation.

Many thanks in advance

Sign in to reply to this post

Jason ByrnesWebAssist

here you go.

php:
<li class="home<?php if(!isset($_GET['action'])) echo(" current"); ?>"><a href="management.php"></li>
<li class="services<?php if(isset($_GET['action']) && $_GET['action'] == "search") echo(" current"); ?>"><a href="management.php? action=search"></li>
Sign in to reply to this post

Jenny I

Hi Jason

I have been trying to get this to work but I am running into problems. The reason is the 'if statement' looks the same across my main navigation i.e

  <li class="home<?php if(!isset($_GET['action'])) echo(" current"); ?>"><a href="management.php"></li>

<li class="services<?php if(!isset($_GET['action'])) echo(" current"); ?>"><a href="services.php"></li>

<li class="media<?php if(!isset($_GET['action'])) echo(" current"); ?>"><a href="media.php"></li>  



Because all 3 <li> meet the 'if statement' criteria they all display the "current" class.

The only way I can think to work around this is to create variables for these main pages e.g

management.php?action=dashboard
services.php?action=services
media.php?action=media

The problem I would have with this is that these pages are the *default* pages defined in the dynamic plugin behaviour. In the dynamic plugin dialog box you are not allowed the give a page a paremeter name and set it to default at the same time. So I am not sure how I would make these pages defualt and give them a paremeter name at the same time.

The second issue that I am having is that my main navigation and sidebar links are seperate plugins so say for example if I click "services" link on my main navigation i am taken to my *default* plugin page and my "services" link gets the class of current. However if I click on one of my siderbar links for services e.g

<a href="services.php?action=SearchServices">Search Services</a>

I lose the current class on my main navigation. Is there a way to define the 'if statement' so the class current is constant on any page defined as services.php?action=...

Your help is very much appreciated

Sign in to reply to this post

Jason ByrnesWebAssist

for that you need to use the $_SERVER['PHP_SELF'] variable instead of the $_GET.

$_SERVER['PHP_SELF'] will return the name of the page script:
/services.php

or:
/management.php

php:
<li class="home<?php if(in_array("management.php"explode("/",$_SERVER['PHP_SELF']))) echo(" current"); ?>"><a href="management.php"></li>


<li class="services<?php if(in_array("services.php"explode("/",$_SERVER['PHP_SELF']))) echo(" current"); ?>"><a href="services.php"></li>
Sign in to reply to this post

Jenny I

It Worked!

Thanks ever so much Jason,

That solved both of the problems in one go.

God Bless

Sign in to reply to this post

Jason ByrnesWebAssist

you're welcome

Sign in to reply to this post

Build websites with a little help from your friends

Your friends over here at WebAssist! These Dreamweaver extensions will assist you in building unlimited, custom websites.

Build websites from already-built web applications

These out-of-the-box solutions provide you proven, tested applications that can be up and running now.  Build a store, a gallery, or a web-based email solution.

Want your website pre-built and hosted?

Close Windowclose

Rate your experience or provide feedback on this page

Account or customer service questions?
Please user our contact form.

Need technical support?
Please visit support to ask a question

Content

rating

Layout

rating

Ease of use

rating

security code refresh image

We do not respond to comments submitted from this page directly, but we do read and analyze any feedback and will use it to help make your experience better in the future.

Close Windowclose

We were unable to retrieve the attached file

Close Windowclose

Attach and remove files

add attachmentAdd attachment
Close Windowclose

Enter the URL you would like to link to in your post

Close Windowclose

This is how you use right click RTF editing

Enable right click RTF editing option allows you to add html markup into your tutorial such as images, bulleted lists, files and more...

-- click to close --

Uploading file...