<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>KS Webdesign - Der Blog &#187; PHP</title>
	<atom:link href="http://webdesign-passau.com/wordpress/kategorie/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://webdesign-passau.com/wordpress</link>
	<description></description>
	<lastBuildDate>Wed, 18 Apr 2012 07:28:02 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Navi includen &#8211; ohne Deppenlink</title>
		<link>http://webdesign-passau.com/wordpress/navi-includen-ohne-deppenlink/</link>
		<comments>http://webdesign-passau.com/wordpress/navi-includen-ohne-deppenlink/#comments</comments>
		<pubDate>Wed, 23 Dec 2009 14:33:11 +0000</pubDate>
		<dc:creator>Klaus</dc:creator>
				<category><![CDATA[Navigationen]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[XHTML/CSS]]></category>
		<category><![CDATA[Deppenlink]]></category>
		<category><![CDATA[include]]></category>
		<category><![CDATA[includen]]></category>
		<category><![CDATA[navi]]></category>
		<category><![CDATA[navigation]]></category>

		<guid isPermaLink="false">http://webdesign-passau.com/wordpress/?p=464</guid>
		<description><![CDATA[Wer kennt das nicht: Die Navigation einer bestehenden Site ändert sich und nun muss die Änderung bei wirklich jeder Seite eingetragen werden. Nervig und zeitaufwändig! Eine Menge Zeit spart man sich wenn man die navi per include einbindet. Diese Methode &#8230; <a href="http://webdesign-passau.com/wordpress/navi-includen-ohne-deppenlink/">Weiterlesen <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Wer kennt das nicht: Die Navigation einer bestehenden Site ändert sich und nun muss die Änderung bei wirklich jeder Seite eingetragen werden. Nervig und zeitaufwändig!</p>
<p>Eine Menge Zeit spart man sich wenn man die navi per <em>include</em> einbindet. Diese Methode ist relativ simpel und effektiv. Man führt die Änderung an einer Datei durch und fertig.</p>
<p>Man hat zwar noch den Deppenlink (Link der auf sich selber zeigt), aber was soll&#8217;s.</p>
<p>In diesem, auch für <em>PHP-Vollpfosten</em> geeigneten Tutorial beschreibe ich euch, wie ihr die navi includet und trotzdem den Deppenlink vermeidet.<span id="more-464"></span></p>
<p class="abstandunten0 abstandoben2">So sieht euer Menü normalerweise aus:</p>
<div class="beitragscode">
<ul>
<li><code>&lt;div id=&quot;navi&quot;&gt;</code></li>
<li><code>&lt;ul&gt;</code></li>
<li><code>&lt;li&gt;&lt;strong&gt;Startseite&lt;/strong&gt;&lt;/li&gt;</code></li>
<li><code>&lt;li&gt;&lt;a href=&quot;leistungen.htm&quot;&gt;Leistungen&lt;/a&gt;&lt;/li&gt;</code></li>
<li><code>&lt;li&gt;&lt;a href=&quot;team.htm&quot;&gt;Team&lt;/a&gt;&lt;/li&gt;</code></li>
<li><code>&lt;/ul&gt;</code></li>
<li><code>&lt;/div&gt;</code></li>
</ul>
</div>
<p>Wie es sich gehört ist das Menü eine ungeordnete Liste. Bei der aktuellen Seite wurde <code>a</code> gegen <code>strong</code> ausgetauscht, um den Deppenlink zu vermeiden.</p>
<p>Um die navi zu includen, benenne ich die beteiligten Dateien von <code>.htm</code> in <code>.php</code> um. Aus der <code>index.htm</code> wird also <code>index.php</code>, usw.</p>
<p class="abstandunten0 abstandoben2">Wo die ungeordnete Liste mit dem Menü stand trage ich folgendes ein:</p>
<div class="beitragscode">
<ul>
<li><code>&lt;div id=&quot;navi&quot;&gt;</code></li>
<li><code>&lt;?php include (&quot;navi.php&quot;) ?&gt;</code></li>
<li><code>&lt;/div&gt;</code></li>
</ul>
</div>
<p class="abstandunten0 abstandoben2">Den Inhalt der <code>navi.php</code>, die anstelle von dem, was da vorher stand eingebunden wird werfe ich euch mal direkt vor die Füße:</p>
<div class="beitragscode">
<ul>
<li><code>&lt;?php</code></li>
<li class="codeeinrueckung"><code>$uri = $_SERVER['REQUEST_URI'];</code></li>
<li class="codeeinrueckung"><code>$navi = array(</code></li>
<li class="codeeinrueckung"><code>'/'        =&gt; 'Startseite',</code></li>
<li class="codeeinrueckung"><code>'/leistungen'    =&gt; 'Leistungen',</code></li>
<li class="codeeinrueckung"><code>'/team' =&gt; 'Team',</code></li>
<li class="codeeinrueckung"><code>);</code></li>
<li class="codeeinrueckung"><code>echo '&lt;ul&gt;'.&quot;\n&quot;;</code></li>
<li class="codeeinrueckung"><code>foreach ($navi as $href =&gt; $text)</code></li>
<li class="codeeinrueckung"><code>{</code></li>
<li class="codeeinrueckung"><code>echo '&lt;li&gt;';</code></li>
<li class="codeeinrueckung"><code>if ($uri == $href)</code></li>
<li class="codeeinrueckung"><code>{</code></li>
<li class="codeeinrueckung"><code>echo '&lt;strong&gt;'.$text.'&lt;/strong&gt;';</code></li>
<li class="codeeinrueckung"><code>}</code></li>
<li class="codeeinrueckung"><code>else</code></li>
<li class="codeeinrueckung"><code>{</code></li>
<li class="codeeinrueckung"><code>echo '&lt;a href=&quot;'.$href.'&quot;&gt;'.$text.'&lt;/a&gt;';</code></li>
<li class="codeeinrueckung"><code>}</code></li>
<li class="codeeinrueckung"><code>echo '&lt;/li&gt;'.&quot;\n&quot;;</code></li>
<li class="codeeinrueckung"><code>}</code></li>
<li class="codeeinrueckung"><code>echo '&lt;/ul&gt;'.&quot;\n\n&quot;;</code></li>
<li><code>?&gt;</code></li>
</ul>
</div>
<p>Um zu verstehen was wo eingetragen wird, lohnt es sich einmal etwas genauer hinzuschauen.</p>
<p>Zuerst wird in einem <code>array</code> die Adresse <em>root-relativ</em> eingetragen, d.h. es wird vom Wurzelverzeichnis des Webservers ausgegangen, was ja i.d.R. immer <code><strong>/</strong></code> ist.</p>
<p>Rechts daneben steht in Hochkommata der Text des Menüpunktes.</p>
<p>Wenn die angewählte URL gleich der URL des Menüpunktes ist wird <code>a</code> gegen <code>strong</code> ausgetauscht, ansonsten über die <code>else</code> der Link <em>hingeechot</em>.</p>
<p class="abstandunten0">Das <code>array</code> kann beliebig erweitert werden, je nachdem wieviel Menüpunkte die Navigation hat.</p>
<p>Wenn ihr mehrere Menüs auf eurer Seite habt, braucht ihr z.B. eine <code>topnavi.php</code>, eine <code>seitennavi.php</code> und/oder eine <code>fuss-navi.php</code>. Der Inhalt ist bis auf die Punkte des <code>arrays</code> gleich, ihr müßt nur die <em>richtige PHP-Datei</em> an der richtigen Stelle <em>includen</em>.</p>
<p>Das ist die einfachste Art eines Menüs, welches includet wird. Da ich euch noch mehrere Varianten zur Verfügung stellen will, habe ich alles zum Download in den Ordner <a href="http://webdesign-passau.com/wordpress/wp-content/uploads/2009/12/include.zip">include.zip</a> gepackt.</p>
<p class="abstandunten0">Die enthaltene <code>navi-normal.php</code> ist die hier vorgestellte Variante.</p>
<p class="abstandunten0">Bei der <code>navi-title.php</code> gibt es zusätzlich den <em>title</em>-Tag für <code>a</code></p>
<p>Bei der <code>navi-klasse.php</code> hat <code>a</code> noch eine zusätzliche Klasse und die <code>navi-id.php</code> hält für jeden Listenpunkt eine <code>id</code> bereit.</p>
<p>Funktioniert problemlos mit statischen Seiten. Ob das mit einem CMS so ohne weiteres geht glaube ich eher nicht.</p>
<p class="abstandoben">Wenn ihr das Gleiche für eine WordPressinstallation wollt, kann ich euch den schönen <a href="http://toscho.de/2009/deppenlink-entfernen/" title="Externer Link">Artikel von Thomas</a> dazu ans Herz legen.</p>
<p class="abstandoben">Von <a href="http://xhtmlforum.de/members/7772_gumbo.html" title="Externer Link">Markus</a> stammt die Ursprungsversion des Scriptes. <a href="http://xhtmlforum.de/members/9476_heiko_rs.html" title="Externer Link">Heiko</a> hat es verfeinert und <a href="http://dnaber.de/" title="Externer Link">David</a> hat mir beim Verstehen des Scriptes geholfen.</p>
<p class="abstandunten0"><strong>Vielen Dank dafür euch dreien!</strong></p>
<p>Ihr habt mir abgesehen von diesem Script schön öfter geholfen. Auch dafür nochmal an dieser Stelle meinen besonderen Dank! Ich habe viel von euch gelernt.</p>
]]></content:encoded>
			<wfw:commentRss>http://webdesign-passau.com/wordpress/navi-includen-ohne-deppenlink/feed/</wfw:commentRss>
		<slash:comments>24</slash:comments>
		</item>
	</channel>
</rss>

