Navmodul und Wunsch

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

Navmodul und Wunsch

Beitrag von ekke »

Hallo,

@Sven777b
http://zu-hause.biz/files/navmod.txt und am Ende nochmal hier.


Wunsch:

Hast Du geplant, eine Anzeige für die aktive Seite einzubauen?
In der Urnavigation vom singellayout ist die Hoverfunktion im Menü deaktiviert, wenn man auf der entsprechenden Seite ist:

Code: Alles auswählen

<!-- begin main-navigation-->
<?php
$i=1;
if (count($tree[1]))
	{echo "<table cellspacing=\"0\" cellpadding=\"0\" border=\"0\" width=\"150\">\n";
	while ($i<=count($tree[1]))
		{echo "<tr>\n";
		echo "\n  <td align=\"center\" width=\"150\"";
hier ist die Abfrage:

Code: Alles auswählen

		if ($tree[1][$i][idcat] == $subid) {echo "bgcolor=\"#464F6C\"";}	

Code: Alles auswählen

		else {echo " onMouseOver=\"this.style['background']='#464F6C';\" onMouseOut=\"this.style['background']='#525A73';\" bgcolor=\"#525A73\"";}
		echo " nowrap><a href=\"".$tree[1][$i][link]."\" onMouseOver=\"on('".$tree[1][$i][name]."');return true;\" onMouseOut=\"off();return true;\" id=\"left-menu\">".$tree[1][$i][name]."</a></td>\n</tr>\n";
		if ($tree[1][$i][idcat] == $subid)
                 	{$j=1;
                         while ($j<=count($tree[1][$i]))
			{echo "<tr>\n";
                         echo "\n  <td align=\"center\"";
hier ist die 2. Abfrage:

Code: Alles auswählen

                if ($tree[1][$i][$j][idcat] == $idcat) {echo "bgcolor=\"#626C8E\"";}

Code: Alles auswählen

                         	else {echo " onMouseOver=\"this.style['background']='#626C8E';\" onMouseOut=\"this.style['background']='#6C7698';\" bgcolor=\"#6C7698\"";}
                         echo " nowrap><a href=\"".$tree[1][$i][$j][link]."\" onMouseOver=\"on('".$tree[1][$i][$j][name]."');return true;\" onMouseOut=\"off();return true;\" id=\"left-menu\">".$tree[1][$i][$j][name]."</a></td></tr>";
                         $j++;}}
		$i++;}
	echo "</table>\n";}
?>
<!-- end main-navigation-->
Das ist ein Komfortmerkmal, so weiß jeder, wo er gerade ist.
Das würde http://rechtsstaat-austria.com noch viel übersichtlicher machen. Hast Du Lust dies einzubauen? Das fände ich super,

Schönen Gruss,
ekke

Anhang:

Code: Alles auswählen

Zum Einbinden direkt ins Layout. Dieser Code ersetzt im Demo-Layout die <!-- main_navigation -->
Zuerst muss $mod_baum angepasst werden. Die Nummer kann man im Backend sehen, in dem man auf den entsprechenden Struktur-Punkt klickt.
Standard-Seitig ist 1=haupt (front_frame); 2=service (front_frame); 3=home (front_single); 4=service (front_single) 0 sollte auch gehen
Anschliessend können die Farben angepasst werden $mod_col_over und $mod_col_out sowie die Schriftart $mod_font_link
Wenn man den Code (ohne <?php  ... ?> ) in den OUTPUT eines Modules legt, kann man die Navi auch als Modul einsetzen.
Bei Fragen und Problemen: Sven (webmaster@zu-hause.biz) ICQ:95176001

