[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
REDAXO Forum • 3 Ebenen Navigation (Grafikerzeugend)
Seite 1 von 2

3 Ebenen Navigation (Grafikerzeugend)

Verfasst: 6. Aug 2006, 20:44
von Fuchikoma
Hallo!

Kann mir Jemand sagen wie ich die Anweisungen für diese Navi zu verstehen habe (http://www.redaxo.de/168-Templatedetail ... late_id=26)?

Da steht "Template CSS" und Inhaltlich:

Code: Alles auswählen


// kein CSS eher ein php-Code - diese Funktion 
// sollte man includen bei einer Redaxo installation
// ab v3.2, die Farbenpalette lässt sich 
// natürlich erweitern.
Soll das nun heissen das der darauf folgende php-Code in die CSS-Datei kommt, oder wohin??

Sorry... aber ich finde das komisch ausgedrückt und bringe die Navi nicht zum Laufen.

Verfasst: 7. Aug 2006, 22:37
von Joachim.Dörr
Ja es ist php und es sollte NICHT in eine CSS datei sondern als code in ein template gespeichert werden und dann via include in des default integriert werden.

so ist das etwa zu verstehen :wink:

lg
Joachim

Verfasst: 7. Aug 2006, 22:40
von Joachim.Dörr
ps. es gab keine zusätzliche option für code außerhalb des templatecodes abgesehen davon, dass man css hat anfügen können. also hab ich notbeholfen die funktion unter css abgesichert. :roll:

Verfasst: 7. Aug 2006, 22:54
von Joachim.Dörr
Hab das ganze ein wenig ergänzt hoffe es ist jetzt verständlicher?
lg

Verfasst: 7. Aug 2006, 23:17
von joaopinto
hallo yoo,

ich arbeite heute schon den ganzen tag mit deinem template, wirklich eine tolle sache. ich habe es auch schon zum laufen gebracht, nur habe ich das problem dass er meinen ttf-font nicht wirklich schön darstellt. es scheint etwas mit der höhe oder breite nicht zu passen, wo kann ich das bearbeiten?

Code: Alles auswählen

createImage($text1,$thisfont1,$REX[INCLUDE_PATH]."/../../pics/navi/$picname1",12,100,30,"exact",20,$bgcolor1,$textcolor1,1);
schriftgröße hab ich schon probiert, font wird aber nicht schöner. die width wird ja in der funktion durch "exact" irgendwie automatisch berechnet, hab ich gesehen. die sollte also immer passen, oder?

vielen dank im voraus,
paolo

ps: anregung ;-) - würde in den templateanweisungen auch noch dazuschreiben, wie die einzelnen navigationselemente im default-template aufgerufen werden können. bei mir haut das zb. mit der $nav2 nicht so wirklich hin..

Verfasst: 8. Aug 2006, 10:14
von Joachim.Dörr
Hi hier mal die Beschreibung erweitert mit deinen Anregungen zur verbesserung:


Das Navtemplate entstand durch ver. Anregungen aus dem Forum - speziell aus diesem Topic:
http://forum.redaxo.de/ftopic2115.html& ... ion+bilder

Das Template ist im Einsatz bei:

http://haussonne.de/index.php
-> diese Webseite ist noch im Aufbau also kein Anspruch auf 100%igkeit. Zusehen ist das ganze schon unter "Portrait".

Es werden pro Menüpunkt 2 Bilder erstellt - ein Link und ein Aktiv Bild - wer interesse daran hat - kann natürlich das ganze erweitern - einen Hover-Effekt via java ließ ich bewusst aus.

Installation:

Für Redaxo installationen ab v3.2 muss die grafikerstellende Funktion ins Template includiert werden. Die Funktion ist unter dem "Template" als "Template/CSS" zu finden -> den Code sollte man nicht als CSS sondern als Template abspeichern und im "default" Template entsprechend includen.

1. Man sollte ein Ordner mit dem Namen "ttf" ins Verzeichnis "/redaxo/include/" erstellen in welchen die eintsprechende ttf-Datei abgelegt werden sollte.

2. Im Ordner "/pics/" noch einen Ordner "navi" erstellen - in diesen werden von Script die Nav-Bilder gelegt.

3a. Für Redaxo Installationen ab v3.2 im Seitentemplate die Funktion includen.

3b. Das Navigations Template einbinden.

Code: Alles auswählen

<?php
// Grafikerstellende Funktion includen

include $REX['INCLUDE_PATH']."/generated/templates/13.template";

// Navigationstemplate includen
$navTemplateId = "11";
include $REX['INCLUDE_PATH']."/generated/templates/$navTemplateId.template"; 

?>
"13" und "11" durch die korrekten IDs der Templates ersetzen.

4. Die Navigations Ebenen im Seitentemplate einbinden. Dazu diesen Code an der Stelle wo die Navigation erscheinen soll hinkopieren.

Code: Alles auswählen

<?php 
// Mainnav einbinden
print $nav1;
?>
"$nav1" dann jeweils deklarieren.

5. Entsprechende Anpassungen vor nehmen. Höhe des Pics, Schriftgröße und Ausrichtung sind von der ttf-Schrift abhängig. Hier heißt es Ausprobieren - nach jedem Test die Bilder im Ordner "/pics/navi/" löschen, da das Script vorhanden Bilddateien nicht überschreibt.

*Extra: Den Code des Navigationstemplates hab ich etwas modifiziert - was das sog. Austesten für ein Ausrichten und Größenanpassung erleichtern sollte.

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 .= '<!-- start 1st 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 = $REX[INCLUDE_PATH]."/ttf/schrift.ttf";
   $fontsize1 = "13";
   $pic_height1 = "25";
   $to_align1 = "20";
   $left_padding1 = "1";
   $how_many_words1 = "100";

   createImage($text1,$thisfont1,$REX[INCLUDE_PATH]."/../../pics/navi/$picname1", $fontsize1, $how_many_words1, $pic_height1, "exact", $to_align1, $bgcolor1, $textcolor1, $left_padding1);

   /* create image 1st level // pic_2 */
   $name12 = ereg_replace("([^_A-Za-z0-9\.-])","","$lev1->getName()");
   $text12 = $lev1->getName();
   $bgcolor12 = "grey";
   $textcolor12 = "white";
   $picname12 = $lev1->getId()."_2.gif";
   $thisfont12 = $REX[INCLUDE_PATH]."/ttf/schrift.ttf";
   $fontsize12 = "13";
   $pic_height12 = "25";
   $to_align12 = "20";
   $left_padding12 = "1";
   $how_many_words12 = "100";

   createImage($text12,$thisfont12,$REX[INCLUDE_PATH]."/../../pics/navi/$picname12", $fontsize12, $how_many_words12, $pic_height12,"exact", $to_align12, $bgcolor12, $textcolor12, $left_padding12);

   if ($lev1->isOnline(true)):
      if ($lev1->getId() == $path1) {
         $nav .= '<a href="'.$lev1->getUrl().'"><img src="pics/navi/'.$picname12.'" title="'.$text1.'" alt="'.$text1.'" /></a>';
      }
      // 2nd level - no active link
      else {
         $nav .= '<a href="'.$lev1->getUrl().'"><img src="pics/navi/'.$picname1.'" title="'.$text1.'" alt="'.$text1.'" /></a>';
      }
         
      // 1st level had categories? -> go on
      $lev1Size = sizeof($lev1->getChildren());
   
      if ($lev1->getId() == $path1) {
         if ($lev1Size != "0") {
            $nav2 .= '<!-- start 2st 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 = $REX[INCLUDE_PATH]."/ttf/schrift.ttf";
			      $fontsize2 = "13";
			      $pic_height2 = "25";
			      $to_align2 = "20";
			      $left_padding2 = "1";
			      $how_many_words2 = "100";
			   
			      createImage($text2,$thisfont2,$REX[INCLUDE_PATH]."/../../pics/navi/$picname2", $fontsize2, $how_many_words2, $pic_height2, "exact", $to_align2, $bgcolor2, $textcolor2, $left_padding2);
			   
			      /* create image 2st level // pic_2 */
			      $name22 = ereg_replace("([^_A-Za-z0-9\.-])","","$lev2->getName()");
			      $text22 = $lev2->getName();
			      $bgcolor22 = "dummy";
			      $textcolor22 = "blue2";
			      $picname22 = $lev2->getId()."_2.gif";
			      $thisfont22 = $REX[INCLUDE_PATH]."/ttf/schrift.ttf";
			      $fontsize22 = "13";
			      $pic_height22 = "25";
			      $to_align22 = "20";
			      $left_padding22 = "1";
			      $how_many_words22 = "100";
			   
			      createImage($text22,$thisfont22,$REX[INCLUDE_PATH]."/../../pics/navi/$picname22", $fontsize22, $how_many_words22, $pic_height22, "exact", $to_align22, $bgcolor22, $textcolor22, $left_padding22);

                  // 2nd level - active link
                  if ($lev2->getId() == $path2) {
                     $nav2 .= '<a href="'.$lev2->getUrl().'"><img src="pics/navi/'.$picname22.'" title="'.$text2.'" alt="'.$text2.'" class="active" /></a>';
                  }
                  // 2nd level - no active link
                  else {
                     $nav2 .= '<a href="'.$lev2->getUrl().'"><img src="pics/navi/'.$picname2.'" title="'.$text2.'" alt="'.$text2.'" /></a>';
                  }
                  
                  // 2nd level had categories? -> go on
                  $lev2Size = sizeof($lev2->getChildren());
   
                  if ($lev2->getId() == $path2) {
				  if ($lev2Size != "0") {
                        $nav3 .= '<!-- start 3st 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 = $REX[INCLUDE_PATH]."/ttf/schrift.ttf";
			     		 	  $fontsize3 = "13";
			     		 	  $pic_height3 = "25";
			     		 	  $to_align3 = "20";
			     		 	  $left_padding3 = "1";
			     		 	  $how_many_words3 = "100";
			   
			        		  createImage($text3,$thisfont3,$REX[INCLUDE_PATH]."/../../pics/navi/$picname3", $fontsize3, $how_many_words3, $pic_height3, "exact", $to_align3, $bgcolor3, $textcolor3, $left_padding3);
			   
			         		  /* create image 3st level // pic_2 */
		  			          $name32 = ereg_replace("([^_A-Za-z0-9\.-])","","$lev3->getName()");
					          $text32 = $lev3->getName();
		  			          $bgcolor32 = "dummy";
		  			          $textcolor32 = "blue2";
		  			          $picname32 = $lev3->getId()."_2.gif";
		  			          $thisfont32 = $REX[INCLUDE_PATH]."/ttf/schrift.ttf";
			     		 	  $fontsize32 = "13";
			     		 	  $pic_height32 = "25";
			     		 	  $to_align32 = "20";
			     		 	  $left_padding32 = "1";
			     		 	  $how_many_words32 = "100";
			      
		  			          createImage($text32,$thisfont32,$REX[INCLUDE_PATH]."/../../pics/navi/$picname32", $fontsize32, $how_many_words32, $pic_height32, "exact", $to_align32, $bgcolor32, $textcolor32, $left_padding32);
						      
                              // 3rd level - active link
                              if ($lev3->getId() == $path3) {
                                 $nav3 .= '<a href="'.$lev3->getUrl().'"><img src="pics/navi/'.$picname32.'" title="'.$text3.'" alt="'.$text3.'" class="active" /></a>';
                              }
                              // 3rd level - no active link
                              else {
                                 $nav3 .= '<a href="'.$lev3->getUrl().'"><img src="pics/navi/'.$picname3.'" title="'.$text3.'" alt="'.$text3.'" /></a>';
                              }
                           }
                        endforeach;
                        // END 3rd level categories
      
                        $nav3 .= '<!-- ende 3st nav -->';
                     } // END by if ($lev2Size != "0"):
                  }
                  $nav2 .= '';
               }
            endforeach;
            // END 2nd level categories
      
            $nav2 .= '<!-- ende 2st nav -->';
         } // END by if ($lev1Size != "0"):
      }
      $nav .= '';

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

