Menu megjelenitese php fajlban
Van egy weblapom amelyen talalhato egy menu. A menu XHTML kodja a kovetkezo keppen nez ki:Ez a kod 4 fajlban szerepel (index.php, portofolio.php, sitemap.php, contactus.php).
Mi tortenik ha peldaul ki akarom szedni a "sitemap.php" oldalat a menubol? A problema az, hogy mind a negy XHTML fajlot ujra kell szerkeszteni. Ez borzaszto lesz idovel ha mindig valtozik a menu.
Gondoltam, hogy meg lehet oldani a problemat PHP hasznalataval, irok egy fugvenyt amelyet beolvasok minden HTML fajlban es meghivom.
A kodom a kovetkezo lenne:Mukodik elvileg de van egy kis gond. A basename($_SERVER['REQUEST_URI']); megkapja az oldal nevet. Ha peldaul igy nyitom ki az oldalt :
http://mywebpage.com/
Az apache szerver tudja, hogy letezik egy index.php fajl a konyvtarban de a basename($_SERVER['REQUEST_URI']) fugveny ezt nem tudja.
Van valami otlet, hogy lehet megoldani ?
Koszonom !
■
<div id="menu">
<ul>
<li><a href="index.php" id="selected">Home</a></li>
<li><a href="portofolio.php">Portofolio</a></li>
<li><a href="sitemap.php">Site map</a></li>
<li><a href="contactus.php">Contact us</a></li>
</ul>
</div>
Mi tortenik ha peldaul ki akarom szedni a "sitemap.php" oldalat a menubol? A problema az, hogy mind a negy XHTML fajlot ujra kell szerkeszteni. Ez borzaszto lesz idovel ha mindig valtozik a menu.
Gondoltam, hogy meg lehet oldani a problemat PHP hasznalataval, irok egy fugvenyt amelyet beolvasok minden HTML fajlban es meghivom.
A kodom a kovetkezo lenne:
<?php
function display_menu()
{
$items = array(
'index.php' => 'Home',
'portfolio.php' => 'Portfolio',
'sitemap.php' => 'Site map',
'contect.php' => 'Contact'
);
$request = basename($_SERVER['REQUEST_URI']);
echo "<ul>\n";
foreach ($items AS $filename => $item)
{
echo "\t" . '<li><a href="'. $filename .'"'. ($request == $filename ? ' id="selected"' : null) .'>'. $item .'</a></li>'. "\n";
}
echo "</ul>\n";
}
?>
http://mywebpage.com/
Az apache szerver tudja, hogy letezik egy index.php fajl a konyvtarban de a basename($_SERVER['REQUEST_URI']) fugveny ezt nem tudja.
Van valami otlet, hogy lehet megoldani ?
Koszonom !
Request_URI
És ne fejeltsd el leválasztnai a ? mögötti részt, mert csúnyán járhatsz GET formoknál és egyebeknél.
Na és ezek után ezeket az URL mintákat venném bele a menübe...
koszonom
Oszinten erdekelnenek masoktol is velemyek es modszerek, hogyan oldjatok meg. Gondolom gyakran talalkoztok ezel a menus helyzetel.
A mod_rewrite-t sajnos nem ismerem de utana nezek!
Koszonom!
Drupal minta
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
Ezek után a PHP-ben csinálsz egy olyat, hogy:
Mulatást.
array_key_exists
Üdv,
Felhő
Pont ezért lettem letolva...
array_key_exists vs. isset
Üdv,
Felhő
include is elég!
Include