3 Ebenen Navigation (Grafikerzeugend)

Wie verwendet man Templates oder erstellt Navigationen und passt diese an.

Beitragvon kaputten » 29. Mär 2009, 01:13

So, nach langen Tests hab ich es endlich optisch so, wie ich es haben will und ich muss sagen, geiles Script ;o))

Ein kleines Problem hab ich allerdings noch:
Ich kenn mich in PHP nicht wirklich gut aus, aber für meine Belange konnte ich das Script umbauen/kürzen...
Jetzt würde ich es gerne noch so haben, dass die 1. UND 2. Kategorie immer angezeigt werden (also die Menupunkte auch sichtbar sind, wenn die Kategorie nicht gewählt ist) und nur die 3. Ebene bei Bedarf sichtbar wird. Versteht ihr was ich meine?

Dürfte nur eine kleine Umstellung sein, aber ich finde sie nicht :?

Wäre lieb, wenn ich Hilfe bekommen würde, hier mein Script


Code: Alles auswählen
<?php
// EXPLODE PATH
$PATH = explode("|",$this->getValue("path").$this->getValue("article_id")."|");

// GET CURRENTS
$path1 = $PATH[1];
$path2 = $PATH[2];
$path3 = $PATH[3];

/* START 1st level categories */
$nav .= '';
foreach (OOCategory::getRootCategories() as $lev1) {

   /* create image 1st level // pic */
   $name1 = ereg_replace("([^_A-Za-z0-9\.-])","","$lev1->getName()");
   $text1 = $lev1->getName();
   $bgcolor1 = "dummy";
   $textcolor1 = "black";
   $picname1 = $lev1->getId().".gif";
   $thisfont1 = "./files/navi/schrift.ttf";
   $fontsize1 = "16";
   $pic_height1 = "20";
   $to_align1 = "20";
   $left_padding1 = "1";
   $how_many_words1 = "100";

   createImage($text1,$thisfont1,"./files/navi/$picname1",$fontsize1, $how_many_words1, $pic_height1, "exact", $to_align1, $bgcolor1, $textcolor1, $left_padding1);
chmod ("./files/navi/$picname1", 0777); 
   

   if ($lev1->isOnline(true)):
     if ($lev1->getId() == $path1) {
         $nav .= '<a href="'.$lev1->getUrl().'"><img border="0" src="./files/navi/'.$picname1.'" /></a><br>';
      }
      // 2nd level - no active link
      else {
         $nav .= '<a href="'.$lev1->getUrl().'"><img border="0" src="./files/navi/'.$picname1.'" /></a><br>';
      }
         
      // 1st level had categories? -> go on
      $lev1Size = sizeof($lev1->getChildren());
   
      if ($lev1->getId() == $path1) {
         if ($lev1Size != "0") {
            $nav .= '';

            // START 2nd level categories
            foreach ($lev1->getChildren() as $lev2):
               if ($lev2->isOnline(true)) {   
             
               /* create image 2st level // pic */
               $name2 = ereg_replace("([^_A-Za-z0-9\.-])","","$lev2->getName()");
               $text2 = $lev2->getName();
               $bgcolor2 = "dummy";
               $textcolor2 = "black";
               $picname2 = $lev2->getId().".gif";
               $thisfont2 = "./files/navi/schrift.ttf";
               $fontsize2 = "15";
               $pic_height2 = "18";
               $to_align2 = "18";
               $left_padding2 = "1";
               $how_many_words2 = "100";
           
               createImage($text2,$thisfont2,"./files/navi/$picname2", $fontsize2, $how_many_words2, $pic_height2, "exact", $to_align2, $bgcolor2, $textcolor2, $left_padding2);
chmod ("./files/navi/$picname2", 0777);           
               

                  // 2nd level - active link
                  if ($lev2->getId() == $path2) {
                     $nav .= '<img src="/images/space.gif" width="12"><a href="'.$lev2->getUrl().'"><img border="0" src="./files/navi/'.$picname2.'" /></a><br>';
                  }
                  // 2nd level - no active link
                  else {
                     $nav .= '<img src="/images/space.gif" width="12"><a href="'.$lev2->getUrl().'"><img border="0" src="./files/navi/'.$picname2.'" /></a><br>';
                  }
                 
                  // 2nd level had categories? -> go on
                  $lev2Size = sizeof($lev2->getChildren());
   
                  if ($lev2->getId() == $path2) {
              if ($lev2Size != "0") {
                        $nav .= '';

                        // START 3rd level categories
                        foreach ($lev2->getChildren() as $lev3):
                           if ($lev3->isOnline(true)) {
                     
                          /* create image 3st level // pic */
                          $name3 = ereg_replace("([^_A-Za-z0-9\.-])","","$lev3->getName()");
                          $text3 = $lev3->getName();
                          $bgcolor3 = "dummy";
                          $textcolor3 = "black";
                          $picname3 = $lev3->getId().".gif";
                          $thisfont3 = "./files/navi/schrift.ttf";
                          $fontsize3 = "14";
                          $pic_height3 = "16";
                          $to_align3 = "16";
                          $left_padding3 = "1";
                          $how_many_words3 = "100";
           
                         createImage($text3,$thisfont3,"./files/navi/$picname3", $fontsize3, $how_many_words3, $pic_height3, "exact", $to_align3, $bgcolor3, $textcolor3, $left_padding3);
chmod ("./files/navi/$picname3", 0777);           
                     

                              // 3rd level - active link
                              if ($lev3->getId() == $path3) {
                                 $nav .= '<img src="/images/space.gif" width="24"><a href="'.$lev3->getUrl().'"><img border="0" src="./files/navi/'.$picname3.'" /></a><br>';
                              }
                              // 3rd level - no active link
                              else {
                                 $nav .= '<img src="/images/space.gif" width="24"><a href="'.$lev3->getUrl().'"><img border="0" src="./files/navi/'.$picname3.'" /></a><br>';
                              }
                           }
                        endforeach;
                        // END 3rd level categories
     
                        $nav .= '';
                     } // END by if ($lev2Size != "0"):
                  }
                  $nav .= '';
               }
            endforeach;
            // END 2nd level categories
     
            $nav .= '';
         } // END by if ($lev1Size != "0"):
      }
      $nav .= '';

   endif; // END by if ($lev1->isOnline())
}
$nav .= '';
// END 1st level categories

  print $nav;