// print $nav;
// print $nav2;
// print $nav3;
?> 
Bearbeite folgende Variablen:

$bgcolor = Hintergrundfarbe des Menüpunktes "black, orange, dummy, etc..." -> siehe Funktion -> hier können Farben angegeben werden Achtung(!) soll ein transparenter Hintergrund genutzt werden muss man darauf achten, dass in der Funktion "dummy" mit der korrekten Transparenzfarbe versehen wird z.B. "black" bei dunklen Hintergründen etc.

$textcolor = Textfarbe (black, blue, etc...)

$thisfont = definiert die Schriftart (xyz.ttf)

$fontsize = definiert die Schriftgröße

$pic_height = definiert die Höhe der Menüpunkte

$to_align = diese Punkt ist etwas speziell - er dient zur Ausrichtung des Textes - dabei wird die Grundlinie ausgerichtet nicht die Unterlänge(!) die Ausrichtung erfolgt von oben nach unten. (gibt man "10" an wird die Grundlinie auf der y-Achse in einer Höhe von 10px angesetzt)

$left_padding = Textabstand zum linken Rand im Bild

$how_many_words = Wieviele Wörter in einer Reihe geschreiben werden

[ externes Bild ]


lg
Joachim

Verfasst: 8. Aug 2006, 10:49
von joaopinto
hallo,

