neues Hauptmenü - Vollständige Anleitung

ekke
Beiträge: 130
Registriert: Mi 18. Sep 2002, 18:26

Beitrag von ekke » Fr 25. Okt 2002, 20:46

ja, sehe ich gerade auch, hatte Leerzeichen schon gelöst, in ein paar Tagen müßte ich das haben. Der Einsatz war bis jetzt englisch, da gibt es sowas nicht.

Ein wenig Geduld, viel kann es nicht sein,

Gruss ekke

ekke
Beiträge: 130
Registriert: Mi 18. Sep 2002, 18:26

Demo_left.php für Sonderzeichen

Beitrag von ekke » Fr 25. Okt 2002, 23:35

Code: Alles auswählen


<?php 
include("config.php"); 
include($ContenidoPath."inc/config.php"); 

page_open( 
array("sess" => "Contenido_Session", 
"auth" => "Contenido_Frontend_Challenge_Crypt_Auth", 
"perm" => "Contenido_Perm")); 

include($ContenidoPath.$cfgPathInc."cfg_sql.inc.php"); 


$db = new DB_Contenido; 


?> 

<html> 

<head> 

<script language="JavaScript"> 
function moveit(place1, place2) { 
if (parent.frames[1].location.href != place1) { 
parent.frames[1].location.href = place1; 
} 
if (parent.frames[2].location.href != place2) { 
parent.frames[2].location.href = place2; 
} 
} 
</script> 


<style> 
<!-- 
a {font-size: 11px; color: black; font-family: Verdana; text-decoration: none} 

--> 
</style> 


</head> 
<body BACKGROUND="img_site/bg.gif" bgproperties="FIXED"> 



<?php 
// Gruppen einlesen // 

$sql = "SELECT A.idcat, A.parentid, A.preid, A.postid, B.name, B.public, B.visible, C.level FROM $cfgTab_cat AS A, $cfgTab_cat_lang AS B, $cfgTab_cat_tree AS C WHERE A.idcat=B.idcat AND B.idcat=C.idcat AND A.idclient='$client' AND B.idlang='$lang'"; 
$db->query($sql); 
while($db->next_record()){ 
$con_tree[$db->f("idcat")][parent] = $db->f("parentid"); 
$con_tree[$db->f("idcat")][preid] = $db->f("preid"); 
$con_tree[$db->f("idcat")][postid] = $db->f("postid"); 
$con_tree[$db->f("idcat")][titel] = $db->f("name"); 
$con_tree[$db->f("idcat")][public] = $db->f("public"); 
$con_tree[$db->f("idcat")][visible] = $db->f("visible"); 
$con_tree[$db->f("idcat")][level] = $db->f("level"); 
$con_tree[$db->f("idcat")][link] = $sess->url("front_content.php?client=".$client."&lang=".$lang."&parent=".$db- >f("parentid")."&idcat=".$db->f("idcat").""); 
if($db->f("idcat") > $con_tree_max){$con_tree_max = $db->f("idcat");} 
}; 

//-----------------------------------------------------------------------------// 
$nav_start = "1"; // Startbaum festlegen 
$nav_col_out = "#6699FF"; // Zellfarbe normal 
$nav_col_over = "#9999FF"; // Zellfarbe Mouse-Over 
$nav_col_back = "#6600FF"; // Hintergrundfarbe (Einzug) 
//$nav_col_on = "font13"; // Farbmarkierung aktiv 
//$nav_col_off = "font11"; // Farbmarkierung passiv 
$nav_col_on = "FF5A00"; // Farbmarkierung aktiv 
$nav_col_on_hover = "#3FF200"; // Farbmarkierung aktiv hover 
$nav_col_off = "9C9C9C"; // Farbmarkierung passiv 
$nav_col_off_hover = "#0005E0"; // Farbmarkierung passiv hover 
$nav_button_folder = "img_site/menubuttons/"; // Ort der Buttons 
$nav_button_img_ext = ".png"; // Art der Buttons 
$bg = "#BEBCF0"; // Hintergrundfarbe Buttons 


//-----------------------------------------------------------------------------// 


