[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
Bilder Links - 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/
Susanne
Beiträge: 15
Registriert: 15. Okt 2004, 17:54
Kontaktdaten: Website

Bilder Links

11. Apr 2006, 14:17

Hallo,
altes Problem, wieder neu.
Ich hatte schon früher (noch auf Redaxo 2.7) durch die Hilfe von Jan (danke nochmals :)) bei meiner Website http://www.susannewarnichtfrei.net/index_redaxo.php das die Textlinks durch automatisch generierte Bildlinks ersetzt. Eine Folgeseite http://www.susannewarnichtfrei.net/inde ... 882cc4007f. Die Seite läuft derweil nur im Hintergrund, deswegen stimmt die index.php nicht mehr.
Das wurde gemacht durch folgenden code der in der navigation steht:

Code: Alles auswählen

<?

// PFAD AUSLESEN
$cat_id = $this->getValue("category_id");
$path = explode("-",$this->getValue("path"));
$showpath = "/ <a href=index.php?article_id=8 class=white>Home</a>";
$cat1 = current($path)+0;
next($path);
$cat2 = current($path)+0;
next($path);
$cat3 = current($path)+0;


// 1. NAVI
$NAV1 = "";
$NAV1COUNTER = 0;
$cat_id = 0;
@include $REX[INCLUDE_PATH]."/generated/categories/$cat_id.list.category";
$NAV = $REX[RECAT][$cat_id];
for ($i=0;$i<count($NAV);$i++)
{
	$id = current($NAV);
	$aid = $REX[CAT][$id][article_id];
	$name = $REX[CAT][$id][name];
	$name2 = $REX[CAT][$id][name];
	$bildname = $REX[CAT][$id][article_id]."_a.png";

$height = createImage(
	$name2,
	$REX[INCLUDE_PATH]."/../../pics/font/MyriadPro-Bold.otf",
	$REX[INCLUDE_PATH]."/../../pics/mainnavi/$bildname",
	8,	//schriftgrösse
	50,
	12, //höhe der datei
	83, //breite der datei
	9,
	"white",
	"green");
	
	if ($i==0) $NAV1 .= "<table width=100% cellpadding=0 cellspacing=0 border=0>";
	@include $REX[INCLUDE_PATH]."/generated/articles/$aid.article";

	if ($cat2==$id and $REX[CAT][$id][status]==1)
	{
		$NAV1 .= "<tr><td width=10><img src=$REX[HTDOCS_PATH]pics/catnavi/pic.gif width=10 height=17 border=0></td><td><a href=index.php?article_id=$aid><img src=$REX[HTDOCS_PATH]pics/mainnavi/$bildname width=83 height=12 border=0></a></td></tr>";
		$NAV1COUNTER++;
	}elseif ($REX[CAT][$id][status]==1)
	{
		$NAV1 .= "<tr><td width=10><img src=$REX[HTDOCS_PATH]pics/catnavi/pic2.gif width=10 height=17 border=0></td><td><a href=index.php?article_id=$aid><img src=$REX[HTDOCS_PATH]pics/mainnavi/$bildname width=83 height=12 border=0></a></td></tr>";
		$NAV1COUNTER++;
	}
	if (($i+1)==count($NAV)) $NAV1 .= "</table>";
	next($NAV);
}



// 2. NAVI
$NAV2 = "<table width=100% cellpadding=0 cellspacing=0 border=0><tr><td valign=top>";
$NAV2COUNTER = 0;
$cat_id = $cat2;
@include $REX[INCLUDE_PATH]."/generated/categories/$cat_id.list.category";
$NAV = $REX[RECAT][$cat_id];
for ($i=0;$i<count($NAV);$i++)
{
	$id = current($NAV);
	$aid = $REX[CAT][$id][article_id];
	$name = $REX[CAT][$id][name];
	$name2 = $REX[CAT][$id][name];
	$bildname = $REX[CAT][$id][article_id]."_a.png";

$height = createImage(
	$name2,
	$REX[INCLUDE_PATH]."/../../pics/font/MyriadPro-Bold.otf",
	$REX[INCLUDE_PATH]."/../../pics/subnavi/$bildname",
	8,	//schriftgrösse
	50,
	12,
	93,
	9,
	"white",
	"green");
	

	if ($i==0) $NAV2 .= "<table width=100% cellpadding=0 cellspacing=0 border=0>";
	@include $REX[INCLUDE_PATH]."/generated/articles/$aid.article";
	if ($cat3==$id and $REX[CAT][$id][status]==1)
	{
		$NAV2 .= "<tr><td width=10><img src=$REX[HTDOCS_PATH]pics/catnavi/pic_weiter.gif width=10 height=17 border=0></td><td><a href=index.php?article_id=$aid><img src=$REX[HTDOCS_PATH]pics/subnavi/$bildname width=93 height=12 border=0></a></td></tr>";
		$NAV2COUNTER++;
	}elseif ($REX[CAT][$id][status]==1)
	{
		$NAV2 .= "<tr><td width=10 align=center><img src=$REX[HTDOCS_PATH]pics/catnavi/pic2.gif width=10 height=17 border=0></td><td><a href=index.php?article_id=$aid><img src=$REX[HTDOCS_PATH]pics/subnavi/$bildname width=93 height=12 border=0></a></td></tr>";
		$NAV2COUNTER++;
	}
	if ($NAV1COUNTER<=$NAV2COUNTER)
	{
		$NAV2 .= "</table></td><td valign=top><table width=100% cellpadding=0 cellspacing=0 border=0>";
		$NAV2COUNTER = 0;	
	}
	if (($i+1)==count($NAV)) $NAV2 .= "</table>";
	next($NAV);
}
$NAV2 .= "</td></tr></table>";

echo "<table cellpadding=0 cellspacing=0 border=0><tr><td valign=top>$NAV1</td><td valign=top width=10 background=$REX[HTDOCS_PATH]pics/catnavi/trennline.gif>&nbsp;</td><td valign=top>$NAV2</td></tr></table>";

echo "<br><br>";

?>
Nun bastel ich gerade an einer Website für ein Plattenlabel http://www.wald-entertainment.com. Hierfür möchte ich Redaxo 3.1 verwenden. Und jetzt versuche ich das Skript auf diese Navigation anzupassen.

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) {
      
   if ($lev1->isOnline(true)):
      if ($lev1->getId() == $path1) {
         $nav .= '<li class="active"><a class="current" href="'.$lev1->getUrl().'">'.$lev1->getName().'</a>';
      }
      // 2nd level - no active link
      else {
         $nav .= '<li><a href="'.$lev1->getUrl().'">'.$lev1->getName().'</a>';
      }
         
      // 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)) {
                  // 2nd level - active link
                  if ($lev2->getId() == $path2) {
                     $nav .= '<li class="active"><a class="current" href="'.$lev2->getUrl().'">'.$lev2->getName().'</a>';
                  }
                  // 2nd level - no active link
                  else {
                     $nav .= '<li><a href="'.$lev2->getUrl().'">'.$lev2->getName().'</a>';
                  }
                  
                  // 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)) {
                              // 3rd level - active link
                              if ($lev3->getId() == $path3) {
                                 $nav .= '<li class="active"><a class="current" href="'.$lev3->getUrl().'">'.$lev3->getName().'</a></li>';
                              }
                              // 3rd level - no active link
                              else {
                                 $nav .= '<li><a href="'.$lev3->getUrl().'">'.$lev3->getName().'</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;
?> 
Derweil ersichtlich auf http://www.wald-entertainment.com/cms.
Das ganze sollte irgendwann so aussehen.
http://www.susannewarnichtfrei.net/blog/entwurf.jpg
http://www.susannewarnichtfrei.net/blog ... klappt.jpg

Der Hintergrund soll wahrscheinlich random sein. oder ich mach verschiedene Templates. Das ist aber derzeit noch nicht wichtig.

So lange Rede, kurzer Sinn:
Weiss jemand Rat? Oder hat jemand einen Anstoß in die richtige Richtung, auch ein Arschtritt wäre mir recht?

Danke
Hans von der Susanne

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

11. Apr 2006, 14:22

Hi Hans von der Susanne ;),

schau mal ob du hiermit was anfangen kannst:
http://www.redaxo.de/165-Moduldetails.html?module_id=89

Die dort verwendete Funktion musst du allerdings noch in das Modul einfügen, da dieser Seit 3.2 nicht mehr in REDAXO enthalten ist. Falls du REDAXO 3.0/3.1 verwendest, sollte das ohne probleme gehen.

Die Funktion findest du im CVS:


Gruß,
Markus

Susanne
Beiträge: 15
Registriert: 15. Okt 2004, 17:54
Kontaktdaten: Website

jaaaa

11. Apr 2006, 18:13

super es funktioniert. zumindest das umwandeln des textes in bildlinks funktioniert. jetzt muss ich mal alles anpassen.
vielen dank.

Susanne
Beiträge: 15
Registriert: 15. Okt 2004, 17:54
Kontaktdaten: Website

11. Apr 2006, 20:57

hallo nochmal,
es geht eigentlich ganz gut voran, nur weiss ich bei createImage grad nicht weiter:

Code: Alles auswählen

createImage($text,$thisfont,$REX[INCLUDE_PATH]."/../../pics/navi/$picname",27,0,20,"exact",18,$bgcolor,$textcolor,1);
damit wird mein bild generiert, die 1 nach dem $textcolor schiebt die Schrift um einen pixel vom linken rand weg. weiss jemand wo ich das einfügen muss, damit es auch einen pixel vom rechten rand wegrückt?

www.wald-entertainment.com/cms

danke hans

Susanne
Beiträge: 15
Registriert: 15. Okt 2004, 17:54
Kontaktdaten: Website

12. Apr 2006, 21:35

habs mittlerweile selber hingekriegt.
hab einfach in der function_rex_image.inc.php den wert für $width erhöht.
gruss

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

9. Jun 2006, 13:46

Hallo Susanne, könntest du mal den Code deines Templates posten?

hat du das mit Redaxo V 3.2 oder V.3.1 verwirklicht?

lg
Joachim

Susanne
Beiträge: 15
Registriert: 15. Okt 2004, 17:54
Kontaktdaten: Website

15. Jun 2006, 21:26

Also, hier der Code für die Bild-Navigation für Redaxo 3.1. Ich weiss es zwar nicht genau, aber ich schätz mal sie funktioniert auch mit 3.2. Diese unterstützt eine Navigation mit 2 Ebenen. Ist wahrscheinlich nicht wahnsinnig schön und sauber. Aber es funktioniert. :)
Gruss
Hans von der Susanne