vielen dank so ist's schon mal viel übersichtlicher :-)

jetzt glaube ich auch dass mein ttf-schriften rendering problem wohl am server liegt oder an der ttf-schrift.
ich habs mit verdana ausprobiert, da haut es einigermaßen hin, aber bei der schrift die ich benötige (vag rounded) sieht das rendering schrecklich aus.

hat jemand erfahrung mit solchen problemen?

Verfasst: 8. Aug 2006, 11:14
von joaopinto
es scheint definitiv die ttf-schrift zu sein. mit einer anderen, ähnlichen schrift wird es normal gerendert, allerdings passt dort die laufweite etc nicht.

kann man solche dinge noch irgendwie beim rendern beeinflussen, also laufweite, schriftbreite etc.?
(dass das nicht im template geht, nehm ich schon mal an..)

Verfasst: 8. Aug 2006, 11:30
von Joachim.Dörr
Nein glaube nicht dazu müsstest du die ttf datei editieren - quasi alle zeichen in der font modifizieren - für das "haussonne" projekt musste ich das auch tun - hat zwar ewig gedauert und war super viel arbeit (ein paar wochen, dutzende stunden) aber hat sich gelohnt.

lg
Joachim

Verfasst: 9. Aug 2006, 23:36
von joaopinto
hab jetzt noch ein anderes "problem".. möchte das grafikerzeugende "3 ebenen template" so umschreiben, dass es zu einer verschachtelten navigation wird so wie die standardnavigation "vertical"... also ebene 2 wird zwischen ebene 1 ausgelesen (aber eben grafikerzeugend).

