Zeichen zwischen den Links (Link | Link | Link | Link)

Gesperrt
yodatortenboxer
Beiträge: 424
Registriert: Do 22. Jan 2004, 14:45
Wohnort: Kölpinsee auf Usedom
Kontaktdaten:

Zeichen zwischen den Links (Link | Link | Link | Link)

Beitrag von yodatortenboxer »

Hallo,

Ich bin von jemand gefragt worden wie man zwischen den Links Trennzeichen wie :: oder | machen kann. Falls es jemand Interessiert, ich hab dazu folgende Methode benutzt...

Ich gehe einmal davon aus das man das Hauptnavigation-Modul benutzt.
In der Ausgabe des Modules steht ungefähr in Zeile 268:

Code: Alles auswählen

foreach ($navitems as $key => $data) {

    /* 1. Navigations Ebene */
    $tpl->reset();
    $tpl->set('d', 'NAME',  $data['name']);
    $tpl->set('d', 'TARGET', $data['target']);
    $tpl->set('d', 'HREF',  $sess->url('front_content.php?idcat='.$data['idcat']));
    $tpl->next();

    if ($idcat == $data['idcat'] || is_array($data['sub'])) {
        $tpl->generate('templates/navfirst_on.html');
    } else {
        $tpl->generate('templates/navfirst_off.html');
    }
Hier werden sozusagen die Tempaltes eingeladen

Vor die foreach schleife definiert man eine neue Variable, Beispiel $zeichen und weist der den Wert 0 zu. Danach ändert man die abfrage wie folgt:

Code: Alles auswählen


$zeichen =0;

foreach ($navitems as $key => $data) {

    /* 1. Navigations Ebene */
    $tpl->reset();
    $tpl->set('d', 'NAME',  $data['name']);
    $tpl->set('d', 'TARGET', $data['target']);
    $tpl->set('d', 'HREF',  $sess->url('front_content.php?idcat='.$data['idcat']));
    $tpl->next();

    if ($idcat == $data['idcat'] || is_array($data['sub'])) {
       if ($zeichen == 0) {
            $tpl->generate('templates/navfirst_on.html');
       }
       else
       {
            $tpl->generate('templates/navfirst_on_z.html'); //kopie des orginal Templates mit Trennzeichen
       }
    } else {
       if ($zeichen == 0) {
           $tpl->generate('templates/navfirst_off.html');
       }
       else
       {
           $tpl->generate('templates/navfirst_off_z.html'); //kopie des orginal Templates mit Trennzeichen

       }
    }
$zeichen++;
Dann kopiert man die Datei navfirst_on.html und benennst die Kopie in navfirst_on_z.html um. Das gleiche macht man mit der navfirst_off.html. Beide sind im Ordner Templates. Dann öffnet man die dateien navfirst_on_z.html und navfirst_off_z.html und fügt innerhalb des <td>, aber noch vor dem Link dein Zeichen ein.
Der Ablauf ist dann folgender:
Beim ersten durchlauf der schleife wird die Variable $zeichen mit 0 definiert. Dann kommt die Abfrage ob die Variable $zeichen gleich 0 ist und wenn ja nimmt er das Template wo nur der Link darin ist. Dannach wird die Variable $zeichen durch $zeichen++ um eins erhöht und er startet seine schleife neu. Dadurch weil nun die Variable $zeichen nicht null ist nimmt er das andere Template wo sozusagen das Trennzeichen drin ist. Danach wird die Variable $zeichen wieder erhöht, ist also 2 und es geht zurück zur schleife und daduch weil es wieder nicht 0 ist nimmt er wieder das template mit dem trennzeichen.
Also das erste währe dann: Link
das zweite und jedes weitere dann: | Link
und zusammen ergibt es dann: Link | link | link | link | link | link | link
mit soviel Links wie man hat.
Das Beispiel ist momentan nur für die erste ebende der Navigation, kann aber auf die selbe weise für die anderen umgestrickt werden.

Ich hoffe das ich dir damit weiterhelfen konnte...

Gruß
Yodatortenboxer
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

ich hab da noch was... wer das trennzeichen in einer eigenen html datei verwalten will kann folgendes verwenden...

Code: Alles auswählen

$zeichen =0; 

foreach ($navitems as $key => $data) { 

    if ($zeichen != 0) { // Trennzeichen 
        $tpl->reset();
        $tpl->generate('templates/trennzeichen.html'); // Trennzeichen 
    }

    /* 1. Navigations Ebene */ 
    $tpl->reset(); 
    $tpl->set('d', 'NAME',  $data['name']); 
    $tpl->set('d', 'TARGET', $data['target']); 
    $tpl->set('d', 'HREF',  $sess->url('front_content.php?idcat='.$data['idcat'])); 
    $tpl->next(); 

    if ($idcat == $data['idcat'] || is_array($data['sub'])) { 
       $tpl->generate('templates/navfirst_on.html'); 

    } else { 
       $tpl->generate('templates/navfirst_off.html'); 
    } 
$zeichen++;
eine kopie von navfirst_on.html etc. ist dann nicht mehr notwendig....
*** make your own tools (wishlist :: thx)
Gesperrt