Code: Alles auswählen

<?php
// EXPLODE PATH
$PATH = explode("|",$this->getValue("path").$this->getValue("article_id")."|");

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


/* START 1st level categories */
$nav .= '<ul class="nav1st">';
foreach (OOCategory::getRootCategories() as $lev1) {

$name = ereg_replace("([^_A-Za-z0-9\.-])","","$lev1");
$text = $lev1->getName();
$bgcolor = "green";
$textcolor = "white";
$picname = $lev1->getId().".png";

$thisfont = $REX[INCLUDE_PATH]."/ttf/Wald_straight.ttf";

createImage($text,$thisfont,$REX[INCLUDE_PATH]."/../../pics/navi/$picname",21,0,20,"exact",18,$bgcolor,$textcolor,1);

   if ($lev1->isOnline(true)):
      if ($lev1->getId() == $path1) {
         $nav .= '<li class="active"><a class="current" href="'.$lev1->getUrl().'"><img src="pics/navi/'.$picname.'" title="'.$text.'" alt="'.$text.'" /></a>';
      }

      // 2nd level - no active link
      else {
         $nav .= '<li><a href="'.$lev1->getUrl().'"><img src="pics/navi/'.$picname.'" title="'.$text.'" alt="'.$text.'" /></a>';
      }
         
      // 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):

$name2 = ereg_replace("([^_A-Za-z0-9\.-])","","$lev2");
$text2 = $lev2->getName();
$bgcolor2 = "green";
$textcolor2 = "white";
$picname2 = $lev2->getId().".png";
$thisfont2 = $REX[INCLUDE_PATH]."/ttf/Wald_straight.ttf";

createImage($text2,$thisfont2,$REX[INCLUDE_PATH]."/../../pics/navi/$picname2",21,0,20,"exact",18,$bgcolor2,$textcolor2,1);

               if ($lev2->isOnline(true)) {
                  // 2nd level - active link
                  if ($lev2->getId() == $path2) {
                     $nav .= '<li class="active"><a class="current" href="'.$lev2->getUrl().'"><img src="pics/navi/'.$picname2.'" title="'.$text2.'" alt="'.$text2.'" /></a>';
                  }
                  // 2nd level - no active link
                  else {
                     $nav .= '<li><a href="'.$lev2->getUrl().'"><img src="pics/navi/'.$picname2.'" title="'.$text2.'" alt="'.$text2.'" /></a>';
                  }
                  
                  $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
?> 

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

15. Jun 2006, 21:41

Super vielen Dank - Werd das sofort mal testen :!:

grüße Joachim

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

4. Aug 2006, 16:59

und, funktionierts?

ich habe ein ähnliches "problem", einen kunden der unbedingt das von jemand anderen entworfene web-layout in einem cms intergriert haben will. und da gibt's dann diese cms-nono's wie eine navigation als geredenderte schriften (bilder).

jetzt bin ich am überlegen, entweder die navigation "statisch" in templates einzubauen und zu verlinken, oder eine dynamische lösung umzusetzen wie oben angeboten.

da der kunde aber nicht neue menues erstellen wird, sondern nur den content (news etc.) bearbeiten will, weiß ich nicht ob sich der aufwand für letzteres auszahlt.

Zurück zu „Allgemeines [R3]“