ich nehme an dass hier irgendwas zu ändern ist, aber ich blicke da nicht durch..

Code: Alles auswählen

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

            // START 2nd level categories 
            foreach ($lev1->getChildren() as $lev2): 
               if ($lev2->isOnline(true)) {    
               
ist das schwierig zu ändern? :-)

Verfasst: 10. Aug 2006, 00:45
von Joachim.Dörr
Ist eigentlich ganz einfach so müsste es gehn:

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 .= '<ul class="nav1st">';
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 = $REX[INCLUDE_PATH]."/ttf/schrift.ttf";
   $fontsize1 = "13";
   $pic_height1 = "25";
   $to_align1 = "20";
   $left_padding1 = "1";
   $how_many_words1 = "100";

   createImage($text1,$thisfont1,$REX[INCLUDE_PATH]."/../../pics/navi/$picname1", $fontsize1, $how_many_words1, $pic_height1, "exact", $to_align1, $bgcolor1, $textcolor1, $left_padding1);

   /* create image 1st level // pic_2 */
   $name12 = ereg_replace("([^_A-Za-z0-9\.-])","","$lev1->getName()");
   $text12 = $lev1->getName();
   $bgcolor12 = "grey";
   $textcolor12 = "white";
   $picname12 = $lev1->getId()."_2.gif";
   $thisfont12 = $REX[INCLUDE_PATH]."/ttf/schrift.ttf";
   $fontsize12 = "13";
   $pic_height12 = "25";
   $to_align12 = "20";
   $left_padding12 = "1";
   $how_many_words12 = "100";

   createImage($text12,$thisfont12,$REX[INCLUDE_PATH]."/../../pics/navi/$picname12", $fontsize12, $how_many_words12, $pic_height12,"exact", $to_align12, $bgcolor12, $textcolor12, $left_padding12);

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

            // 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 = $REX[INCLUDE_PATH]."/ttf/schrift.ttf";
               $fontsize2 = "13";
               $pic_height2 = "25";
               $to_align2 = "20";
               $left_padding2 = "1";
               $how_many_words2 = "100";
            
               createImage($text2,$thisfont2,$REX[INCLUDE_PATH]."/../../pics/navi/$picname2", $fontsize2, $how_many_words2, $pic_height2, "exact", $to_align2, $bgcolor2, $textcolor2, $left_padding2);
            
               /* create image 2st level // pic_2 */
               $name22 = ereg_replace("([^_A-Za-z0-9\.-])","","$lev2->getName()");
               $text22 = $lev2->getName();
               $bgcolor22 = "dummy";
               $textcolor22 = "blue2";
               $picname22 = $lev2->getId()."_2.gif";
               $thisfont22 = $REX[INCLUDE_PATH]."/ttf/schrift.ttf";
               $fontsize22 = "13";
               $pic_height22 = "25";
               $to_align22 = "20";
               $left_padding22 = "1";
               $how_many_words22 = "100";
            
               createImage($text22,$thisfont22,$REX[INCLUDE_PATH]."/../../pics/navi/$picname22", $fontsize22, $how_many_words22, $pic_height22, "exact", $to_align22, $bgcolor22, $textcolor22, $left_padding22);

                  // 2nd level - active link
                  if ($lev2->getId() == $path2) {
                     $nav .= '<li class="active"><a href="'.$lev2->getUrl().'"><img src="pics/navi/'.$picname22.'" title="'.$text2.'" alt="'.$text2.'" class="active" /></a>';
                  }
                  // 2nd level - no active link
                  else {
                     $nav .= '<li><a href="'.$lev2->getUrl().'"><img src="pics/navi/'.$picname2.'" title="'.$text2.'" alt="'.$text2.'" /></a></li>';
                  }
                 
                  // 2nd level had categories? -> go on
                  $lev2Size = sizeof($lev2->getChildren());
   
                  if ($lev2->getId() == $path2) {
              if ($lev2Size != "0") {
                        $nav .= '<ul class="nav3rd">';

                        // 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 = $REX[INCLUDE_PATH]."/ttf/schrift.ttf";
                          $fontsize3 = "13";
                          $pic_height3 = "25";
                          $to_align3 = "20";
                          $left_padding3 = "1";
                          $how_many_words3 = "100";
            
                         createImage($text3,$thisfont3,$REX[INCLUDE_PATH]."/../../pics/navi/$picname3", $fontsize3, $how_many_words3, $pic_height3, "exact", $to_align3, $bgcolor3, $textcolor3, $left_padding3);
            
                          /* create image 3st level // pic_2 */
                           $name32 = ereg_replace("([^_A-Za-z0-9\.-])","","$lev3->getName()");
                         $text32 = $lev3->getName();
                           $bgcolor32 = "dummy";
                           $textcolor32 = "blue2";
                           $picname32 = $lev3->getId()."_2.gif";
                           $thisfont32 = $REX[INCLUDE_PATH]."/ttf/schrift.ttf";
                          $fontsize32 = "13";
                          $pic_height32 = "25";
                          $to_align32 = "20";
                          $left_padding32 = "1";
                          $how_many_words32 = "100";
              
                           createImage($text32,$thisfont32,$REX[INCLUDE_PATH]."/../../pics/navi/$picname32", $fontsize32, $how_many_words32, $pic_height32, "exact", $to_align32, $bgcolor32, $textcolor32, $left_padding32);
                       
                              // 3rd level - active link
                              if ($lev3->getId() == $path3) {
                                 $nav .= '<li class="active"><a href="'.$lev3->getUrl().'"><img src="pics/navi/'.$picname32.'" title="'.$text3.'" alt="'.$text3.'" class="active" /></a></li>';
                              }
                              // 3rd level - no active link
                              else {
                                 $nav .= '<li><a href="'.$lev3->getUrl().'"><img src="pics/navi/'.$picname3.'" title="'.$text3.'" alt="'.$text3.'" /></a></li>';
                              }
                           }
                        endforeach;
                        // END 3rd level categories
     
                        $nav .= '</ul>';
                     } // END by if ($lev2Size != "0"):
                  }
                  $nav .= '</li>';
               }
            endforeach;
            // END 2nd level categories
     
            $nav .= '</ul>';
         } // END by if ($lev1Size != "0"):
      }
      $nav .= '</li>';

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