?>
kaputten
 
Beiträge: 15
Registriert: 25. Mär 2009, 10:11
Wohnort: Essen

Beitragvon ralf.schlott » 29. Mär 2009, 09:44

Zu deiner Frage weiss ich leider noch keine Antwort, aber ich habe gesehen, dass du eingefügt hast:
Code: Alles auswählen
chmod ("./files/navi/$picname2", 0777);           

Funktioniert das?

Gruss
Ralf
Benutzeravatar
ralf.schlott
 
Beiträge: 426
Registriert: 5. Dez 2007, 20:22
Wohnort: Hamburch

Beitragvon kaputten » 29. Mär 2009, 16:03

ja, ich fand es recht umständlich die Bilder mit ins Redaxosystem zu packen und hab die Pfade so geändert, dass sie wie bei mir andere Bilder auch im Files-Ordner generiert werden.

Das Problem war, dass die Schreibrechte Serverseitig nicht weit genug gesetzt wurden und die Bilder zwar generiert wurden (also auch im Ordner zu finden), aber nicht aufgerufen werden durften.

Durch die zusätzliche Angabe werden die Rechte halt so gesetzt, dass sie CHMOD 777 bekommen und somit auch genutzt werden können und die serverseitigen Rechte keine Rolle mehr spielen, musste ich lange nach suchen, bis ich es hinbekommen habe, aber funzt ;o)
kaputten
 
Beiträge: 15
Registriert: 25. Mär 2009, 10:11
Wohnort: Essen

Beitragvon kaputten » 29. Mär 2009, 16:07

rsi hat geschrieben:Hat jemand die Navi auch in V4 gestestet?


ach ja, ich hab die Version und es geht, wie gesagt, mit den ursprünglichen Pfaden hatte ich Probleme, weiß aber nicht, ob das an der Version lag, aber mit dem Umbau hats geklappt!
kaputten
 
Beiträge: 15
Registriert: 25. Mär 2009, 10:11
Wohnort: Essen

Beitragvon kaputten » 25. Jun 2009, 09:52

hat wirklich niemand eine Antwort oder ist es nur zu kompliziert?
zumindest die Info, dass es zu viel Arbeit machen würde, wäre schon hilfreich ;o)

Würde es echt gerne nehmen, aber nur die Hauptpunkte in der Navigation find ich zu wenig, wär also toll, wenn sich dem jemand nochmal anehmen könnte :wink:
kaputten
 
Beiträge: 15
Registriert: 25. Mär 2009, 10:11
Wohnort: Essen

Vorherige

Zurück zu Templates/Navigationen [R3]

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast