Jump to content

site navigation help


ricky spires

Recommended Posts

hello. i wonder if anyone could help me to solve this puzzle.

 

im trying to create a dynamic navigation using a database but i keep getting stuck.

 

i have 2 database:

 

Navigation with :

 

id

navPos

pageID

level

parent

url

1

top

1

1

0

page1.php

2

top

2

2

1

page2.php

 

3

top

3

3

2

page3.php

4

top

4

3

3

page4.php

5

top

5

3

4

page5.php

6

top

6

3

5

page6.php

 

 

and

Pages with:

 

id

pageName

1

page1

2

page2

3

page3

4

page4

5

page5

6

page6

 

now, what i want to happen is on each page i have 3 functions. 1 calling the top nav, 1 calling the side nav and 1 calling the bottom nav.

 

for this each function should have 3 levels.

level 1 = main top level

level 2 = child to main top level

level 3 = child to level 2

 

so for example.

2 tabs each with 3 levels and 1 page on each level.

 

TOP NAV

levels -

TAB 1 -

TAB 2

LEVEL1 -

page1 -

page4

LEVEL2 -

page2 -

page5

LEVEL3 -

page3-

page6

 

 

 

now for the code. I'LL STICK TO JUST THE TOP NAV FOR NOW.

 

on the page that will display the navigation's i have:

I WOULD LIKE THEM TO DROP DOWN BUT THIS CODE WILL NOT DO THAT. just lists for now :)

 

<div id="navWrapper">
<?PHP $navPosion = "top"; ?>

    <div id="LEVEL1" class="LEVEL1">
    <ul><?PHP echo Navigation::NavL1($pageID, $navPosion); ?></ul>
    </div>
    <div id="LEVEL2" class="LEVEL2">
    <ul><?PHP echo Navigation::NavL2($pageID, $navPosion); ?></ul>
    </div>
    <div id="LEVEL3" class="LEVEL3">
    <ul><?PHP echo Navigation::NavL3($pageID, $navPosion); ?></ul>
    </div>
</div>

 

these is the functions im trying to put together.

 

in the Navigation class i have.

 

 

class Navigation extends Pages{-----lots of other code here....


public static function navL1($pageID, $navPosion){

                //FIND CURRENT PAGE ID
	 $page = new Pages(); //calling just the Pages class.
	$CP = $page->find_by_pageID($pageID);
	$CPid = $CP->id;



	//GET ALL PAGES FROM THE DB
	$allP = $page->find_all();

	foreach ($allP as $allPs){
	$allPname = $allPs->pageName;


		//GET INFO FROMTHE NAVIGATION TABLE
		$nav2 = new Navigation(); //calling the navigation extension
		$Cnav = $nav2->find_all();

		foreach ($Cnav as $Cnavs){
			$Nid = $Cnavs->id;
			$Npos = $Cnavs->navPos;
			$Npid = $Cnavs->pageID;
			$Nlevel = $Cnavs->level;
			$Npnt = $Cnavs->parent;
			$Nurl = $Cnavs->url;
			$Nord = $Cnavs->order;


		if($Nlevel  = '1'){

	                //FIND ACTIVE TAB
			if($CPid == $allPid){ $selected_tab='class="selected"'; }else{  $selected_tab=''; }

			echo '<li><a '.$selected_tab.' href="'.$allPname.'.php">'.$Nlevel.''.$allPname.'</a></li>'; 

		}//	if($Nlevel == $navLevel

 	 //} //end Navigation()

    }//end foreach ($allP as $allPs)

}	//end getNav($pageID)  

 

 

THEN THE SAME AGAIN FOR :

 

public static function navL2($pageID, $navPosion){

and

public static function navL3($pageID, $navPosion){

 

 

what this does is list all the pages

 

for example navL1 give me

    page1

    page2

    page3

    page4

    page5

    page6

 

i want it to only list where level is 1 or 2 or 3

 

in each of the functions i have this but it does not seem to work.

 

if($Nlevel = "1"){

 

i tried this but i nothing return.

 

if($Nlevel == "1"){

 

 

 

if i echo this out in navL1

echo "<br/>".$Nid = $Cnavs->id;
echo "<br/>".$Npos = $Cnavs->navPos;
echo "<br/>".$Npid = $Cnavs->pageID;
echo "<br/>".$Nlevel = $Cnavs->level;
echo "<br/>".$Npnt = $Cnavs->parent;
echo "<br/>".$Nurl = $Cnavs->url;

 

it gives me back the last page (page6) 6 time over which is not even level1. its level3

 

6

top

6

3

5

page6.php

 

so its missing the rest of the pages in the loop and just out putting the last one.

 

i realise that i need more if's in my function but maybe there is a better way ? for example i need an if($Npos == top) and in navL2 and navL3 i need to only show sub tabs under the correct parent. etc...

 

for now i just want to get what i can working ..

 

any thoughts ???? maybe i can roll all 3 functions into 1 amazing function ???? that would be nice. :)

 

thanks

ricky

Link to comment
https://forums.phpfreaks.com/topic/250389-site-navigation-help/
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.