Seite 1 von 1

Contenido Input Baum auswählen - DropDown!

Verfasst: Mi 8. Nov 2006, 22:37
von cschwan2006
Hallo zusammen

ich suche nen input modul welches die verschieden bäume in seperate dropdown menü darstellt

wie kann man das den umsetzten? Hat jemand ne idee habe schon ein script gefunden aber ich weiß nicht wie ich es dazu umbauen kann das es mir den 1 baum anzeigt mit allen levesl:

Code: Alles auswählen

?><?
/**
  * $Revision: 1.7 $
  * $Source: D:/cvs/cvsrepo/test/PPI_Nade/module/articleList/input.php,v $
  * $Date: 2005/11/25 17:41:12 $
  */

/**
  * chooseTree
  * @author Andreas Kummer
  * @copyright Copyright &copy; 2005 w3concepts AG
  */

if (!class_exists('chooseTree')) {

   class chooseTree {
      
      function chooseTree($selected, $index) {
         
         global $lang, $client;
         
         $this->selected = $selected;
         $this->index = $index;
         $this->lang = $lang;
         $this->client = $client;
         
         $this->db = new DB_Contenido();
         $this->queryStructure();
         
         $this->outputInterface();
      }
      
      function queryStructure() {
         
         global $cfg;
         
         $this->db->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 = '{$this->lang}' " .
               "   AND b.idclient = '{$this->client}' " .
               "   AND c.visible=1 " .
"   AND idcat=1 " .
               "ORDER BY " .
               "   a.idtree" .
               "");
               
         $this->structure = array();
         while ($this->db->next_record()) {
            $this->structure[$this->db->f('idcat')] = array('level'=>$this->db->f('level'), 'name'=>$this->db->f('name'));
         }
      }
      
      function outputInterface() {
         
         /*
          * Tabellenanfang ausgeben
          */
         echo "<table cellspacing=\"0\" cellpadding=\"10\" border=\"0\">";
         
         /*
          * Zeilenanfang ausgeben
          */
         echo "<tr><td>Baum wählen:</td><td>";
         
         /*
          * Select-Feld ausgeben
          */
         echo $this->getSelect($this->structure, $this->index);
         
         /*
          * Zeilenende ausgeben
          */
         echo "</td></tr>";
         
         /*
          * Tabellenende ausgeben
          */
         echo "</table>";
      }
      
      function getSelect($structure, $name) {
         
         $returnValue = '<select size="1" name="'.$name.'" class="text_medium">'."\n";
         
         foreach ($structure as $idcat => $item) {
            if ($idcat == $this->selected) {
               $selected = ' selected = "selected"';
            } else {
               $selected = '';
            }
            
            $spaces = "|";
            for ($i = 0; $i < $item['level']; $i ++) {
               $spaces = $spaces . "--";
            }
            $spaces .= ">";
            
            $returnValue .= '<option value="'.$idcat.'"'.$selected.'>'.$spaces.$item['name'].'</option>';
         }
         
         $returnValue .= '</select>'."\n";
         
         return $returnValue;
      }
   }
}

$chooseTree = new chooseTree("CMS_VALUE[1]", "CMS_VAR[1]");
vielen dank im vorraus!

gruss

christian

Verfasst: Do 9. Nov 2006, 09:02
von emergence
ähm

Code: Alles auswählen

AND idcat=1 
im query oben bringt nichts...

das query in dem modul liest alle teilbereiche aus und erzeugt einen array
das query selbst kann nicht so eingeschränkt werden das es nur einen teilbaum ausliest...

wie das ausklammern funktioniert kannst du in der function.con.php conDeeperCategoriesArray abgucken...

wenn du beides kombinierst hast du das was du haben möchtest...