// print $nav;

?> 
*wollte sowieso mal das ganze noch als (<ul><li></li><ul>) listen ausbauen.

lg
Joachim

Verfasst: 10. Aug 2006, 09:48
von Jan.Kristinus
hi,

noch "besser" waere es wenn du die generierung in ein addon packst und dann über einen extension point die veraenderungen durchführst.

es gibt einen extension point der immer ausgeführt wird wenn eine kategorie geaendert oder hinzugefuehrt wird - namen habe ich gerade nicht im kopf - und dann koenntest du immer die passende grafik erstellen und nur dann wenns noetig ist ..

stichwort: addon und extension point..

klingt schwierig ? ist es aber nicht ;)

lg

jan

Verfasst: 12. Aug 2006, 10:16
von Joachim.Dörr
Hi Jan, finde das klingt gut hab aber leider noch keine erfahrung mit addons hab noch keines programmiert. Der Extension poeint wäre "ADDONS_INCLUDED"? hab noch keine vorstellung wie genau ich das zu verhackstücken hab. generel könnt ich mir gut vorstellen das ganze via addon laufen zu lassen -> wäre sicher ganz nett.

lg
Joachim

Verfasst: 12. Aug 2006, 12:51
von serioussimon
Yoo hat geschrieben:Der Extension poeint wäre "ADDONS_INCLUDED"?
Der Extensionpoint wäre CAT_ADDED bzw. CAT_UPDATED.