// offenen Pfad finden // 
$nav_path = array(); $nav_tree = array(); 
$tmp_idcat = $idcat; 
while($tmp_idcat > 0){ 
array_push($nav_path, $tmp_idcat); 
$tmp_idcat = $con_tree[$tmp_idcat][parent]; 
}; 
$nav_path = array_reverse($nav_path); 
// gegen Verlassen des Baumes schützen: 
if($nav_path[0] != $nav_start){$nav_path = array($nav_start);}; 
// Baum sortieren // 
for($i = 0;$i < sizeof($nav_path);$i++){ 
$tmp_found=0; 
for($nr = 0; $nr <= $con_tree_max; $nr++){ 
if($con_tree[$nr][parent] == $nav_path[$i] && $con_tree[$nr][preid] == '0'){$tmp_found=1;break;} 
} 
unset($tmp_level);$tmp_level = array(); 
do{ 
array_push($tmp_level , $nr); 
$nr = $con_tree[$nr][postid]; 
} while($nr != '0' && $tmp_found==1); 
if($i == 0){$nav_tree = $tmp_level;} 
else { 
$x = array_search("$nav_path[$i]", $nav_tree); 
array_splice($nav_tree, $x+1, 0, $tmp_level); 
}; 
}; 
// Baum ausgeben // 

echo "<table width=\"160\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\">\n"; 

foreach($nav_tree as $nr){ 

if(($con_tree[$nr][public] == '1' or $auth->auth["uid"] != "nobody") and $con_tree[$nr][visible] == '1'){ 
unset($mod_space);$mod_space = array(); 
$mod_space = array_pad($mod_space,($con_tree[$nr][level] - 1),"&nbsp;&nbsp;"); 
echo "<tr><td valign=\"top\" nowrap>".implode("",$mod_space); 


echo "<a href=\"".$con_tree[$nr][link]."\" target=\"main\" onClick=\"moveit('demo_left.php?idcat=$nr')\""; 






if($nr == $idcat){
      $nav_button_image = $nav_button_folder.md5($con_tree[$nr][titel]).$nav_col_on.$nav_button_img_ext;
                  if (!file_exists ($nav_button_image)) {
                  MakeImage ($bg, $nav_col_on, $con_tree[$nr][titel], $nav_button_image, $nav_button_img_ext);
                  }
      $nav_button_img_hover = $nav_button_folder.md5($con_tree[$nr][titel]).$nav_col_on_hover.$nav_button_img_ext;
                  if (!file_exists ($nav_button_img_hover)) {
                  MakeImage ($bg, $nav_col_on_hover, $con_tree[$nr][titel], $nav_button_img_hover, $nav_button_img_ext);
                  }
} else {
      $nav_button_image = $nav_button_folder.md5($con_tree[$nr][titel]).$nav_col_off.$nav_button_img_ext;
                   if (!file_exists ($nav_button_image)) {
                   MakeImage ($bg, $nav_col_off, $con_tree[$nr][titel], $nav_button_image, $nav_button_img_ext);
                   }
      $nav_button_img_hover = $nav_button_folder.md5($con_tree[$nr][titel]).$nav_col_off_hover.$nav_button_img_ext;
                   if (!file_exists ($nav_button_img_hover)) {
                   MakeImage ($bg, $nav_col_off_hover, $con_tree[$nr][titel], $nav_button_img_hover, $nav_button_img_ext);
                   }

}; 

echo " onMouseOut=\"MM_swapImgRestore()\" onMouseOver=\"MM_swapImage('".$nav_button_image."','','".$nav_button_img_hover."',1)\""; 
echo ">"; 
echo "<img name=\"".$nav_button_image."\" src=\"".$nav_button_image."\" border=\"0\"alt=\"".$con_tree[$nr][titel]."\"></a>"; 
echo "</td></tr>\n"; 

}; 
}; 
unset($nav_tree);unset($nav_path); 
echo "</table>"; 