<?php
//Konfiguration
$mod_baum = 3; // Für welchen Baum ist das Menü
$mod_col_over = "#993333"; // Zellfarbe bei Mouse-Over
$mod_col_out = "#CC3333"; // Zellfarbe bei Mouse-Out
$mod_font_link = "left-menu"; // Style für Links
//Ende Konfiguration
$sql = "SELECT parentid, A.idcat, A.level, name, visible, public FROM $cfgTab_cat_tree AS A, $cfgTab_cat AS B, $cfgTab_cat_lang AS C WHERE A.idcat=B.idcat AND B.idcat=C.idcat AND B.idclient='$client' AND C.idlang='$lang' ORDER BY A.idtree";
$db->query($sql);
while($db->next_record()){
	if($db->f("visible") == "1"){
		if($db->f("public") == "1" | $auth->auth["uid"] != "nobody"){
			$mod_cat_par[$db->f("idcat")] = $db->f("parentid");
			$mod_cat_site[$db->f("idcat")][level] = $db->f("level");
			$mod_cat_site[$db->f("idcat")][link] = $sess->url("front_content.php?client=".$client."&lang=".$lang."&parent=".$db->f("parentid")."&subid=".$db->f("idcat")."&idcat=".$db->f("idcat")."");
			$mod_cat_site[$db->f("idcat")][name] = $db->f("name");
			if($mod_count < $db->f("idcat") ){$mod_count = $db->f("idcat"); };
		};
	};
};
$mod_tp = $idcat;
while($mod_tp > 0){
	$mod_sitelist[$mod_cat_site[$mod_tp][level]] = $mod_tp;
	$mod_tp = $mod_cat_par[$mod_tp];
};
if($mod_sitelist[0] != $mod_baum){$mod_sitelist = array($mod_baum);};
	echo "<table width=100% cellspacing=\"0\" cellpadding=\"0\" border=\"0\">\n";
	for ($i=0; $i<sizeof($mod_sitelist); $i++){
		$mod_space = array();
		$mod_space = array_pad($mod_space,($i),"&nbsp;");
		for($ii=0;$ii<=$mod_count;$ii++){
			if($mod_cat_par[$ii] == $mod_sitelist[$i] && $mod_cat_site[$ii][link]){
			echo "<tr><td onMouseOver=\"this.style['background']='".$mod_col_over."';\" ";
			echo "onMouseOut=\"this.style['background']='".$mod_col_out."';\" bgcolor=\"$mod_col_out\" nowrap>".implode("", $mod_space);
			echo "<a href=\"".$mod_cat_site[$ii][link]."\" onMouseOver=\"on('";
			echo $mod_cat_site[$ii][name]."');return true;\" onMouseOut=\"off();return true;\" id=\"$mod_font_link\">";
			echo $mod_cat_site[$ii][name]."</a></td></tr>\n";
			$mod_cat_par[$ii] = "-";
			if($ii == $mod_sitelist[$i+1]){
				$ii = $mod_count+1;
			};
		};
	};
};
for ($i = sizeof($mod_sitelist)-1;$i >= 0; $i--){
	$mod_space = array();
	$mod_space = array_pad($mod_space,($i),"&nbsp;");
	for($ii=0;$ii<=$mod_count;$ii++){
		if($mod_cat_par[$ii] == $mod_sitelist[$i] && $mod_cat_site[$ii][link]){
			echo "<tr><td onMouseOver=\"this.style['background']='".$mod_col_over."';\" ";
			echo "onMouseOut=\"this.style['background']='".$mod_col_out."';\" bgcolor=\"$mod_col_out\" nowrap>".implode("", $mod_space);
			echo "<a href=\"".$mod_cat_site[$ii][link]."\" onMouseOver=\"on('";
			echo $mod_cat_site[$ii][name]."');return true;\" onMouseOut=\"off();return true;\" id=\"$mod_font_link\">";
			echo $mod_cat_site[$ii][name]."</a></td></tr>\n";
		};
	};
};
echo "</td></tr></table>";
?>
Sven777b
Beiträge: 503
Registriert: Mi 18. Sep 2002, 00:00
Wohnort: Sachsen
Kontaktdaten:

Beitrag von Sven777b »

