selfhtml.de - Alles für den Webmaster!

 

Anzeige: united-domains - Die ganze Welt der Domains

united domains - jetzt Wunsch-Domain sichern!

Einfache & schnelle Domain-Registrierung zu fairen Preisen ohne Einrichtungsgebühren. Mehr als 250 Domain-Endungen aus einer Hand inklusive E-Mail- & Web-Weiterleitung. Einzigartiges Domain-Portfolio zur bequemen & sicheren Verwaltung Ihrer Domain-Namen.

Jetzt Domain-Check bei united-domains!

Einfache Breadcrumb Navigation

Autor: Freddy
Datum: 30.07.2010 16:28:08

Hallo,

ich habe eine sehr einfache Form einer Breadcrumb Navigation geschrieben, die läuft. Jetzt könnte ich zufrieden sein, bin ich aber nicht, weil sie z.T. recht unelegant ist.

http://nopaste.php-quake.net/305846


Was mich stört ist ja augenscheinlich: die hässliche for-Schleife weiter unten im Script. Es muss doch eine elegantere Lösung geben? Vielleicht schubst mich mal jemand in die "richtige Richtung"...

BTW: Vielleicht entspricht das nicht der gängigen Vorstellung einer Breadcrumb-Navigation -- für meine Zwecke reicht sie (naja, bis auf die if-Bedingungen in der for-Schleife).


Gruß,
Freddy

Edit:
Hab noch schnell ein, zwei Kommentare hinzugefügt...

---------------------------------
Verschoben ins PHP-Forum -- kopfschüttelnd, Freddy



Re: Einfache Breadcrumb Navigation

Autor: T.Jung
Datum: 30.07.2010 17:00:10

> ich habe eine sehr einfache Form einer Breadcrumb
> Navigation geschrieben, die läuft. Jetzt könnte
> ich zufrieden sein, bin ich aber nicht, weil sie
> z.T. recht unelegant ist.
> (...)
>
> Was mich stört ist ja augenscheinlich: die
> hässliche for-Schleife weiter unten im Script. Es
> muss doch eine elegantere Lösung geben?

Ich würde das mit einer doppelten for-Schleife lösen.
Etwa so:

<li><a href="<?php echo BASE_URL?>"><?php echo TITLE?></a></li>
<?php
for ($i = 0; $i < count($parts); $i++) // bis hierhin wie bisher, aber jetzt:
{
    $sammler = array();
    for ($j = 0; $j <= $i; $j++)
    {
        $sammler[] = $parts[$j];
    }
    $action = implode('-', $sammler);
    ?>
    <li> /
   <a href="<?php echo BASE_URL?>?action=<?php echo $action; ?>">
   <?php echo ucfirst($parts[$i])?></a>
   </li>
    <?php
}
// ab hier weiter wie bisher



Zwei Hinweise dazu:
- Zusätzliche Zeilenumbrüche hab ich hauptsächlich wg. der Lesbarkeit hier im Forum eingefügt;
- Ich habe "<?=" jeweils durch "<?php echo" ersetzt, weil die short open tags auf meinen System deaktiviert sind und ich ja wenigstens mal testen wollte, ob da auch was brauchbares bei rauskommt...

Gruß,
Tobias



Re: Einfache Breadcrumb Navigation

Autor: Freddy
Datum: 30.07.2010 17:10:59

> > ich habe eine sehr einfache Form einer Breadcrumb
> > Navigation geschrieben, die läuft. Jetzt könnte
> > ich zufrieden sein, bin ich aber nicht, weil sie
> > z.T. recht unelegant ist. (...)
> >
> > Was mich stört ist ja augenscheinlich: die
> > hässliche for-Schleife weiter unten im Script. Es
> > muss doch eine elegantere Lösung geben?

> Ich würde das mit einer doppelten for-Schleife
> lösen.

Das habe ich mir auch gedacht, aber einfach vom Kopfe her nicht hinbekommen.


> Etwa so: [...]

Tobias, das ist genial -- wie immer. Vielen, vielen Dank.
Für die Nachwelt hier zusammengefasst: http://nopaste.php-quake.net/305852


Gruß,
Freddy



Re: Einfache Breadcrumb Navigation

Autor: T.Jung
Datum: 30.07.2010 17:31:59

> Das habe ich mir auch gedacht, aber einfach vom
> Kopfe her nicht hinbekommen.

Och, das kenne ich...
Ich bekomme jedes Mal einen Knoten im Hirn, wenn ich rekursive Funktionen schreiben muss. Ist ja im Prinzip auch nichts wirklich schweres, aber irgendwie hab ich da immer arge Probleme mit; weiß auch nicht, wieso...


> Tobias, das ist genial -- wie immer. Vielen,
> vielen Dank.

*rotwerd*
Bitte, gern geschehen.

Gruß,
Tobias