Anzeige: united-domains - Die ganze Welt der Domains
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