das hatte ich ursprünglich geplant - dann aber verworfen, weil diese Funktion auch in der Urfassung schon Fehlerhaft ist. Wenn ich nämlich innerhalb einer Kategorie auf eine 2. Seite gehe, dann befinde ich mich lt. Navi nicht mehr in dieser Kategorie.
Das ist schwer.... nach der aktuellen Seite kann ich nicht gehen. Ich bin mir jetzt nicht sicher.. aber wenn ich 5 Seiten in einer Kategorie habe, dann haben die alle eine andere idcat oder?
ekke
Beiträge: 130
Registriert: Mi 18. Sep 2002, 18:26

Beitrag von ekke »

Also soweit ich das verstehe ist für die eindeutige Zuordnung einer Seite
idcat=6&idside=10&lang=2 notwendig.

idside=10 gibt es ja evtl. in verschieden Sprachen und in verschiedenen Kategorien.
Gibts Du nur idcat=6 an, dann wird der Startartikel genommen.

Jede idcat wird nur einmal verwendet auch bei verschiedenen Clients, ist sie einmalig,
aber ist die gleiche innerhalb eines Clients mit unterschiedlichen Sprachen.
Dazu braucht man dann die Unterscheidung lang=2.

Die Eindeutigkeit jedes Artikel für das Menü besteht also aus:
idcat=6&idside=10&lang=2

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

Beitrag von Sven777b »

ich sehe gerade dass die Seiten jeweils die selbe idcat haben - war ich einem Irrtum unterlegen. Unter diesen Umständen kann man natürlich eine Kennzeichnung der aktuellen kategorie vornehmen...

wie sollte die denn am besten aussehen?
- anderer Background
- Zeichen davor
- Zeichen dahinter
- Bild davor
- Bild dahinter

und sagt jetzt nicht - "am besten konfigurierbar alle 5 Varianten.." *g*
ekke
Beiträge: 130
Registriert: Mi 18. Sep 2002, 18:26

Beitrag von ekke »

"am besten konfigurierbar alle 5 Varianten.."
nein nein, am besten mit ner class, dann einfach über Stylesheet konfiguierbar.
Eine Image davor (Pfeilchen, Ordner) auch immer nett,

auf http://www.spielwiese.pop9.de/relocated/contenido/ Gast Gast ist Dein Navmodul verhübscht, funktioniert aber erst für Gruppen, wenn ich den Quelltext richtig sehe, ist eine Auflistung von Seiten noch nicht implementiert.

Kannst Du da ja mal probieren, ist dann schon ein Stück weiter.

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

Beitrag von Sven777b »

Ich habe es mal dahingehend erweitert... Man sieht also jetzt, wo man sich befindet und das wird per CSS definiert.

Anschauen kann man es sich auch auf meiner "Spielwiese" - da habe ich es aber ganz diskret gemacht - leicht eingefärbt und Fett. man kann natürlich krass auf rot gehen oder so.
http://feg-borna.de/cms/frontend/

Code: Alles auswählen

