DHTML Menü

kevind
Beiträge: 2
Registriert: Fr 14. Mai 2004, 16:36
Kontaktdaten:

OnClick -> OnMouseover

Beitrag von kevind » Fr 14. Mai 2004, 16:41

tach zsamm,

erstmal danke für deine gute programmierarbeit ;)

dazu hab ich aber noch ein kleines problem / Frage.
Wie kann ich das umstellen/Programmieren das das Submenu nicht per onclick sonder per mouseover erscheint ?!

any help appreciated.
thx in adv
kevind

grossy
Beiträge: 57
Registriert: Mi 28. Apr 2004, 12:56
Wohnort: downunder
Kontaktdaten:

Beitrag von grossy » Fr 14. Mai 2004, 19:04

hi ihr da!

ich find das menü an sich ja schon sehr genial.
bräuchte die menüs/untermenüs komplett nebeneinander.

auf der seite
http://www.donnaiwan.com/doiMenu/demo/index.html
entspricht das der navigation
custom style 2

hab auf der seite keine anleitung gefunden, wie man das ganze so umstellt...

thx grossy

Alex
Beiträge: 174
Registriert: So 20. Jul 2003, 11:31
Kontaktdaten:

Beitrag von Alex » Sa 15. Mai 2004, 10:03

Hi!

Wollte mal fragen - bevor ich das Tool selbst nutze: habt Ihr Probleme bei nicht-Microsoft-Browsern? Z.b. Mozilla, Konqueror etc.?

Alex
Contenido 4.4.4 & 4.5.3-CVS

ulisteinle
Beiträge: 53
Registriert: Sa 13. Mär 2004, 21:59
Wohnort: D -> BW -> HN
Kontaktdaten:

lang ist´s her...

Beitrag von ulisteinle » Mo 24. Mai 2004, 13:55

Hi zusammen,

bin in letzter zeit leider zu viel mit studieren beschäftigt um schnellen support zu liefern - sorry!

@Alex: Laut Autor des Scriptes soll´s keine Probleme mit Mozilla geben.

@grossy: unter http://www.donnaiwan.com/doiMenu/doc.htm bei Punkt 1 nicht fündig geworden? Hab´s aber selbst nicht ausprobiert...

Gruß
Uli

ixepter
Beiträge: 65
Registriert: So 11. Jan 2004, 12:08
Kontaktdaten:

Beitrag von ixepter » Mi 26. Mai 2004, 20:03

mehr oder weniger hab ich das ding jetzt auch am laufen. jedoch habe ich folgendes problem, ich möchte das die navi statt nach unten nach oben ausklappt.
wie kann ich das anstellen?
danke für eure hilfe!

smily
Beiträge: 53
Registriert: Do 27. Mai 2004, 13:49
Kontaktdaten:

Beitrag von smily » Mo 28. Jun 2004, 12:56

hi, ich habe ein kleines problem mit der sahe nämlich

ich bekomme eine JS-ERR-MSG "Menue_" is not defined!

ich habe in meinen html nachgeschaut und dort steht:

Code: Alles auswählen

<script language="JavaScript"> 
<!-- 
var menue = new TMainMenu('menue','horizontal');
  var Menue__1 = new TPopMenu('Punkt 2.1','5','a','front_content.php?idcat=9&lang=1','Punkt 2.1');
  Menue_.Add(Menue__1);

  var Menue__2 = new TPopMenu('Punkt 2.2','5','a','front_content.php?idcat=10&lang=1','Punkt 2.2');
  Menue_.Add(Menue__2);

  var Menue__3 = new TPopMenu('Newsletter','5','a','front_content.php?idcat=19&lang=1','Newsletter');
  Menue_.Add(Menue__3);
aus irgend einen grund werden diese "_" hinzugefügt, aber ich sehe die nicht in dem modul-code. ich meine ich sehe die "_" bei unterpunkten aber ich bekomme fehler weill ich in layout folgendes habe:

Code: Alles auswählen

<div align="left"><!--DHTML NAVI--><script language="JavaScript">menue.Build();</script></div> 
und die ausgabe macht

Code: Alles auswählen

 Menue_.Add(Menue__1);
daraus.

in modul output steht aber:

Code: Alles auswählen

 echo "var Menue_".$levels1." = new TPopMenu('".$name."','5','a','".$url."','".$name."');\n"; 
                echo "menue.Add(Menue_".$levels1.");\n\n"; 
da gibts keinen unterstrich und "m" ist auch klein :?: :?: :?:
kann einer helfen?

