Artikelliste als Dropdownmenü

Gesperrt
ReneWho
Beiträge: 101
Registriert: Do 5. Feb 2004, 13:10
Kontaktdaten:

Artikelliste als Dropdownmenü

Beitrag von ReneWho » Do 1. Jul 2004, 22:43

Hallo ihrs,

ich habe versucht eine artikkelliste als dropdownmenü zu bauen.
dafür habe ich mir das artikelliste modul von Jan Lengowski geschnappt
und eine dreamweaverextention. ich habe jedoch ein kleineres problem
mit dem script.

folgender code steht im header des layouts

Code: Alles auswählen

<script type="text/javascript">
<!--
			function MM_jumpMenu(targ,selObj,restore){ 
				if (!(selObj.options[selObj.selectedIndex].value) == "") {
				  eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
				  if (restore) selObj.selectedIndex=0;
				}
			}
			//-->
</script>
damit wird die aktion gemeistert, die die ausgewälte rubrik im dropdown
menü aufruft.

der code im contenido modul für die ausgabe sieht folgendermaßen aus

Code: Alles auswählen

<?php
/***********************************************
* CONTENIDO MODUL - OUTPUT
*
* ARTIKELLISTE
*
* Artikelliste Head 1
*
* Erstellt eine Liste mit allen Artikel bis
* auf den Startartikel.
*
* Basierend auf dem Modul von Jan Lengowski
************************************************/

// second db class instance
$db2 = new DB_Contenido;

// selected category
$selcat = "CMS_VALUE[0]";

 if($selcat!="0" && $selcat!=""){

// select all articles in category widthout start article
$query = "SELECT ARTLANG.idart, ARTLANG.idartlang FROM ".$cfg["tab"]["cat_art"]." AS CATART, ".
          $cfg["tab"]["art_lang"]." AS ARTLANG ".
         "WHERE CATART.idcat = '$selcat' AND ARTLANG.idart = CATART.idart AND ARTLANG.idlang = '$lang' AND ".
         "ARTLANG.online = '1' ORDER BY ARTLANG.title DESC";

// execute query
$db->query($query);

unset($articleID);
unset($linkID);

// get id's of sub articles
while ($db->next_record()) {
  $articleID[] = $db->f("idartlang");
  $linkID[] = $db->f("idart");
} // end while

// loop through subarticles

echo '
<form>
<select name="ContactCentre" class="formObj" onChange="MM_jumpMenu('parent',this,0)">
<option value="selected">Bitte ausw&auml;hlen...</option>
';

if (is_array($articleID)) {

    foreach ($articleID as $key => $value) {

          // select all CMS variables of the article
          $sql = "SELECT * FROM ".$cfg["tab"]["content"]." WHERE idartlang = '$value' AND idtype = '1' AND typeid = '1'";
          $db->query($sql);
          $db->next_record();
          $head = $db->f("value");

          if ( strlen($head) > "CMS_VALUE[3]") {
            $head = substr($head, 0, "CMS_VALUE[3]");
            $head .= '..';
          }

          // link
          $link = $sess->url("front_content.php?client=$client&lang=$lang&idcat=$selcat&idart=$linkID[$key]&m=$m&s=$s");
		  
          echo '<option value="'.$link.'">'.urldecode($db->f("value")).'</option>';

    } // end while



          unset($headline);
        unset($text);
        
    } // end foreach
    
} // end if (is_array)

echo '</select></form>';


?>
Problem: die contenidoseite kann plötzlich nicht mehr angezeigt
werden. ich denke es liegt an folgender code zeile:

Code: Alles auswählen

<select name="ContactCentre" class="formObj" onChange="MM_jumpMenu('parent',this,0)">
genauer am ('parent'). contenido hängt sich an den hochstrichen
auf. aber anführungszeichen gehen mit dem javascript nicht. hmpf
hat jemand eine idee?

gruß René

ReneWho
Beiträge: 101
Registriert: Do 5. Feb 2004, 13:10
Kontaktdaten:

Beitrag von ReneWho » Do 1. Jul 2004, 23:58

Ahrgh ich sollte um so eine uhrzeit nichts mehr mit scripterei
machen :-) fehler gefunden.

Wen es vielleicht für sich selbst interessiert, hier der
gesamte code für die modifizierte artikelliste als drop down
menü. Wie das ganze fertig aussieht ist unter
http://www.esa-gs.de/cms/
zu sehen.

INPUT Code für das Artikellistemodul

Code: Alles auswählen

/**
* Artikelliste mit I1,H1,T1
*
* Erstellt eine Liste mit allen Artikel bis
* auf den Startartikel.
*
* INPUT
*
* Author Jan Lengowski
* Copyright four for business AG
*/

// 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>
        <tr>
          <td>Überschrift</td>
          <td><input type=\"text\" name=\"CMS_VAR[2]\" value=\"CMS_VALUE[2]\"></td>
        </tr>
        <tr>
          <td>Angezeigte Länge in Zeichen</td>
          <td><input type=\"text\" name=\"CMS_VAR[3]\" value=\"CMS_VALUE[3]\"></td>
        </tr>

      </table>";

OUTPUT Code für das Artikellistemodul

Code: Alles auswählen

<?php
/***********************************************
* CONTENIDO MODUL - OUTPUT
*
* ARTIKELLISTE
*
* Erstellt eine Liste mit allen Artikel bis
* auf den Startartikel.
*
* Basierend auf dem Modul von Jan Lengowski
************************************************/


// second db class instance
$db2 = new DB_Contenido;