<?php
//Konfiguration
$mod_baum = 1; // Für welchen Baum ist das Menü
$mod_col_over = "#993333"; // Zellfarbe bei Mouse-Over
$mod_col_out = "#CC3333"; // Zellfarbe bei Mouse-Out
$mod_font_link = "left-menu"; // Style für Links
$mod_akt_link = "font21"; // Style für aktiven Link
//Ende Konfiguration
$sql = "SELECT parentid, A.idcat, A.level, name, visible, public FROM $cfgTab_cat_tree AS A, $cfgTab_cat AS B, $cfgTab_cat_lang AS C WHERE A.idcat=B.idcat AND B.idcat=C.idcat AND B.idclient='$client' AND C.idlang='$lang' ORDER BY A.idtree";
$db->query($sql);
while($db->next_record()){
	if($db->f("visible") == "1"){
		if($db->f("public") == "1" | $auth->auth["uid"] != "nobody"){
			$mod_cat_par[$db->f("idcat")] = $db->f("parentid");
			$mod_cat_site[$db->f("idcat")][level] = $db->f("level");
			$mod_cat_site[$db->f("idcat")][link] = $sess->url("front_content.php?client=".$client."&lang=".$lang."&parent=".$db->f("parentid")."&subid=".$db->f("idcat")."&idcat=".$db->f("idcat")."");
			$mod_cat_site[$db->f("idcat")][name] = $db->f("name");
			if($mod_count < $db->f("idcat") ){$mod_count = $db->f("idcat"); };
		};
	};
};
$mod_tp = $idcat;
while($mod_tp > 0){
	$mod_sitelist[$mod_cat_site[$mod_tp][level]] = $mod_tp;
	$mod_tp = $mod_cat_par[$mod_tp];
};
if($mod_sitelist[0] != $mod_baum){$mod_sitelist = array($mod_baum);};
	echo "<table width=100% cellspacing=\"0\" cellpadding=\"0\" border=\"0\">\n";
	for ($i=0; $i<sizeof($mod_sitelist); $i++){
		$mod_space = array();
		$mod_space = array_pad($mod_space,($i),"&nbsp;&nbsp;");
		for($ii=0;$ii<=$mod_count;$ii++){
			if($mod_cat_par[$ii] == $mod_sitelist[$i] && $mod_cat_site[$ii][link]){
			echo "<tr><td onMouseOver=\"this.style['background']='".$mod_col_over."';\" ";
			echo "onMouseOut=\"this.style['background']='".$mod_col_out."';\" bgcolor=\"$mod_col_out\" nowrap>".implode("", $mod_space);
			echo "- <a href=\"".$mod_cat_site[$ii][link]."\" onMouseOver=\"on('";
			echo $mod_cat_site[$ii][name]."');return true;\" onMouseOut=\"off();return true;\" id=\"";
			if($ii == $idcat){echo $mod_akt_link; } else { echo $mod_font_link; };
			echo "\">".$mod_cat_site[$ii][name]."</a></td></tr>\n";
			$mod_cat_par[$ii] = "-";
			if($ii == $mod_sitelist[$i+1]){
				$ii = $mod_count+1;
			};
		};
	};
};
for ($i = sizeof($mod_sitelist)-1;$i >= 0; $i--){
	$mod_space = array();
	$mod_space = array_pad($mod_space,($i),"&nbsp;&nbsp;");
	for($ii=0;$ii<=$mod_count;$ii++){
		if($mod_cat_par[$ii] == $mod_sitelist[$i] && $mod_cat_site[$ii][link]){
			echo "<tr><td onMouseOver=\"this.style['background']='".$mod_col_over."';\" ";
			echo "onMouseOut=\"this.style['background']='".$mod_col_out."';\" bgcolor=\"$mod_col_out\" nowrap>".implode("", $mod_space);
			echo "- <a href=\"".$mod_cat_site[$ii][link]."\" onMouseOver=\"on('";
			echo $mod_cat_site[$ii][name]."');return true;\" onMouseOut=\"off();return true;\" id=\"$mod_font_link\">";
			echo $mod_cat_site[$ii][name]."</a></td></tr>\n";
		};
	};
};
echo "</td></tr></table>";
?>
[/code]
ekke
Beiträge: 130
Registriert: Mi 18. Sep 2002, 18:26

Beitrag von ekke »

Wunderbar, herrlich, klappt.

Die Codedarstellung hier im Forum macht allerding Probleme,
bricht gerne bei -> um, dadurch wird es zu - > und kann nicht mehr erkannt werden und ein hübscher parse error kommt.
Beispiel:

Code: Alles auswählen

 $mod_cat_site[$db->f("idcat")][link] = $sess- 
>url("front_content.php?client=".$client."&lang=".$lang."&parent=".$db- 
>f("parentid")."&subid=".$db->f("idcat")."&idcat=".$db->f("idcat")."");
      $mod_cat_site[$db->f("idcat")][name] = $db->f("name");
      if($mod_count < $db->f("idcat") ){$mod_count = $db- 
>f("idcat"); };
Danke und Gruss ekke

PS. sitze noch an ganz lustigen Sachen, kommt (hoffentlich) bald etwas Neues von mir.
Gesperrt