Hey allemaal,

ik was bezig met het gebruiken van de switch case structuur in mijn index.php. Nu heb ik een menu waar een menu knop van kleur moet veranderen. Wanneer bijvoorbeeld de contact pagina wordt weer gegeven moet de contact button duidelijk een andere kleur hebben zodat de gebruiker weet dat deze zich op de contact pagina bevind. Dit is met de switch case structuur in mijn ogen een probleempje.

Door deze structuur wordt alles in de index.php geladen.


				<li class="current"><a href="index.php?p=item1"><b>Item1</b></a></li>
				<li><a href="index.php?p=Item2"><b>Item2</b></a></li>
				<li><a href="index.php?p=Item3"><b>Item3</b></a></li>
				<li><a href="index.php?p=Item4"><b>Item4</b></a></li>
				<li><a href="index.php?p=Item5"><b>Item5</b></a></li>
				<li><a href="index.php?p=Item6"><b>Item6</b></a></li>


Zoals hierboven te zien zijn moet "<li class="current">" verschuiven naar de pagina die ge-include wordt. Moet ik iets toe gaan voegen bij de switch-case structuur?
Nee de home pagina is gewoon (simpele) html :) alleen een fotopagina die php is.
HTML is per definitie statisch. Dus ga je voor de file_get_contents() oplossing.
Ik ben al een eind opweg.

ik heb nu het volgende php script gemaakt:


					  <?php
						if(isset($_GET['p'])) 
						{
							$page = $sDir.$_GET['p'].[b]'.html'[/b];
								if(file_exists($page)) {
									include($page);
								} else {
									include('home.html' );
								}
						} else {
							include($sDir.'home.html');
						} 
					  ?>


op regel 4 is te zien dat ik tot nu toe alleen .html bestanden kan includen.

Toch wil ik bovenaan in mijn code een soort configuratie uitvoeren. Daar moet in een array in te voeren zijn welke extensies er mogelijk zijn. Vervolgens wordt het script uitgevoerd, komt erachter dat er geen .html is en kijkt vervolgens of er WEL .php bestaat. Wanneer dit ook niet het geval is zal er verder worden gegaan.

Mijn configuratie tot nu toe:


<?php
// Definiëren van de directory waar de pagina's zich bevinden
$sDir = 'pages/'; 
$aTypes = array (
    '.html',
    '.php',
);
?>


Waarin "$aTypes" natuurlijk de array moet worden met mogelijke extensies.

Iemand een zetje?
Dat wordt dan toch zoiets:
<?php
$found = false;
foreach($aTypes as $sType)
{
$page = $sDir.$_GET['p'].$sType;

if($file_exists($page))
{
include($page);

$found = true;
break; // Beëindig de foreach loop
}
}

if(!$found)
{
// Doe iets als pagina niet bestaat
}
?>
Het werkt echt geweldig nu! Heb de code nog wel op een paar punten aan moeten passen. Maar dat is niet erg, zo leer ik ook weer!

Thnx :)
Het zijn natuurlijk ook maar voorbeeldjes die ik geef, kleine kans dat die in 1x werken.

Maar goed, mooi dat het gelukt is ;-)

Reageren