Gruß Simon

Verfasst: 12. Aug 2006, 13:55
von Markus.Staab
Hi,

die EPs wären folgende

ART_ADDED
ART_UPDATED

CAT_ADDED
CAT_UPDATED

Hier gibts übrigens ne Übersicht für die EPs.

Gruß,
Markus

Verfasst: 13. Aug 2006, 16:44
von Joachim.Dörr
Gibts ne schrittweise anleitung wie ich sowas am bestin in ein addon bauen könnte? hab keine ahung.

Verfasst: 13. Aug 2006, 16:45
von Markus.Staab
Hi Joachim,

nein gibts leider nicht... Allerdings gibts ein Beispieladdon, das du dir anpassen könntest:

http://www.redaxo.de/180-Addondetails.html?addon_id=69

Gruß,
Markus

Verfasst: 14. Aug 2006, 19:43
von Joachim.Dörr
ok werds mir mal anschauen.
lg
joachim

Probleme...

Verfasst: 23. Aug 2006, 01:02
von Ovomat
Hi,

ich habe gespannt die Anleitung gelesen und verfolgt, leider ohne Erfolg.

Hier die Fehlermeldungen:
Warning: imagettfbbox() [function.imagettfbbox]: Could not find/open font in /home/www/web50/html/redaxo/include/generated/templates/8.template on line 40