function ConvertColor($hexVal){ 
$ColorVal = array(3); 
for($i = 0; $i < 3; $i++) 
$ColorVal[$i] = HexDec(substr($hexVal, $i * 2, 2)); 
return $ColorVal; 
} 
function MakeImage($bg, $fg, $txt, $image, $nav_button_img_ext){ 
$width = 140; 
$offset = 20; 
$imgFRAME = ImageCreate($width, $offset); 

list($red, $green, $blue) = ConvertColor($bg); 
$bgCOLOR = ImageColorAllocate($imgFRAME, $red, $green, $blue); 

list($red, $green, $blue) = ConvertColor($fg); 
$fgCOLOR = ImageColorAllocate($imgFRAME, $red, $green, $blue); 

imagettftext($imgFRAME, 10,0,2,15,$fgCOLOR,"ttf/verdana.ttf",$txt); 
if ($nav_button_img_ext == ".png") { 
ImagePng($imgFRAME, $image); 
} 
if ($nav_button_img_ext == ".gif") { 
ImageGif($imgFRAME, $image); 
} 
if ($nav_button_img_ext == ".jpg") { 
ImageJPG($imgFRAME, $image); 
} 
ImageDestroy($imgFRAME); 
} 
?> 


</body> 
</html>


Gruss ekke

ekke
Beiträge: 130
Registriert: Mi 18. Sep 2002, 18:26

front_single_Nav ins Layout:

Beitrag von ekke » Fr 25. Okt 2002, 23:38

Code: Alles auswählen

<?php 
//-----------------------------------------------------------------------------// 
$nav_start = "3"; // Startbaum festlegen 
//$nav_col_out = "#6699FF"; // Zellfarbe normal 
//$nav_col_over = "#9999FF"; // Zellfarbe Mouse-Over 
//$nav_col_back = "#6600FF"; // Hintergrundfarbe (Einzug) 
//$nav_col_on = "font13"; // Farbmarkierung aktiv 
//$nav_col_off = "font11"; // Farbmarkierung passiv 
$nav_col_on = "FF0000"; // Farbmarkierung aktiv 
$nav_col_on_hover = "CCCCCC"; // Farbmarkierung aktiv hover 
$nav_col_off = "000000"; // Farbmarkierung passiv 
$nav_col_off_hover = "CCCCCC"; // Farbmarkierung passiv hover 
$nav_button_folder = "img_site/menubuttons/"; // Ort der Buttons 
$nav_button_img_ext = ".png"; // Art der Buttons je nach Provider/gdlib: .png, .gif, .jpg 
$bg = "FFFFFF"; // Hintergrundfarbe Buttons 

//-----------------------------------------------------------------------------// 


// offenen Pfad finden // 
$nav_path = array(); $nav_tree = array(); 
$tmp_idcat = $idcat; 
while($tmp_idcat > 0){ 
 array_push($nav_path, $tmp_idcat); 
 $tmp_idcat = $con_tree[$tmp_idcat][parent]; 
}; 
$nav_path = array_reverse($nav_path); 
// gegen Verlassen des Baumes schützen: 
if($nav_path[0] != $nav_start){$nav_path = array($nav_start);}; 
// Baum sortieren // 
for($i = 0;$i < sizeof($nav_path);$i++){ 
 $tmp_found=0; 
 for($nr = 0; $nr <= $con_tree_max; $nr++){ 
  if($con_tree[$nr][parent] == $nav_path[$i] && $con_tree[$nr][preid] == '0'){$tmp_found=1;break;} 
 } 
 unset($tmp_level);$tmp_level = array(); 
 do{ 
  array_push($tmp_level , $nr); 
  $nr = $con_tree[$nr][postid]; 
 } while($nr != '0' && $tmp_found==1); 
 if($i == 0){$nav_tree = $tmp_level;} 
 else { 
  $x = array_search("$nav_path[$i]", $nav_tree); 
  array_splice($nav_tree, $x+1, 0, $tmp_level); 
 }; 
}; 
// Baum ausgeben // 

echo "<table cellspacing=\"0\" cellpadding=\"0\" border=\"0\">\n"; 
foreach($nav_tree as $nr){ 

  if(($con_tree[$nr][public] == '1' or $auth->auth["uid"] != "nobody") and $con_tree[$nr][visible] == '1'){ 
unset($mod_space);$mod_space = array(); 
  $mod_space = array_pad($mod_space,($con_tree[$nr][level] - 1),"&nbsp;&nbsp;"); 
  echo "<tr><td valign=\"top\" nowrap>".implode("",$mod_space); 

  echo "<a href=\"".$con_tree[$nr][link]."\""; 

   
if($nr == $idcat){
      $nav_button_image = $nav_button_folder.md5($con_tree[$nr][titel]).$nav_col_on.$nav_button_img_ext;
                  if (!file_exists ($nav_button_image)) {
                  MakeImage ($bg, $nav_col_on, $con_tree[$nr][titel], $nav_button_image, $nav_button_img_ext);
                  }
      $nav_button_img_hover = $nav_button_folder.md5($con_tree[$nr][titel]).$nav_col_on_hover.$nav_button_img_ext;
                  if (!file_exists ($nav_button_img_hover)) {
                  MakeImage ($bg, $nav_col_on_hover, $con_tree[$nr][titel], $nav_button_img_hover, $nav_button_img_ext);
                  }
} else {
      $nav_button_image = $nav_button_folder.md5($con_tree[$nr][titel]).$nav_col_off.$nav_button_img_ext;
                   if (!file_exists ($nav_button_image)) {
                   MakeImage ($bg, $nav_col_off, $con_tree[$nr][titel], $nav_button_image, $nav_button_img_ext);
                   }
      $nav_button_img_hover = $nav_button_folder.md5($con_tree[$nr][titel]).$nav_col_off_hover.$nav_button_img_ext;
                   if (!file_exists ($nav_button_img_hover)) {
                   MakeImage ($bg, $nav_col_off_hover, $con_tree[$nr][titel], $nav_button_img_hover, $nav_button_img_ext);
                   }

}; 

  echo " onMouseOut=\"MM_swapImgRestore()\"  onMouseOver=\"MM_swapImage('".$nav_button_image."','','".$nav_button_img_hover."',1)\""; 
  echo ">"; 
echo "<img name=\"".$nav_button_image."\" src=\"".$nav_button_image."\" border=\"0\"alt=\"".$con_tree[$nr][titel]."\"></ a>"; 
echo "</td></tr>\n"; 

 }; 
}; 
unset($nav_tree);unset($nav_path); 
echo "</table>"; 

function ConvertColor($hexVal){ 
  $ColorVal = array(3); 
  for($i = 0; $i < 3; $i++) 
   $ColorVal[$i] = HexDec(substr($hexVal, $i * 2, 2)); 
  return $ColorVal; 
 } 
  function MakeImage($bg, $fg, $txt, $image, $nav_button_img_ext){ 
 $width = 200; 
 $offset = 10; 
$imgFRAME = ImageCreate($width, $offset); 

 list($red, $green, $blue) = ConvertColor($bg); 
 $bgCOLOR = ImageColorAllocate($imgFRAME, $red, $green, $blue); 

 list($red, $green, $blue) = ConvertColor($fg); 
 $fgCOLOR = ImageColorAllocate($imgFRAME, $red, $green, $blue); 

imagettftext($imgFRAME, 12,0,2,15,$fgCOLOR,"ttf/verdana.ttf",$txt); 
if ($nav_button_img_ext == ".png") { 
 ImagePng($imgFRAME, $image); 
 } 
 if ($nav_button_img_ext == ".gif") { 
 ImageGif($imgFRAME, $image); 
 } 
 if ($nav_button_img_ext == ".jpg") { 
 ImageJPG($imgFRAME, $image); 
 } 
 ImageDestroy($imgFRAME); 
} 
?>

Gruss ekke

jacke
Beiträge: 303
Registriert: Mi 25. Sep 2002, 19:37
Kontaktdaten:

Beitrag von jacke » Do 21. Nov 2002, 17:13

Hallo, hab gerade ein Prob und weiß nicht wo ich suchen soll.

Ich kann Farbe einstellen wie ich will, es ändert sich nichts. Die Schrift ist auch weg, so dass die Knöpche nackig sind. Hab für die Seite den Provider canssl. Ich habe gedacht der kann vielleicht keine .png und hab im Menu auf .gif umgestellt - dann ing nichts mehr.

Gibt es schon eine Lösung für die Umlaute und Leerzeichen?

www.hausentwurf.de/cms/frontend2

Gruß

Jacke

ekke
Beiträge: 130
Registriert: Mi 18. Sep 2002, 18:26

Beitrag von ekke » Do 21. Nov 2002, 18:02

hallo jacke,

>Hab für die Seite den Provider canssl.

Leg mal ein phpinfo.php drauf
oder schaue nach ob du :gd mit FreeType Support
enabled

