Seite 1 von 1

Navigation

Verfasst: 23.07.2006 16:47
von Andavos
Wie kann ich machen, dass man am anfang wenn man die Page betritt, oben steht:

Home

Dann klickt man auf einen Link der einem zu den Partnern führt, dann sollte dort oben stehen:

Home -> Partner

Wenn man dann auf News geht, dann soll wieder stehen:

Home -> News

Das ganz soll auch weiterführbar sein, also so:

Home -> xxx -> xxx

Wie muss ich das angehen?

Verfasst: 23.07.2006 22:42
von Banger
Hi Andavos,
ich habe das Problem mit einem Array gelöst, in dem ich die Beziehungen gespeichert habe. Beispiel:

Code: Alles auswählen

<?php

function breadcrumbs($page = 'home') {
    $sitemap = array(
        'home' => array('title' => 'Home', 'link' => '/home.htm', 'parent' => FALSE),
        'partner' => array('title' => 'Partner', 'link' => '/partner.php', 'parent' => 'home'),
        'news' => array('title' => 'News', 'link' => '/news.php', 'parent' => 'home'),
        'xxx' => array('title' => 'Foo', 'link' => '/xxx/xxx.htm', 'parent' => 'home'),
        'yyy' => array('title' => 'Bar', 'link' => '/yyy/yyy.htm', 'parent' => 'xxx'),
    );

    $breadcrumbs = array();

    while(isset($sitemap[$page])) {
        $breadcrumbs[] = '<a href="'.$sitemap[$page]['link'].'">'.htmlentities($sitemap[$page]['title']).'</a>';
        $page = $sitemap[$page]['parent'];
    }

    return $breadcrumbs ? implode(' » ', array_reverse($breadcrumbs)) : '';
}

#example call
echo breadcrumbs('yyy');
?>

Verfasst: 24.07.2006 09:06
von killerbees19
Ich verwende folgende Lösung: Eine Datei xyz.php in der genau fü den jeweiligen Ordner die zweite Navigation drinnen steht, diese binde ich dann per include ein.

Noch etwas zu deiner Lösung: Wie soll das funktionieren? Das verstehe ich nicht ganz......


MfG Christian

Verfasst: 24.07.2006 13:27
von Banger
killerbees19 hat geschrieben:Noch etwas zu deiner Lösung: Wie soll das funktionieren? Das verstehe ich nicht ganz......
Och, ganz einfach: jede Seite wird mit einem eindeutigen Index versehen, das Array beinhaltet dann den entsprechenden Link, den Linktitel und das Elternelement.
Solange es ein Elternelement gibt, wird die Schleife durchlaufen und der jeweilige Link hinzugefügt - ist doch eigentlich recht simpel :)

Verfasst: 24.07.2006 14:16
von killerbees19
Ehrlich gesagt bin in Sachen PHP erst ein Anfänger.
Kannst Du das noch mal so erklären, dass ich es auch verstehe? Wie soll man das dann machen?

Danke schon mal im Voraus.


MfG Christian

Verfasst: 24.07.2006 15:13
von Banger
killerbees19 hat geschrieben:Kannst Du das noch mal so erklären, dass ich es auch verstehe?
Och komm, ich finde es viel hilfreicher, Dein analytisches Denken etwas zu schulen :)

Als Tip: ausschlaggebend ist die Zuweisung

Code: Alles auswählen

$page = $sitemap[$page]['parent'];
und die Bedingung

Code: Alles auswählen

isset($sitemap[$page])
Jetzt geh in Gedanken mal Schritt für Schritt durch, was passiert, wenn man

Code: Alles auswählen

echo breadcrumbs('yyy');
aufruft - so etwas nennt man Papiertest :)

Nur für den Fall, dass Du Dich jetzt aufregst: aus vorgekauten Lösungen lernt man nichts ;-)

Verfasst: 24.07.2006 16:33
von Andavos

Code: Alles auswählen

<?php
$nav=$_GET['nav'];
if($nav==""){
$nav="news";
switch($nav){
case 'news':
include_once("News/news.php");
break;
case 'umfrage_2.1':
include_once("http://web176phi.dynamic-kunden.ch/Projekt-Fake/Umfrage/umfrage_pfakes.php");
break;
case 'erklaerung':
include_once("Spezielles/wie_fake_ich.php");
break;
case 'partner':
include_once("Partner/partner.php");
break;
case 'newsarchiv':
include_once("News/news-archiv.php");
break;
case 'umfrage_2.2':
include_once("News/news-archiv.php");
break;
case 'umfrage_2.3':
include_once("../Umfragen/Pokemonfake 2/Fake_d_W/PokemonDW_up.php");
break;
case 'team':
include_once("teammitglieder.php");
break;
}
}
else
{
switch($nav){
case 'news':
include_once("News/news.php");
break;
case 'umfrage_2.1':
include_once("Umfrage/up.php");
break;
case 'erklaerung':
include_once("Spezielles/wie_fake_ich.php");
break;
case 'partner':
include_once("Partner/partner.php");
break;
case 'newsarchiv':
include_once("News/news-archiv.php");
break;
case 'umfrage_2.2':
include_once("Umfrage/up.php");
break;
case 'umfrage_2.3':
include_once("../Umfragen/Pokemonfake 2/Fake_d_W/PokemonDW_up.php");
break;
case 'team':
include_once("teammitglieder.php");
break;
}
}
?>
Was muss ich machen dass er auch so funktioniert, habs oben nicht ganz kapiert.
Dass da oben ist mein Code mit dem ich meine Seiten include...[/quote]

Verfasst: 24.07.2006 16:35
von killerbees19
Ich rege mich gar nicht auf, deine Antwort ist besser als gut :grin:

Jetzt verstehe ich es, danke.


MfG Christian

Verfasst: 25.07.2006 18:27
von Andavos
Kann das mir denn keiner machen?
Bitte! :cry: