Generate dhtml menu - test version

Gesperrt
d2mac
Beiträge: 3
Registriert: Di 24. Feb 2004, 12:10
Wohnort: SK
Kontaktdaten:

Generate dhtml menu - test version

Beitrag von d2mac » Di 24. Feb 2004, 12:26

Include the following two javascript files:

Code: Alles auswählen

<SCRIPT LANGUAGE="JavaScript" SRC="js/lw_layers.js"></SCRIPT>
<SCRIPT LANGUAGE="JavaScript" SRC="js/lw_menu.js"></SCRIPT>
Create menu:

Code: Alles auswählen

<script language="JavaScript">
<!--
CMS_CONTAINER[XX]
//-->
</script>
Finally place the following code at the place you wishes to display the menu:

Code: Alles auswählen

<script language="JavaScript">
<!--
DrawMenu()
//-->
</script>
Module:

Code: Alles auswählen

<?php
/***********************************************
* CONTENIDO MODUL - OUTPUT
*
* Modulname   :     dhtml menu - test version d2mac
*                   - Adapt to Contenido V4.4
************************************************/
include_once($cfg["path"]["contenido"].$cfg["path"]["includes"]."functions.con.php");

$catStart = 1;

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);

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";

          switch ($level)
          {

           //level1
           case (1):
                unset($count2);
                unset($count3);
                unset($count4);
                unset($count5);
                unset($count6);
                unset($count7);
                unset($count8);
                unset($count9);
                $levels1 = 1+$count1++;
                echo 'AddMenuItem ('.$levels1.',0, "'.$url.'", "'.$name.'", "")'.";\n";
           break;

           //level2
           case (2):
                $levels2=1+$count2++;
                echo 'AddMenuItem ('.$levels1.$levels2.','.$levels1.', "'.$url.'", "'.$name.'", "")'.";\n";
           break;

           //level3
           case (3):

                $levels3=1+$count3++;
                echo 'AddMenuItem ('.$levels1.$levels2.$levels3.','.$levels1.$levels2.', "'.$url.'", "'.$name.'", "")'.";\n";
           break;

           //level4
           case (4):
                $levels4=1+$count4++;
                echo 'AddMenuItem ('.$levels1.$levels2.$levels3.$levels4.','.$levels1.$levels2.$levels3.', "'.$url.'", "'.$name.'", "")'.";\n";
           break;

           //level5
           case (5):
                $levels5=1+$count5++;
                echo 'AddMenuItem ('.$levels1.$levels2.$levels3.$levels4.$levels5.','.$levels1.$levels2.$levels3.$levels4.', "'.$url.'", "'.$name.'", "")'.";\n";
           break;

           //level6
           case (6):
                $levels6=1+$count6++;
                echo 'AddMenuItem ('.$levels1.$levels2.$levels3.$levels4.$levels5.$levels6.','.$levels1.$levels2.$levels3.$levels4.$levels5.', "'.$url.'", "'.$name.'", "")'.";\n";
           break;

           //level7
           case (7):
                $levels7=1+$count7++;
                echo 'AddMenuItem ('.$levels1.$levels2.$levels3.$levels4.$levels5.$levels6.$levels7.','.$levels1.$levels2.$levels3.$levels4.$levels5.$levels6.', "'.$url.'", "'.$name.'", "")'.";\n";
           break;

           //level8
           case (8):
                $levels8=1+$count8++;
                echo 'AddMenuItem ('.$levels1.$levels2.$levels3.$levels4.$levels5.$levels6.$levels7.$levels8.','.$levels1.$levels2.$levels3.$levels4.$levels5.$levels6.$levels7.', "'.$url.'", "'.$name.'", "")'.";\n";
           break;

           //level9
           case (9):
                $levels9=1+$count9++;
                echo 'AddMenuItem ('.$levels1.$levels2.$levels3.$levels4.$levels5.$levels6.$levels7.$levels8.$levels9.','.$levels1.$levels2.$levels3.$levels4.$levels5.$levels6.$levels7.$levels8.', "'.$url.'", "'.$name.'", "")'.";\n";
           break;

          }
        } // end while
      } // if
    }  // end foreach
  } // end if (is_array)

}
?>
Menu download:
http://64.246.32.44/~admin59/mn-intro.htm