FreeType Linkage
with TTF library

drin hast. Sonst zieht er die ttf nicht.

> Ich habe gedacht der kann vielleicht keine .png und hab im Menu auf .gif >umgestellt - dann ing nichts mehr.
Die Bilder werden gecached, also immer jedesmal manuel löschen nach einer veränderung.


>Gibt es schon eine Lösung für die Umlaute und Leerzeichen?

ist das letzte posting. geht.

Gruss ekke

jacke
Beiträge: 303
Registriert: Mi 25. Sep 2002, 19:37
Kontaktdaten:

Beitrag von jacke » Fr 22. Nov 2002, 11:11

Morgen,
Hab das letzte Posting eingefügt und ein phpinfo draufgelegt hier der Auszug:

GD Support enabled
GD Version 2.0 or higher
FreeType Support enabled
FreeType Linkage with freetype
T1Lib Support enabled
JPG Support enabled
PNG Support enabled
WBMP Support enabled

leider funzt es immer noch nicht mit der Schrift, nur nackig,weiße Knöpsche.

Jacke

ekke
Beiträge: 130
Registriert: Mi 18. Sep 2002, 18:26

Beitrag von ekke » Fr 22. Nov 2002, 11:30

$nav_start = "3"; // Startbaum festlegen
auf
$nav_start = "1"; // Startbaum festlegen
stellen
grundlage ist svens menü.
gruss ekke

jacke
Beiträge: 303
Registriert: Mi 25. Sep 2002, 19:37
Kontaktdaten:

Beitrag von jacke » Fr 22. Nov 2002, 11:35

Sehe gerade warum es nicht funzt:

FreeType Linkage with freetype

wie kann ich das umstellen auf "with TTF library" oder ist das Providersache?


Jacke

John
Beiträge: 7
Registriert: Do 17. Okt 2002, 16:01
Kontaktdaten:

Re: neues Hauptmenü - Vollständige Anleitung

Beitrag von John » Di 26. Nov 2002, 17:15

Hallo Sven (oder auch andere),

sehe ich das richtig, dass sich dieses Hauptmenü nur einsetzen lässt, wenn man einen ganzen Baum abbilden will?
Mein Problem ist, dass ich die obersten Strukturpunkte an einer anderen Stelle haben will, als die jeweiligen Unterpunkte. Beim Klicken auf einen Hauptpunkt soll sich dann aber das Untermenü an einer anderen Stelle öffnen und weitere Unterspunkte dann so eingerückt dargestellt werden wie in Deinem Menü. Evt. könnte man dies mit einem eigenen Baum für jeden Unterpunkt lösen, dass fände ich aber eher unschön. Meinst Du, Dein Menü lässt sich soweit abändern, dass es auch in einer tieferen Ebene beginnen kann, trotzdem aber auch noch weitere, darunter befindiche Ebenen mit abbildet?
Vielleicht hast Du Dich damit ja schonmal beschäftigt und kannst mir Tipps geben.
Danke und Gruß,
John

Sven777b
Beiträge: 503
Registriert: Mi 18. Sep 2002, 00:00
Wohnort: Sachsen
Kontaktdaten:

Beitrag von Sven777b » Di 26. Nov 2002, 17:32

über die Variable $nav_start legst du fest, wo der baum beginnen soll.
Wenn du also bei deiner oberen Navigation bei jedem Link noch nav_start=$idcat übergibst (z.b.) und in meinem Hauptmenü die Zeile $nav_start = 3; entfernst, sollte es gehen.

ich weiß ja nun nicht so richtig , wie deine obere Navigation aufgebaut ist. Jedenfalls legst du über $nav_start den Startpunkt fest. Wenn du sicher stellst, das diese Variable immer den richtigen Wert enthält, ist das kein Problem.
Module zum anschauen:
bei Sven: http://contenido-module.de
bei Pulk : http://spielwiese.pulk.net

Der-Dirigent: http://der-dirigent.de

John
Beiträge: 7
Registriert: Do 17. Okt 2002, 16:01
Kontaktdaten:

Beitrag von John » Mi 27. Nov 2002, 11:27

Hallo Sven,