// selected category
$selcat = "CMS_VALUE[0]";

 if($selcat!="0" && $selcat!=""){

// select all articles in category widthout start article
$query = "SELECT ARTLANG.idart, ARTLANG.idartlang FROM ".$cfg["tab"]["cat_art"]." AS CATART, ".
          $cfg["tab"]["art_lang"]." AS ARTLANG ".
         "WHERE CATART.idcat = '$selcat' AND ARTLANG.idart = CATART.idart AND ARTLANG.idlang = '$lang' AND ".
         "ARTLANG.online = '1' ORDER BY ARTLANG.title DESC";

// execute query
$db->query($query);

unset($articleID);
unset($linkID);

// get id's of sub articles
while ($db->next_record()) {
  $articleID[] = $db->f("idartlang");
  $linkID[] = $db->f("idart");
} // end while

// loop through subarticles

echo '
<form name="form">
<select name="link" class="formObj" onChange="window.location.href = document.form.link.options[document.form.link.selectedIndex].value;">
<option selected>Bitte ausw&auml;hlen...</option>
';

if (is_array($articleID)) {

    foreach ($articleID as $key => $value) {

          // select all CMS variables of the article
          $sql = "SELECT * FROM ".$cfg["tab"]["content"]." WHERE idartlang = '$value' AND idtype = '1' AND typeid = '1'";
          $db->query($sql);
          $db->next_record();
          $head = $db->f("value");

          if ( strlen($head) > "CMS_VALUE[3]") {
            $head = substr($head, 0, "CMS_VALUE[3]");
            $head .= '..';
          }

          // link
          $link = $sess->url("front_content.php?client=$client&lang=$lang&idcat=$selcat&idart=$linkID[$key]&m=$m&s=$s");
		  
          echo '<option value="'.$link.'">'.urldecode($db->f("value")).'</option>';

    } // end while



          unset($headline);
        unset($text);
        
    } // end foreach
    
} // end if (is_array)

echo '</select></form>';


?>

Und wer das ganze dann auch noch mit einem style versehen will,
hier habe ich mal einen dezenten angelegt.

Code: Alles auswählen

.formObj {
	font-family: Arial, Helvetica, sans-serif;
	font-size: 10px;
	color: #333333;
	background-color: #FFFFFF;
	border: 1px solid #666666;
}
grüßels René

Halchteranerin
Beiträge: 5478
Registriert: Di 2. Mär 2004, 21:11
Wohnort: Halchter, wo sonst? ;-)
Kontaktdaten:

Re: Artikelliste als Dropdownmenü

Beitrag von Halchteranerin » Fr 2. Jul 2004, 06:23

Hi,
ReneWho hat geschrieben: ich habe versucht eine artikkelliste als dropdownmenü zu bauen.
nicht, dass ich Dir jetzt den Wind aus den Segeln nehmen will :wink:, aber so ein Modul gibt's/gab's schon. Irgendwo hier im Forum ... Manchmal spart Suchen doch etwas Arbeit. :)

Gruss
Christa

ReneWho
Beiträge: 101
Registriert: Do 5. Feb 2004, 13:10
Kontaktdaten:

Beitrag von ReneWho » Fr 2. Jul 2004, 10:20

Ich habe schon gesucht und gesucht aber nichts gefunden.
für das modul hab ich vielleicht 30 minuten gebraucht... :-)
finde der aufwand hat sich gelohnt.

René

Zeitgeist
Beiträge: 205
Registriert: Fr 5. Sep 2003, 09:47
Wohnort: Hamburg
Kontaktdaten:

Beitrag von Zeitgeist » Fr 2. Jul 2004, 14:45

ja, sieht nett/brauchbar aus

wo ist das anmeldeformular zum Vogelweitwurfexperten? :wink:

TimeSpirit
Rechtschreibfehler sind nicht als "Fehler" sondern als Hommage an Pisa zu verstehen ;)
Keine Einträge im Errorlog :)
Contenido 4.4.4 - Firefox -

degi73
Beiträge: 3
Registriert: Di 26. Okt 2004, 13:51
Kontaktdaten:

keine anzeige im dropdown menü

Beitrag von degi73 » Di 26. Okt 2004, 13:53

hallo, das menü erscheint zwar und die artikel wwerden richtig verlinkt, aber der text im dropdown ist nicht sichtbar .....

degi73
Beiträge: 3
Registriert: Di 26. Okt 2004, 13:51
Kontaktdaten:

Beitrag von degi73 » Di 26. Okt 2004, 13:55

ach ja , wie kann ich denn den style einbauen aufrufen etc ???

mko
Beiträge: 123
Registriert: Di 1. Feb 2005, 10:26
Wohnort: Österreich
Kontaktdaten:

Beitrag von mko » Mo 28. Feb 2005, 10:04

Bei mir wird leider immer der Startartikel mit ins Dropdownmenü geschrieben, obwohl das eigentlich nicht sein sollte. Habe den Code 1:1 von oben übernommen. Hat wer eine Idee...

mko
Beiträge: 123
Registriert: Di 1. Feb 2005, 10:26
Wohnort: Österreich
Kontaktdaten:

Beitrag von mko » Mo 28. Feb 2005, 19:53

Danke - hat sich erledigt. Ich habe das Modul vom Downloadbereich (www.contenido.org) genommen und das funktioniert.

quokka
Beiträge: 48
Registriert: Sa 12. Mär 2005, 00:07
Wohnort: Tilburg - The Netherlands
Kontaktdaten:

Great

Beitrag von quokka » Do 5. Okt 2006, 17:18

Hi, cool mod.
In latest contenido version i see this after the menu:
*/ ?>

Any idea?
Thanks in advance.
Quokka

Gesperrt