d2mac
Beiträge: 3
Registriert: Di 24. Feb 2004, 12:10
Wohnort: SK
Kontaktdaten:

Beitrag von d2mac » Mi 25. Feb 2004, 19:21

you don't know at others solution?

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

Changing Font-size?

Beitrag von ulisteinle » Do 18. Mär 2004, 10:00

Thanks for your Contribution!

It works fine! But: Is there a way to change font-size and font-style?
Modifying the variables "menuFont" and "menuSize" in lw_menu.js does not work.

Thanks!


Auf deutsch:

Menü funktioniert! Sieht sogar recht ordentlich aus. Leider kann man (ohne Programmieraufwand) nicht die Schriftart bzw. grösse ändern.

Snoopy
Beiträge: 239
Registriert: Mo 15. Sep 2003, 18:45
Kontaktdaten:

Re: Changing Font-size?

Beitrag von Snoopy » Do 18. Mär 2004, 17:13

@d2mac:
fantastic idea, very good stuff


@ulisteinle:

Die einstellungen für Schriftart und Schriftgrösse machst Du entweder uber folgenden Eintrag
im Layout:

Code: Alles auswählen

<style>
td { font-family:verdana; font-size:11px }
</style>
oder Du bindest dieses CSS Schipsel in deine Standard CSS ein.

Wenn Du dem Modul einen Input für die Auswahl des Baums verpassen willst,
benutze folgendes als Modul input:

Code: Alles auswählen

// 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>";


Du musst dann nur noch im Output des DHTML Moduls folgende Stelle ändern:

Code: Alles auswählen

$catStart = "CMS_VALUE[0]";
//$catStart = 1; 
Gruß aus Hamburg :wink:

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

Das war´s was noch fehlte...

Beitrag von ulisteinle » Fr 19. Mär 2004, 00:13

Vielen Dank Snoopy!

Das war genau das was ich als nächstes Fragen wollte (Input)! - Kannst du etwa Gedanken lesen?

Gruß aus dem Wilden Süden!

kuchi
Beiträge: 222
Registriert: So 29. Jun 2003, 18:02
Wohnort: Neubrandenburg
Kontaktdaten:

dhtml_test-menue

Beitrag von kuchi » Fr 19. Mär 2004, 13:41

Hi d2mac!

I have two questions: look at this

Bild

at first: where I can find the part of code where this border of sub is defined;

at second: arrow_right.gif path is js/arrow_right.gif but it don't works

best regards from kuchi

maTTos
Beiträge: 130
Registriert: Fr 27. Jun 2003, 14:14
Kontaktdaten:

Beitrag von maTTos » Sa 20. Mär 2004, 16:04

@ kuchi: Ich setzte das Modul auch ein, siehe http://www.betaweb.de/myfdb/cms/start.htm

zu 1. Die Linien kriegst du weg, indem du in der lw_menu.js folgenden Eintrag veränderst: <td onmouseover='' bgcolor='#d0d0d0'>
Bei keinem Wert verschwindet die Linie.

zu 2. Der Pfad wird nicht stimmen, oder Du hast das Bild nicht upgeloadet. Sonst paste doch einfach mal Deine URL, dann schaue ichs mir mal an.

Zusatzinfo: Wenn Du diese Navigation und das Gästebuch von (Snoopy/Darth-Vader) einsetzt gibt es Probleme. Denn auf der "Eingabe-Seite" des GB werden die Input-Felder mit seltsamen Werten versehen. Keine Ahnung wieso. Vielleicht weiß jemand Rat, ich demonstriere das gerne auch.

Besten Gruß, maTTos

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

Hab da was

Beitrag von ulisteinle » So 21. Mär 2004, 16:37

Hi,
ich denke D2Mac hat sich wohl verabschiedet :cry:
Aber: ich hab da was für euch: Hier lang
Gruß
Uli

helik
Beiträge: 26
Registriert: Di 14. Nov 2006, 16:24
Kontaktdaten:

Beitrag von helik » Do 7. Dez 2006, 12:19

Hat einer noch die zugehörigen js Dateien...
brauche dringend eine horizontale Navigation... am Besten noch, dass sich die Unternavi direkt darunter öffnet... ich weiss, ich weiss... dhtml suchen... habe ich versucht zu verwenden... will aber bei mir nicht...

:evil:

Komm grad keinen Schritt voran!

Gesperrt