ulisteinle
Beiträge: 53
Registriert: Sa 13. Mär 2004, 21:59
Wohnort: D -> BW -> HN
Kontaktdaten:

smily

Beitrag von ulisteinle » Mo 28. Jun 2004, 19:25

Servus smily,

ich hab leider den Fehler auf die schnelle nicht reproduzieren können (ausser ich füge einen zweiten Underscore ("_") hinzu).

Versuche doch zunächst mal das Modul komplett zu löschen bzw. den Originalcode erneut einzufügen.

Ist jetzt keine große Hilfe, aber ein Ansatz :wink:

Sollte das dein Problem nicht lösen, werde ich mich in den nächsten Tagen nochmal etwas genauer damit beschäftigen.

Gruß
Uli

smily
Beiträge: 53
Registriert: Do 27. Mai 2004, 13:49
Kontaktdaten:

Beitrag von smily » Di 29. Jun 2004, 11:20

hi ulisteinle,

danke für die antwort, ich habe die fehler gefunden.
na ja eigentlich ist vielleicht garkein fehler, weil wenn ich die haupt kategorie auswähle läuft die sahe wunderbar. Ich habe aber in vorkonfiguration nur die zweite ebene ausgewählet und deswegen konnte es ja auch nicht laufen.

allerdings habe ich mich entschieden sowieso die hauptkategirie zu wäehlen dann ist auch einfacher, trotzdem wäre es gut wenn mann auch unterkat's wählen konnte.

aber vielen, vielen, dank für das modul, es ist echt supper :D

smily
Beiträge: 53
Registriert: Do 27. Mai 2004, 13:49
Kontaktdaten:

Beitrag von smily » Do 8. Jul 2004, 11:30

Servus ulisteinle,

ich habe eine dringende frage, nämlich gibt es eine möglichkeit
dem js script zu sagen das er trotz der tatsache das es weitere untermenus gibt onClick seine startseite aufzurufen?
also meine menu ist :

Code: Alles auswählen

m1
  m11
    m111
    m112
  m12
m2
  m21
  m21
so jetzt möchte ich dass wenn ich über m11 gehe sich die m111 und m112 via rollover (wie normal) aufklappen aber der m11 soll noch dazu anklikbar sein und auf sein startartikel verweissen

ich habe mir die js-api und denn core-code angekuckt und bin nicht schlau geworden (leider nur verzweifelt :cry: ).

kennst du'en Trick?

ulisteinle
Beiträge: 53
Registriert: Sa 13. Mär 2004, 21:59
Wohnort: D -> BW -> HN
Kontaktdaten:

Beitrag von ulisteinle » Do 8. Jul 2004, 13:17

Tach smily,

hier muss ich dich leider enttäuschen.

Das Menü simuliert die Pulldown menüs wie sie in Bertiebsystemen üblich sing. --> es werden nur die Endpunkte verlinkt (wie an deinem Browser: Datei > Neu ...)

Das nervt mich selbst ziemlich (Ebenso wie die größe).

Eine Anfrage beim Autor hat leider keine Antwort gebracht.

Vielleicht werd ich an dieser Stelle bald eine andere Version mit einem anderen JScript dahinter veröffentlichen. - Bin gerade noch am suchen...

Bis bald
Uli

smily
Beiträge: 53
Registriert: Do 27. Mai 2004, 13:49
Kontaktdaten:

Beitrag von smily » Do 8. Jul 2004, 14:27

danke trotzdem,

ja, ich habe auch beim autor nachgefraget, leider auch keinen antwort erhalten. Eben habe ich auf sorceforge eine nachriht hinterlassen, villeicht
weiss ja jemand :) .

Prinzipiel musste man beim diesen "new TPopMenu()" nur einen zusätlichen parameter einbauen der regelt, ob trotz vorhandener untermenü ein klick erlaubt sein sollte oder nicht(eventuell false als default setzen). Ich hab's echt versucht aber aber bin anscheinend zu blöd dafür, der core-code ist nämlich nicht ohne :twisted: .

auf www.avid.com ist ein schöner beispiel dafür.
Du kannst z.B. auf company->contakt info klicken ohne dass das aufklappen der untermenüs stort.

sowas als modul für contenido wäre doch schön :lol:

smily
Beiträge: 53
Registriert: Do 27. Mai 2004, 13:49
Kontaktdaten:

Beitrag von smily » So 11. Jul 2004, 17:07

hi ulisteinle,

ich habe die antwort auf die javascript frage:

man braucht nur das (zeile 361 oder so)

Code: Alles auswählen