danke für Deinen Tipp. Leider konnte ich ihn bisher nicht umsetzen...
Ich versuche, dass Problem nochmal genauer zu beschreiben:
Ich habe eine erste Ebene (Punkte 1,2 und 3). Dort sind die Links auf Bilder gelegt, es kommt also kein Navi-Modul zum Einsatz sondern das normale Link-Modul. Darunter kommt eine zweite Ebene, also z.B. für Punkt 1 a,b und c. Diese werden an einer anderen Stelle über das normale Navigationsmodul angezeigt. Beim Klick auf einen der Punkte a,b oder c öffnet sich wieder an einer anderen Stelle das entsprechende Untermenü mit den Punkten I,II,III usw. Das klappt auch. Wenn jetzt aber I nochmal zwei Unterpunkte hat, öffnen die sich nicht, wenn ich auf I klicke. Wenn ich die idcat von Punkt a als nav_start übergebe auch nicht. Wenn ich allerdings die idcat von I übergebe, werden die Unterpunkte angezeigt, aber die Punkte I,II,III usw. sind nicht mehr da. Es ändert sich also nichts an dem Problem, dass nur eine Ebene angezeigt wird.
Ich hoffe, dass Problem ist jetzt klarer, bzw. dass ich nicht nur Deine Lösung nicht verstanden habe :?

Daniel
Beiträge: 1
Registriert: Mi 1. Jan 2003, 17:31
Kontaktdaten:

Hauptmenue -Startpunkt-

Beitrag von Daniel » Mi 1. Jan 2003, 17:59

Hallo zusammen

Erst mahl ein grosses Lob an alle Mitwirkenden. Supper Arbeit.

Meine Frage:

Kann es sein, das für die Erweiterung "Hauptmenue", für alle Navigationspukte auch ein seperates Layout erstellt werden muss?
Bei mir sind die Einträge unter dem selben Stamm mit z.B. idcat=3, idcat=6, idcat=19.. usw. :?:

Im Layout wird ja der Nav-Startpunkt festgelegt.

Vielen Dank für eine Antwort.

Sven777b
Beiträge: 503
Registriert: Mi 18. Sep 2002, 00:00
Wohnort: Sachsen
Kontaktdaten:

Beitrag von Sven777b » Mi 1. Jan 2003, 18:22

@John: in dem Falle nutzt dir das hauptmenü nix - weil dieses rekursiv nach OBEN arbeitet. Es stellt also keinen voll geöffneten Baum dar - sondern nur alles von nav_start bis zur aktellen Kategorie. Wobei noch der Unterpunkte der aktuellen Kategorie angezeigt werden - aber nicht mehr.
Man müsste für deinen Fall ein spezielles Menü schreiben.

@Daniel: nav_start gibt den Zweig ÜBER dem ersten anzuzeigenden Punkt an. Also in deinem Falle sind idcat=3, 6 und 19 doch bestimmt noch einem Hauptpunkt zugeordnet - also einem Baum (idcat = 1)
Wenn die genannten Kategorien aber alles eigene Bäume sind, kannst du diese Navi nicht einsetzen - weil diese keine Strukturbäume anzeigt.
Module zum anschauen:
bei Sven: http://contenido-module.de
bei Pulk : http://spielwiese.pulk.net

Der-Dirigent: http://der-dirigent.de

pulk
Beiträge: 217
Registriert: Sa 2. Nov 2002, 09:57
Kontaktdaten:

Beitrag von pulk » So 12. Jan 2003, 18:53

Sven777b hat geschrieben:Wenn die genannten Kategorien aber alles eigene Bäume sind, kannst du diese Navi nicht einsetzen - weil diese keine Strukturbäume anzeigt.
gibt es eine navi die das kann ?

Sven777b
Beiträge: 503
Registriert: Mi 18. Sep 2002, 00:00
Wohnort: Sachsen
Kontaktdaten:

Beitrag von Sven777b » So 12. Jan 2003, 19:27

gibt es eine navi die das kann ?
kurz: IMHO noch nicht - aber das kann man ja ändern ;) ich hab nur momentan absolut keine Zeit irgendwas für Contenido zu tun - leider
Module zum anschauen:
bei Sven: http://contenido-module.de
bei Pulk : http://spielwiese.pulk.net

Der-Dirigent: http://der-dirigent.de

Gesperrt