Warning: imagettftext() [function.imagettftext]: Could not find/open font in /home/www/web50/html/redaxo/include/generated/templates/8.template on line 79

Warning: imagepng() [function.imagepng]: Unable to open './redaxo/include/../../pics/navi/1.gif' for writing in /home/www/web50/html/redaxo/include/generated/templates/8.template on line 83

Warning: imagettfbbox() [function.imagettfbbox]: Could not find/open font in /home/www/web50/html/redaxo/include/generated/templates/8.template on line 40

Warning: imagettftext() [function.imagettftext]: Could not find/open font in /home/www/web50/html/redaxo/include/generated/templates/8.template on line 79

Warning: imagepng() [function.imagepng]: Unable to open './redaxo/include/../../pics/navi/1_2.gif' for writing in /home/www/web50/html/redaxo/include/generated/templates/8.template on line 83

Warning: imagettfbbox() [function.imagettfbbox]: Could not find/open font in /home/www/web50/html/redaxo/include/generated/templates/8.template on line 40

Warning: imagettftext() [function.imagettftext]: Could not find/open font in /home/www/web50/html/redaxo/include/generated/templates/8.template on line 79


Was habe ich falsch gemacht?

Liebe Grüße

Ovomat

Verfasst: 1. Sep 2006, 11:49
von Joachim.Dörr
wo hast du denn deine ttf datei hingelegt?

lg
joachim

Verfasst: 1. Sep 2006, 11:50
von Joachim.Dörr
hast du auch die funktion eingebunden?

Verfasst: 1. Sep 2006, 11:56
von Joachim.Dörr
Ist auf dem Server GDLib installiert? und wie bist du vorgegangen.

lg
Joachim

Verfasst: 1. Sep 2006, 13:44
von Markus.Staab
Hi Joachim,

du kannst in das Template eine Prüfung machen, ob die gd-lib installiert ist.
Wie das geht, kannst du in der image_resize install.inc.php Datei nachsehen.

Gruß,
Markus

Verfasst: 1. Sep 2006, 19:34
von Joachim.Dörr
Hi Kills, dann hat der User weniger Freiheit beim einblenden der Navi. -> jedenfalls, wenn man nicht mit Listen arbeitet und die Navigation teilen möchte. -> in solch einem Fall müsste der Code unten als Ausgabe genommen werden.

ich denke mal du meinst das so:

Code: Alles auswählen

if (!extension_loaded('gd'))
{
  if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN')
  {
    $ext_loaded = @ dl('gd.dll');
  }
  else
  {
    $ext_loaded = @ dl('gd.so');
  }
  if (!$ext_loaded)
  {
    $error = 'GD-LIB-extension not available! See <a href="http://www.php.net/gd">http://www.php.net/gd</a>';
  }
}

if ($error != '')
{
  print $error;
}
else
{
  print $nav;
}
lg
Joachim

Verfasst: 1. Sep 2006, 19:45
von Joachim.Dörr
kills hat geschrieben:du kannst in das Template eine Prüfung machen, ob die gd-lib installiert ist.
Wie das geht, kannst du in der image_resize install.inc.php Datei nachsehen.
So hab nun das Template als Listentemplate mit der Prüfung als Ausgabe im Downloadbereich upgedatet.

lg
Joachim