Navigation

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
Andavos
Mitglied
Beiträge: 145
Registriert: 13.07.2006 11:50
Wohnort: Winterthur

Navigation

Beitrag 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?
Benutzeravatar
Banger
Ehemaliges Teammitglied
Beiträge: 375
Registriert: 03.05.2005 21:53
Wohnort: Düsseldorf
Kontaktdaten:

Beitrag 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');
?>
Zuletzt geändert von Banger am 24.07.2006 13:24, insgesamt 1-mal geändert.
Benutzeravatar
killerbees19
Mitglied
Beiträge: 1185
Registriert: 09.05.2006 17:33
Wohnort: Wien (Österreich)
Kontaktdaten:

Beitrag 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
» Real programmers don't comment. If it was hard to write, it should be hard to understand!
Benutzeravatar
Banger
Ehemaliges Teammitglied
Beiträge: 375
Registriert: 03.05.2005 21:53
Wohnort: Düsseldorf
Kontaktdaten:

Beitrag 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 :)
Benutzeravatar
killerbees19
Mitglied
Beiträge: 1185
Registriert: 09.05.2006 17:33
Wohnort: Wien (Österreich)
Kontaktdaten:

Beitrag 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
» Real programmers don't comment. If it was hard to write, it should be hard to understand!
Benutzeravatar
Banger
Ehemaliges Teammitglied
Beiträge: 375
Registriert: 03.05.2005 21:53
Wohnort: Düsseldorf
Kontaktdaten:

Beitrag 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 ;-)
Andavos
Mitglied
Beiträge: 145
Registriert: 13.07.2006 11:50
Wohnort: Winterthur

Beitrag 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]
Benutzeravatar
killerbees19
Mitglied
Beiträge: 1185
Registriert: 09.05.2006 17:33
Wohnort: Wien (Österreich)
Kontaktdaten:

Beitrag von killerbees19 »

Ich rege mich gar nicht auf, deine Antwort ist besser als gut :grin:

Jetzt verstehe ich es, danke.


MfG Christian
» Real programmers don't comment. If it was hard to write, it should be hard to understand!
Andavos
Mitglied
Beiträge: 145
Registriert: 13.07.2006 11:50
Wohnort: Winterthur

Beitrag von Andavos »

Kann das mir denn keiner machen?
Bitte! :cry:
Antworten

Zurück zu „Coding & Technik“