das sieht super aus, meine Frage:
Kann man das so automatisieren, dass es die Kategorien allein erstellt?
Das wäre echt cool, sonst isses super

Danke schon mal
Stephan
Code: Alles auswählen
<!-- JScript Menü-->
<script type="text/javascript" src="js/doiMenuDOM.js"></script>
<!-- JScript Menü -> Menüpunkte: -->
<script language="JavaScript">
<!--
CMS_CONTAINER[1]
//-->
</script>
<!-- JScript Menü -> Einstellungen -->
<script type="text/javascript" src="js/menu_settings.js">
</script>
Code: Alles auswählen
<div align="left"><!--DHTML NAVI--><script language="JavaScript">menue.Build();</script></div>
Code: Alles auswählen
// Auswahl Kategorie --> Beginn
/***********************************************
* CONTENIDO MODUL - INPUT
*
* Modulname : DHTML-Menü
* Author : Uli Steinle / D2MAC
* Copyright : stonecore media
* Created : 21-03-2004
* Modified : bestimmt bald
************************************************/
// selected category
$selected = "CMS_VALUE[0]";
echo "<table cellspacing=\"0\" cellpadding=\"10\" border=\"0\">
<tr valign=\"top\">
<td>Kategorie wählen:</td>
<td>
<select name=\"CMS_VAR[0]\">";
if($selected!="0" && $selected!=""){
echo"<option value=\"0\">--- kein ---</option>";
}else{
echo"<option selected=\"selected\" value=\"0\">--- kein ---</option>";
}
// fetch all categorys
$query = "SELECT A.idcat, A.level, C.name FROM ".$cfg["tab"]["cat_tree"]." AS A, ".
$cfg["tab"]["cat"]." AS B, ".$cfg["tab"]["cat_lang"]." AS C WHERE A.idcat=B.idcat ".
"AND B.idcat=C.idcat AND C.idlang='$lang' AND B.idclient='$client' ".
"AND C.visible=1 ORDER BY A.idtree";
// execute query
$db->query($query);
// loop result and build the options
while ($db->next_record()) {
// indent spacer
$spaces = "|";
// how many levels
$levels = $db->f("level");
for ($i = 0; $i < $levels; $i ++) {
// add 2 spaces for every level
$spaces = $spaces . "--";
} // end for
$spaces .= ">";
if ($selected == $db->f("idcat")) {
// selected category
echo "<option selected=\"selected\" value=\"". $db->f("idcat") ."\">". $spaces . $db->f("name") ."</option>";
} else {
// category
echo "<option value=\"". $db->f("idcat") ."\">". $spaces . $db->f("name") ."</option>";
} // end if
} // end while
echo " </select>";
echo " </td>
</tr>
</table>";
// Auswahl Kategorie <-- Ende
Code: Alles auswählen
<?
/***********************************************
* CONTENIDO MODUL - OUTPUT
*
* Modulname : DHTML-Menü
* Author : Uli Steinle / D2MAC
* Copyright : stonecore media
* Created : 21-03-2004
* Modified : bestimmt bald
************************************************/
include_once($cfg["path"]["contenido"].$cfg["path"]["includes"]."functions.con.php");
$catStart = "CMS_VALUE[0]";
echo "var menue = new TMainMenu('menue','vertical');\n";
if ($catStart != "") {
$catIds = conDeeperCategoriesArray($catStart);
if ( is_array($catIds) ) {
$tmp_counter = 0;
foreach($catIds as $key=>$val) {
if ($key != 0) {
$sql = "SELECT
CAT.idcat AS idcat, name ,parentid, level
FROM
".$cfg["tab"]["cat"]." AS CAT,
".$cfg["tab"]["cat_lang"]." AS CATLANG,
".$cfg["tab"]["cat_tree"]." AS CATLEVEL
WHERE
CAT.idcat = ".$val." AND
CAT.idcat = CATLANG.idcat AND
CATLANG.idlang = '$lang' AND
CATLANG.visible = '1' AND
CAT.idcat = CATLEVEL.idcat";
$db->query($sql);
//echo "/* \n".$sql."*/ \n";
//NH
$nh_db = new DB_Contenido;
while ( $db->next_record() ) {
$level = $db->f("level");
$name = $db->f("name");
$parent = $db->f("parentid");
$cat = $db->f("idcat");
$url = "front_content.php?idcat=$cat&lang=$lang";
$a="a";
/* NH---------------------------------------------*/
$nh_idcat=$cat;
$query2 = "SELECT ARTLANG.idartlang, ARTLANG.title FROM ".
$cfg["tab"]["cat"]." AS CAT, ".
$cfg["tab"]["cat_art"]." AS CATART, ".
$cfg["tab"]["art"]." AS ART, ".
$cfg["tab"]["art_lang"]." AS ARTLANG ".
"WHERE
CAT.idcat='$nh_idcat'
AND
CATART.idcat = CAT.idcat
AND
ART.idart = CATART.idart
AND
ART.idart = ARTLANG.idart
AND
ARTLANG.idlang = '$lang'
AND
ART.idclient = '$client'
AND
ARTLANG.online = '1' ";
$nh_db->query($query2);
if(!$nh_db->nf()){
$url = "";
$a = "";
}
/* NH END---------------------------------------------*/
switch ($level)
{
//level1
case (1):
echo "var paul=10;\n";
unset($count1);
unset($count2);
unset($count3);
unset($count4);
unset($count5);
unset($count6);
unset($count7);
unset($count8);
unset($count9);
$levels1 = 1+$count1++;
echo "var Menue_".$levels1." = new TPopMenu('".$name."','5','$a','".$url."','".$name."');\n";
echo "menue.Add(Menue_".$levels1.");\n\n";
break;
//level2
case (2):
echo "var paul2=20;\n";
$levels2=1+$count2++;
echo " var Menue_".$levels1."_".$levels2." = new TPopMenu('".$name."','5','$a','".$url."','".$name."');\n";
echo " Menue_".$levels1.".Add(Menue_".$levels1."_".$levels2.");\n\n";
break;
//level3
case (3):
$levels3=1+$count3++;
echo " var Menue_".$levels1."_".$levels2."_".$levels3." = new TPopMenu('".$name."','5','$a','".$url."','".$name."');\n";
echo " Menue_".$levels1."_".$levels2.".Add(Menue_".$levels1."_".$levels2."_".$levels3.");\n\n";
break;
//level4
case (4):
$levels4=1+$count4++;
echo " var Menue_".$levels1."_".$levels2."_".$levels3."_".$levels4." = new TPopMenu('".$name."','5','$a','".$url."','".$name."');\n";
echo " Menue_".$levels1."_".$levels2."_".$levels3.".Add(Menue_".$levels1."_".$levels2."_".$levels3."_".$levels4.");\n\n";
break;
//level5
case (5):
$levels5=1+$count5++;
echo " var Menue_".$levels1."_".$levels2."_".$levels3."_".$levels4."_".$levels5." = new TPopMenu('".$name."','5','$a','".$url."','".$name."');\n";
echo " Menue_".$levels1."_".$levels2."_".$levels3."_".$levels4.".Add(Menue_".$levels1."_".$levels2."_".$levels3."_".$levels4."_".$levels5.");\n\n";
break;
//level6
case (6):
$levels6=1+$count6++;
echo " var Menue_".$levels1."_".$levels2."_".$levels3."_".$levels4."_".$levels5."_".$levels6." = new TPopMenu('".$name."','5','$a','".$url."','".$name."');\n";
echo " Menue_".$levels1."_".$levels2."_".$levels3."_".$levels4."_".$levels5.".Add(Menue_".$levels1."_".$levels2."_".$levels3."_".$levels4."_".$levels5."_".$levels6.");\n\n";
break;
}
} // end while
} // if
} // end foreach
} // end if (is_array)
}
?>
Code: Alles auswählen
menue.SetPosition('relative',0,0);
menue.SetCorrection(0,0);
menue.SetCellSpacing(0);
menue.SetItemDimension(90,15);
menue._pop.SetItemDimension(90,15);
menue._pop.SetPaddings(2);
menue._pop.SetSeparator(125,'right','gray','');
menue._pop.SetExpandIcon(true,'',6);
menue._pop.SetFont('tahoma,verdana,arial','8pt');
menue._pop.SetBorder(1,'gray','solid');
menue._pop.SetDelay(500);
Code: Alles auswählen
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Familientag 2006</title>
<link rel="stylesheet" type="text/css" href="css/format.css">
<!-- JScript Menü-->
<script type="text/javascript" src="js/doiMenuDOM.js"></script>
<!-- JScript Menü -> Menüpunkte: -->
<script language="JavaScript">
<!--
var menue = new TMainMenu('menue','vertical');
//-->
</script>
<!-- JScript Menü -> Einstellungen -->
<script type="text/javascript" src="js/menu_settings.js">
</script>
<meta name="generator" content="CMS Contenido 4.4.4">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body topmargin="7" leftmargin="0">
<table align="center" cellspacing="0" cellpadding="0" border="0" width="770">
<tr>
<td><nobr>
<table cellspacing="0" cellpadding="0" align="center" height="90" width="770" border="0">
<tr>
<td background="images/_top1.jpg"></td>
</tr>
</table>
<table cellspacing="0" cellpadding="0" bgcolor="#00003F" height="15" width="770">
<tr>
<td align="right"><table cellpadding="0" cellspacing="0" border="0"><tr><td><img src="images/wuerfel.gif"></td><td height="15" class=".navigation" style=padding-left:7px; padding-right:7px;">
<a class="klein" target="_self" href="front_content.php?idcat=4">Home </a></td><td height="15" class=".navigation" style=padding-left:7px; padding-right:7px;">
<a class="klein" target="_self" href="front_content.php?idcat=5">Impressum </a></td><td height="15" class=".navigation" style=padding-left:7px; padding-right:7px;">
<a class="klein" target="_self" href="front_content.php?idcat=6">Kontakt </a></td><td height="15" class=".navigation" style=padding-left:7px; padding-right:7px;">
<a class="klein" target="_self" href="front_content.php?idcat=28">Suche </a></td></tr></table></td>
</tr>
</table>
<table bgcolor="" cellspacing="0" cellpadding="0" width="770">
<tr>
<td valign="top">
<table bgcolor="#EBECEC" align="left" cellspacing="0" cellpadding="0" border="0" width="161">
<tr>
<td valign="top" align="left" height="23" width="161"><img src="images/_navtop.jpg" border="0"</td>
</tr>
<tr>
<td bgcolor="#EBECEC"><div align="left"><!--DHTML NAVI--><script language="JavaScript">menue.Build();</script></div></td>
</tr>
<tr>
<td bgcolor="#EBECEC"><table width="161" border="0" cellspacing="0" cellpadding="0">
<tr><td height="30" colspan="2" ></td></tr>
<tr><td height="15" width="15" style="border: 0px; border-top:1px; border-bottom:1px; border-color: #000000; border-style: solid; background-color: #EBECEC"><img src="images/wuerfel.gif" width="15" height="15" border="0"></td>
<td width="146" style="border: 1px; border-left:0px; border-color: #000000; border-style: dashed; background-color: #FFFFFF; padding-left:10px" class="punkte">Family-Login</td></tr>
<tr><td colspan="2" class="text" height="20" style="border: 1px; border-top:0px; border-color: #000000; border-style: dashed; background-color: #EBECEC; padding-left:10px">
<form method="post" action="front_content.php?idcatart=23">
<table border="0">
<tr><td>Benutzername</td></tr>
<tr><td><input class="news" type="input" size="11" name="username" value=""></td></tr>
<tr><td>Passwort</td></tr>
<tr><td><input class="news" type="password" size="11" name="password" value=""></td></tr>
</table>
<input class="news" type="submit" name="login" value="Anmelden">
</form><br>
</td></tr></table>
</td>
</tr>
</table>
<td valign="top">
<table bgcolor="#FFFFFF" cellspacing="10" cellpadding="5" border="0">
<tr>
<td width="609" height="25" class="headline"> Familientag 2006</td>
</tr>
<tr>
<td height="22" width="609" id="b" class="subheadline"> </td>
</tr>
<tr>
<td class="text"> </td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing="0" cellpadding="0">
<tr>
<td bgcolor="#00003F" height="15" width="770"></td>
</tr>
<tr>
<td height="50" background="images/_bottom1.jpg" width="770"></td>
</tr>
</table>
</nobr></td>
</tr>
</table>
</body>
</html>
Code: Alles auswählen
echo "var Menue_".$levels1." = new TPopMenu('".$name."','---BILDURL---','$a','".$url."','".$name."');\n";
ulisteinle hat geschrieben:Servus kenzo,
nur mal Theoretisch:
Um einen Menüpunkt mit Icon zu erzeugen muss man dem zweiten Parameter:Hier also ---BILDURL--- die URL des Icons, das angezeigt werden soll mitgeben.Code: Alles auswählen
echo "var Menue_".$levels1." = new TPopMenu('".$name."','---BILDURL---','$a','".$url."','".$name."');\n";
Nicht ganz trivial, da ja für jeden Menüpunkt ein anderes Ichon verwendet werden soll - oder auch keines.
Mein Ansatz wäre in etwa folgender:
1. Einen Ordner definieren, in dem die Icons liegen.
2. Icons hinterlegen, die genau so heißen wie die Menüpunkte.
3. Zu Beginn des Ouputs den Ordnerinhalt einlesen und die Iconnamen in ein Array ablegen.
4. Innerhalb jedes SELECT CASE Blocks abfragen, ob es ein Icon mit dem identischen Namen $name gibt.
5. Wenn ja: die URL zum Icon bei ---BILDURL--- einfügen.
Ich weiß, dass du sicher gerne eine fertige Lösung gehabt hättest, aber ich packe das gerade zeitlich nicht... Aber mit etwas PHP Wissen ist das recht zügig zu schaffen. - Sollte dieses Wissen (noch) nicht vorhanden sein, so ist das ein schönes Beispiel um sich´s anzueignen![]()
Gruß
Uli
Hmmm? Was ist das "Super-Menü"?Legt man in Contenido einen Artikel an, kann man ja eine Kategorie angeben, in der das "Super-Menü" diesen Anzeigen soll. Wer kann mir mal kurz erklären, wo das Modul diese Infos (Variablen) hinschreibt. Datenbank?
Code: Alles auswählen
$category = "CMS_VALUE[0]";