[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
Kategorieauswahl für Moduleingabe - REDAXO Forum
Hallo,

Wir haben in letzter Zeit festgestellt, dass die Kommunikation via Slack viel schneller und zielführender ist als ein Beitrag im Forum. Aufgrund der neuen und besseren Möglichkeiten der Kommunikation haben wir uns entschlossen das Forum nur noch als Archiv zur Verfügung zu stellen. Somit bleibt es weiterhin möglich hier nach Lösungen zu suchen. Neue Beiträge können nicht mehr erstellt werden.

Wir empfehlen, für deine Fragen/Probleme Slack zu nutzen. Dort sind viele kompetente Benutzer aktiv und beantworten jegliche Fragen, gerne auch von REDAXO-Anfängern! Slack wird von uns sehr intensiv und meistens "rund um die Uhr" benutzt :-)
Selbst einladen kannst Du dich hier: https://redaxo.org/slack/
netmanix

Kategorieauswahl für Moduleingabe

19. Mär 2010, 13:29

Hallo suche eine Möglichkeit eine Kategorie in der Moduleingabe auszuwählen. Benötige die als Value die ID der ausgewählten Kategorie.

Gibt es da nen REX_ Platzhalter für?
Oder wie wird das gemacht.

Benutzeravatar
nitzer
Beiträge: 229
Registriert: 16. Okt 2006, 22:53
Wohnort: Erkrath
Kontaktdaten: ICQ Website

So geht's…

19. Mär 2010, 15:18

grad getestet.

Eingabe

Code: Alles auswählen

<?php

function PrintCategorieOptions($cat = null) {
   $selectCats = null;
   if ( is_int( $cat)) {
      $selectCats = array( OOCategory::getCategoryById( $cat));
   } else {
      $selectCats = OOCategory::getRootCategories();
   }

   foreach ( $selectCats as $selectCat) {
      add_cat_option( $selectCat);
   }
}


function add_cat_option( &$cat, $groupName = '') {
   if( empty( $cat)) {
      return;
   }

   print_link($cat->getName(), $cat->getId(), $groupName);

   if ( $cat->getChildren()) {
      $childs = $cat->getChildren();
      
      foreach ( $childs as $child) {
         if ($child->getChildren()) {
            add_cat_option( $child, $groupName."&nbsp;&nbsp;");
         } else {
            add_cat_option( $child, $groupName."&nbsp;&nbsp;");
         }
      }
   }
}

function print_link($catName, $catId, $groupName) {
   global $selectedCat;
   if ( "REX_VALUE[1]" == $catId) {
      // selected
      echo "<option value=\"" . $catId . "\" selected>" . $groupName.$catName . "</option>\n";
   } else {
      echo "<option value=\"" . $catId . "\">" . $groupName.$catName . "</option>\n";
   }
}



?>
<table><tr>
   <td>Kategorie:</td>
   <td><select name="VALUE[1]">
   <?php PrintCategorieOptions(); ?>

   </select></td>
</tr>

</table>
Ausgabe:

Code: Alles auswählen

<?php
 $catId = 'REX_VALUE[1]';

print $catId;


?>
Die Ausgabe spuckt dann nur die ID aus. Vielleicht reicht das ja schon.

Grüße

Andreas

Benutzeravatar
timo.huber
Beiträge: 305
Registriert: 22. Dez 2009, 13:26

20. Mär 2010, 11:43

hi,

der Platzhalter den du sucht nennt sich REX_LINK_BUTTON[1]
jedoch werden da auch Artikel angezeigt.

MFG
$glaskugel = new rex_glaskugel();
$loesung = $glaskugel->getLoesung("problem");
foreach ($loesung as $l)
{
echo $l;
}

netmanix

22. Mär 2010, 11:11

Vielen Dank euch beiden.
Die Lösung von Nitzer ist genau was ich gesucht habe.
:-)

Benutzeravatar
Gregor.Harlan
Entwickler
Beiträge: 1130
Registriert: 4. Jun 2007, 10:35
Wohnort: Frankfurt am Main

22. Mär 2010, 13:57

Hallo,

es gibt eine Klasse rex_category_select. Damit sieht es so aus (ungetestet):

Code: Alles auswählen

<?php
  $select = new rex_category_select();
  $select->setName("VALUE[1]");
  $select->setSelected("REX_VALUE[1]");
  $select->setSize(1);
  echo 'Kategorie: '. $select->get();
?>
Man kann rex_category_select() noch Parameter mitgeben, der Funktionskopf sieht so aus:

Code: Alles auswählen

function rex_category_select($ignore_offlines = false, $clang = false, $check_perms = true, $add_homepage = true)
Gruß, Gregor
Friends Of REDAXO: Gemeinsame REDAXO-Entwicklung!

netmanix

22. Mär 2010, 14:27

Super... Danke.
Besser weil krüzer und schöner .. :-)

Zurück zu „Allgemeines [R4]“