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

Wir haben in letzter Zeit festgestellt, dass die Kommunikation via Slack viel schneller und zielführender ist als ein Beitrag im Forum. Aufgrund der neuen und besseren Möglichkeiten der Kommunikation haben wir uns entschlossen das Forum nur noch als Archiv zur Verfügung zu stellen. Somit bleibt es weiterhin möglich hier nach Lösungen zu suchen. Neue Beiträge können nicht mehr erstellt werden.

Wir empfehlen, für deine Fragen/Probleme Slack zu nutzen. Dort sind viele kompetente Benutzer aktiv und beantworten jegliche Fragen, gerne auch von REDAXO-Anfängern! Slack wird von uns sehr intensiv und meistens "rund um die Uhr" benutzt :-)
Selbst einladen kannst Du dich hier: https://redaxo.org/slack/
Fuchikoma
Beiträge: 32
Registriert: 23. Jun 2006, 12:31

3 Ebenen Navigation (Grafikerzeugend)

6. Aug 2006, 20:44

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.

Joachim.Dörr
Beiträge: 1403
Registriert: 7. Apr 2006, 01:49
Kontaktdaten: ICQ Website

7. Aug 2006, 22:37

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

Joachim.Dörr
Beiträge: 1403
Registriert: 7. Apr 2006, 01:49
Kontaktdaten: ICQ Website

7. Aug 2006, 22:40

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:

Joachim.Dörr
Beiträge: 1403
Registriert: 7. Apr 2006, 01:49
Kontaktdaten: ICQ Website

7. Aug 2006, 22:54

Hab das ganze ein wenig ergänzt hoffe es ist jetzt verständlicher?
lg

joaopinto
Beiträge: 120
Registriert: 28. Jun 2006, 14:16
Wohnort: Österreich

7. Aug 2006, 23:17

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..

Joachim.Dörr
Beiträge: 1403
Registriert: 7. Apr 2006, 01:49
Kontaktdaten: ICQ Website

8. Aug 2006, 10:14

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
Zuletzt geändert von Joachim.Dörr am 8. Aug 2006, 11:29, insgesamt 1-mal geändert.

joaopinto
Beiträge: 120
Registriert: 28. Jun 2006, 14:16
Wohnort: Österreich

8. Aug 2006, 10:49

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?

joaopinto
Beiträge: 120
Registriert: 28. Jun 2006, 14:16
Wohnort: Österreich

8. Aug 2006, 11:14

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..)

Joachim.Dörr
Beiträge: 1403
Registriert: 7. Apr 2006, 01:49
Kontaktdaten: ICQ Website

8. Aug 2006, 11:30

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

joaopinto
Beiträge: 120
Registriert: 28. Jun 2006, 14:16
Wohnort: Österreich

9. Aug 2006, 23:36

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? :-)

Joachim.Dörr
Beiträge: 1403
Registriert: 7. Apr 2006, 01:49
Kontaktdaten: ICQ Website

10. Aug 2006, 00:45

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

Benutzeravatar
Jan.Kristinus
Admin
Beiträge: 2166
Registriert: 24. Aug 2004, 22:11
Wohnort: Frankfurt
Kontaktdaten: ICQ Website

10. Aug 2006, 09:48

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
Yakamara Media GmbH & Co. KG | Kaiserstrasse 69 | 60329 Frankfurt
Tel.: 069-900.20.60.30
http://www.yakamara.de/

Joachim.Dörr
Beiträge: 1403
Registriert: 7. Apr 2006, 01:49
Kontaktdaten: ICQ Website

12. Aug 2006, 10:16

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

Benutzeravatar
serioussimon
Beiträge: 350
Registriert: 11. Okt 2005, 22:32
Wohnort: Bayern

12. Aug 2006, 12:51

Yoo hat geschrieben:Der Extension poeint wäre "ADDONS_INCLUDED"?
Der Extensionpoint wäre CAT_ADDED bzw. CAT_UPDATED.

Gruß Simon
FYI: Eine HOMEPAGE ist nur die Startseite einer WEBSITE!

Benutzeravatar
Markus.Staab
Entwickler
Beiträge: 9634
Registriert: 29. Jan 2005, 15:50
Wohnort: Aschaffenburg/Germany
Kontaktdaten: ICQ Website

12. Aug 2006, 13:55

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

Joachim.Dörr
Beiträge: 1403
Registriert: 7. Apr 2006, 01:49
Kontaktdaten: ICQ Website

13. Aug 2006, 16:44

Gibts ne schrittweise anleitung wie ich sowas am bestin in ein addon bauen könnte? hab keine ahung.

Benutzeravatar
Markus.Staab
Entwickler
Beiträge: 9634
Registriert: 29. Jan 2005, 15:50
Wohnort: Aschaffenburg/Germany
Kontaktdaten: ICQ Website

13. Aug 2006, 16:45

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

Joachim.Dörr
Beiträge: 1403
Registriert: 7. Apr 2006, 01:49
Kontaktdaten: ICQ Website

14. Aug 2006, 19:43

ok werds mir mal anschauen.
lg
joachim

Ovomat
Beiträge: 13
Registriert: 23. Aug 2006, 00:55
Kontaktdaten: ICQ

Probleme...

23. Aug 2006, 01:02

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

Joachim.Dörr
Beiträge: 1403
Registriert: 7. Apr 2006, 01:49
Kontaktdaten: ICQ Website

1. Sep 2006, 11:49

wo hast du denn deine ttf datei hingelegt?

lg
joachim

Joachim.Dörr
Beiträge: 1403
Registriert: 7. Apr 2006, 01:49
Kontaktdaten: ICQ Website

1. Sep 2006, 11:50

hast du auch die funktion eingebunden?

Joachim.Dörr
Beiträge: 1403
Registriert: 7. Apr 2006, 01:49
Kontaktdaten: ICQ Website

1. Sep 2006, 11:56

Ist auf dem Server GDLib installiert? und wie bist du vorgegangen.

lg
Joachim

Benutzeravatar
Markus.Staab
Entwickler
Beiträge: 9634
Registriert: 29. Jan 2005, 15:50
Wohnort: Aschaffenburg/Germany
Kontaktdaten: ICQ Website

1. Sep 2006, 13:44

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

Joachim.Dörr
Beiträge: 1403
Registriert: 7. Apr 2006, 01:49
Kontaktdaten: ICQ Website

1. Sep 2006, 19:34

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

Joachim.Dörr
Beiträge: 1403
Registriert: 7. Apr 2006, 01:49
Kontaktdaten: ICQ Website

1. Sep 2006, 19:45

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

Zurück zu „Allgemeines [R3]“