if(this._items[i]._itemIndex >-1)
{
result+='<div class="TPopUpItem'+this._items[i]._parent._index+'" id="di_'+this._items[i]._id+'">';result+='<table class="TPopUpItem'+this._items[i]._parent._index+'" cellspacing="0" cellpadding="0"';result+=' onmouseover="onPopItemMOver(event,this,\''+this._items[i]._id+'\','+level+','+this._items[i]._parent._name+',\''+this._items[i]._status+'\')"';result+=' onmouseout="onPopItemMOut(event,this,\''+this._items[i]._id+'\','+this._items[i]._parent._name+')"';result+=' id="pr_'+this._items[i]._id+'"><tr>'+this._items[i]._icon+this._items[i]._label+'</td>';if(this._items[i]._parent._pop._expandIcon._create)
result+='<td class="TExpand'+this._items[i]._parent._index+'">'+this._items[i]._parent._pop._expandIcon._symbol+'</td>';result+='</tr></table>';result+='</div>';}
else
mit

Code: Alles auswählen

f(this._items[i]._itemIndex >-1)
{
result+='<div class="TPopUpItem'+this._items[i]._parent._index+'" id="di_'+this._items[i]._id+'">';result+='<table class="TPopUpItem'+this._items[i]._parent._index+'" cellspacing="0" cellpadding="0"';result+=' onmouseover="onPopItemMOver(event,this,\''+this._items[i]._id+'\','+level+','+this._items[i]._parent._name+',\''+this._items[i]._status+'\')"';result+=' onmouseout="onPopItemMOut(event,this,\''+this._items[i]._id+'\','+this._items[i]._parent._name+')"';

// just added this line HIER
...
if(this._items[i]._eClick != '')
result+=' onclick="hideAll('+this._items[i]._parent._name+');'+this._items[i]._eClick+'"';

result+=' id="pr_'+this._items[i]._id+'"><tr>'+this._items[i]._icon+this._items[i]._label+'</td>';if(this._items[i]._parent._pop._expandIcon._create)
result+='<td class="TExpand'+this._items[i]._parent._index+'">'+this._items[i]._parent._pop._expandIcon._symbol+'</td>';result+='</tr></table>';result+='</div>';}
else
zu ersetzen.

so jetzt sind alle TPopMenu die "a" und "url" haben anklickbar.

jetzt musste man aber dein modul so umzuprogrammieren das nur falls ein start artikel vorhanden ist die TPopMenu variante mit "a" und "url" geschrieben wird amsonsten ohne. Zur zeit schreibt dein modul immer mit "a" und "url".

ich bin gerade am versuchen aber ich komme mit diesen contenido nicht gerade am besten klar.

kannst du helfen?

ulisteinle
Beiträge: 53
Registriert: Sa 13. Mär 2004, 21:59
Wohnort: D -> BW -> HN
Kontaktdaten:

Beitrag von ulisteinle » So 11. Jul 2004, 19:43

ich schau mal...

smily
Beiträge: 53
Registriert: Do 27. Mai 2004, 13:49
Kontaktdaten:

Beitrag von smily » Mo 12. Jul 2004, 14:48

hi ulisteinle,
ich habs :D :D :D :D :D :D :D :D

also wie schon oben gesagt den veränderten js benutzen und hier ist der angepasste output teil deines moduls.

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','horizontal');\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) 

} 
?> 
ich weiss aber nicht ob dass so richtig efficient ist?, besser wäre wahrscheinlich wenn mann meine zweite abfrage mit deinen ersten vereinigen könnte aber dass habe ich nicht geschaft.

sollte dir bessere lösung einfallen bitte posten 8)

tracker
Beiträge: 11
Registriert: Mo 23. Jun 2003, 21:55
Wohnort: Augsburg
Kontaktdaten:

Beitrag von tracker » Mi 21. Jul 2004, 10:09

Erst mal - super Modul das Du gebastelt hast!!!!

Nun hätte ich eine Frage, wäre es möglich, beim aktiven Bereich das Menü ausgeklappt zu lassen? Quasi ein mix aus statischer und dynamischer Navigation?

Ich denke im Notfall an eine Lösung die für für jeden Hauptmenüpunkt eine eigene Navigation bereitstellt, so dass ich je nach Menüpunkt ein Modul mit statischer Naviagation und drei bis vier mit dynamischer einfügen kann. Aber hier glaube ich, müsste man die komplette Variablen im Javascript anpassen damit es nicht knallt und der Overhead würde so ziemlich die Site sprengen.

Vielleicht hat einer ne einfachere Lösung, ich seh wahrscheinlich den Wald vor lauter Bäumen nicht mehr!

Gruß

tracker

Gesperrt