Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Themes & Theming ›

Listeneinträge mit <optgroup> groupieren

Eingetragen von DrupalFan (1646)
am 03.10.2007 - 12:04 Uhr in
  • Themes & Theming
  • Drupal 5.x

Hallo,

ich möchte die Listeinträge bei 2 Profilfeldern (Land, Bundesland) mit

<optgroup>

gruppieren, also zwischen den einzelnen Listeneinträgen kleine "Überschriften" drin haben, die nicht anklickbar sind (dadurch ergibt sich diese Gruppierung).

Habe alles versucht herauszufinden, wie man das macht.
Hat jemand einen Tipps für mich?
Geht das überhaupt?
Vielen Dank.

‹ Breadcrumb erschreint nicht bei anonymous user Log-Einträge: Seite nicht gefunden ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Wass denn?

Eingetragen von quiptime (4972)
am 03.10.2007 - 12:13 Uhr
Zitat:

Habe alles versucht herauszufinden, wie man das macht.

Was hast Du denn alles versucht?

-------------
quiptime

Nur tote Fische schwimmen mit dem Strom.

XING

  • Anmelden oder Registrieren um Kommentare zu schreiben

Gegoogelt

Eingetragen von DrupalFan (1646)
am 03.10.2007 - 12:58 Uhr

Habe gegoogelt und drupal.org vollständig durchsucht, es ist zwar ein paar Mal die Rede von <optgroup> aber weder im Zusammenhang mit Profilfeldern noch wie man eine bestehendes Listenfeld gruppieren kann.

Vielleicht gibts ja doch irgendwo eine Anleitung oder zumindest einen Hinweis. Poste einfach den Link.

Was weißt Du denn darüber?

  • Anmelden oder Registrieren um Kommentare zu schreiben

Man kann die Anzeige des

Eingetragen von quiptime (4972)
am 03.10.2007 - 14:02 Uhr

Man kann die Anzeige des Profil mit einem Template beeinflussen. Zum Thema Userprofil und Template solltest Du bei der Suche sehr schnell nicht nur im drupal.org Handbuch und eventuell auch hier fuendig werden.

Du bist Dir schon im Klaren wofuer optgroup eigentlich verwendet wird?

Wenn Du das Profil mit einem Template aenderst wuerde ich aber nicht optgroup nehmen sondern fieldset und label.

-------------
quiptime

Nur tote Fische schwimmen mit dem Strom.

XING

  • Anmelden oder Registrieren um Kommentare zu schreiben

Eigentlich will ich "nur" in

Eingetragen von DrupalFan (1646)
am 03.10.2007 - 14:38 Uhr

Eigentlich will ich "nur" in der Select-Liste "Bundesland" die Einträge

--- Deutschland ---
Berlin
Brandenburg
usw
--- Schweiz ---
Bern
Zürich
usw.
--- Österreich ---
Wien
Niederösterreich
usw.

statt als Trennzeichen "normalen Listeinträge", die mit --- markiert sind, verwenden, sondern eben sozusagen Überschriften in der Selectliste haben, die nicht anklickbar sind.

Ich weiß, dass das mit optgroup machbar ist, wenn es anders auch geht, wär auch okay.

Ich will aber nicht das gesamte Registrierformular ändern oder mit hook-Funktionen überschreiben, sondern lediglich 2 Stück Selectlisten dahingehend ändern, dass die "Bereichs-Überschriften" innerhalb der Selektliste nicht anklickbar sind und hervorgehoben sind (einrücken oder fett).

Bitte gib mir noch einen genaueren Tipp, falls mit fieldsets oder css machbar, wär auch okay. Ich will nur die Selectlisten ändern, sonst nichts.

(Eine andere Möglichkeit wäre, die Liste "Bundesland" zunächst leer zu lassen und erst mit Werten zu füllen, wenn ein Land gewählt wurde. Das ist eine ganz andere Variante, aber wenn dafür die Lösung leichter umsetzbar ist, wär das auch toll. JavaScript? Ajax? Drupal-Modul?).

Vielen Dank.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Zusammenspiel der 3 Tags fieldset label optgroup

Eingetragen von quiptime (4972)
am 03.10.2007 - 19:45 Uhr

Jetzt glaube ich Dich etwas besser zu verstehen mit dem was Du willst.

Hier ein Beispiel fuer das Zusammenspiel der 3 Tags fieldset label optgroup in einer Auswahlliste:

<form>
  <fieldset><label>Speisen</label>
    <select name="select">
      <optgroup label="Italienische Gerichte">
        <option>Pizza</option>
        <option>Tortelloni</option>
        <option>Bifsteca</option>
      </optgroup>
      <optgroup label="Deutsche Gerichte">
        <option>Pfannkuchen</option>
        <option>Tafelspitz</option>
        <option>Fischstäbchen</option>
      </optgroup>
      <optgroup label="Süßes" disabled="disabled">
        <option>Schokoriegel</option>
        <option>Sahneeis</option>
        <option>Kaugummi</option>
        <option>Pfefferminz</option>
      </optgroup>
    </select>
  </fieldset>
< /form>

Geht es in diese Richtung?

-------------
quiptime

Nur tote Fische schwimmen mit dem Strom.

XING

  • Anmelden oder Registrieren um Kommentare zu schreiben

Genau!

Eingetragen von DrupalFan (1646)
am 03.10.2007 - 19:54 Uhr

Ja genau, sowas will ich machen!!!!

Es geht um die select-Liste bei der Registierung (und User-Bearbeitung). Die select-Liste "Bundesland" für das Userprofil wird ja unter

"Verwalten - Benutzerverwaltung - Profile"

erstellt. Dort kann man ja ein "Listenauswahlfeld" anlegen, was ich auch schon lange gemacht habe. Die Trennungen (wie hier im Bsp. "Italienische Gerichte" usw) sollen nicht anklickbar sein, durch obiges Beispiel wär das erreichbar.

Aber ich kann nirgendwo die selectliste verändern, ich kann nur in das Feld "Auswahloptionen" alle Bundesländer eingeben, es gibt aber keine Möglichkeit die "Trenner" oder "Bereichsüberschriften" (wie "Italienische Gerichte") zu markieren!!!!

Wie gesagt, möchte nicht die ganze Profilseite neu machen, sondern nur die select-Liste für das Bundesland.

Aber wie?
Vielen Dank für weitere Tipps.

  • Anmelden oder Registrieren um Kommentare zu schreiben

die Grenzen des Machbaren des Core Profil Modules

Eingetragen von quiptime (4972)
am 03.10.2007 - 20:10 Uhr
Zitat:

Die Trennungen (wie hier im Bsp. "Italienische Gerichte" usw) sollen nicht anklickbar sein, durch obiges Beispiel wär das erreichbar.

Die sind eigentlich nicht klickbar. Hier der Code meines Beispiels als Demo

http://www.mediaevent.de/xhtml/optgroup.html

Zitat:

Aber ich kann nirgendwo die selectliste verändern, ich kann nur in das Feld "Auswahloptionen" alle Bundesländer eingeben, es gibt aber keine Möglichkeit die "Trenner" oder "Bereichsüberschriften" (wie "Italienische Gerichte") zu markieren!!!!

Wie gesagt, möchte nicht die ganze Profilseite neu machen, sondern nur die select-Liste für das Bundesland.

Naja, hier stoesst Du an die Grenzen des Machbaren des Profil Modules.
Um das von Dir Gewuenschte zu realisieren musst Du wohl in das Modul eingreifen.

Eventuell verwendest Du auch als Alternative das Modul Node Profile. Dieses Modul setzt auf das normale Profil Modul auf. Mit diesem Modul hast Du echte Nodes als Profilseiten. Diese Nodes kann man mit CCK veraendern.
Inwieweit nun die Moeglichkeiten der diffrenzierten Gestaltung von Select Listen mit CCK hinsichtlich optgroup gegeben sind muesste man ausloten. Auf jeden Fall gibt es erst mal mit CCK mehr Moeglichkeiten als im normalen Profil Modul des Core.

-------------
quiptime

Nur tote Fische schwimmen mit dem Strom.

XING

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ich habe gesucht und in

Eingetragen von DrupalFan (1646)
am 03.10.2007 - 20:43 Uhr

Ich habe gesucht und in "includes/form.inc" folgenden Code gefunden:

/**
* Format a dropdown menu or scrolling selection box.
*
* @param $element
*   An associative array containing the properties of the element.
*   Properties used: title, value, options, description, extra, multiple, required
* @return
*   A themed HTML string representing the form element.
*
* It is possible to group options together; to do this, change the format of
* $options to an associative array in which the keys are group labels, and the
* values are associative arrays in the normal $options format.
*/
function theme_select($element) {
  $select = '';
  $size = $element['#size'] ? ' size="' . $element['#size'] . '"' : '';
  _form_set_class($element, array('form-select'));
  $multiple = isset($element['#multiple']) && $element['#multiple'];
  return theme('form_element', $element, '<select name="'. $element['#name'] .''. ($multiple ? '[]' : '') .'"'. ($multiple ? ' multiple="multiple" ' : '') . drupal_attributes($element['#attributes']) .' id="'. $element['#id'] .'" '. $size .'>'. form_select_options($element) .'</select>');
}

function form_select_options($element, $choices = NULL) {
  if (!isset($choices)) {
    $choices = $element['#options'];
  }
  // array_key_exists() accommodates the rare event where $element['#value'] is NULL.
  // isset() fails in this situation.
  $value_valid = isset($element['#value']) || array_key_exists('#value', $element);
  $value_is_array = is_array($element['#value']);
  $options = '';
  foreach ($choices as $key => $choice) {
    if (is_array($choice)) {
      $options .= '<optgroup label="'. $key .'">';
      $options .= form_select_options($element, $choice);
      $options .= '</optgroup>';
    }
    elseif (is_object($choice)) {
      $options .= form_select_options($element, $choice->option);
    }
    else {
      $key = (string)$key;
      if ($value_valid && ((string)$element['#value'] === $key || ($value_is_array && in_array($key, $element['#value'])))) {
        $selected = ' selected="selected"';
      }
      else {
        $selected = '';
      }
      $options .= '<option value="'. check_plain($key) .'"'. $selected .'>'. check_plain($choice) .'</option>';
    }
  }
  return $options;
}

Ich seh das so: Wenn ein Eintrag der Selectliste nicht ein String sondern ein Array ist, dann wird automatisch eine "optgroup" angelegt.

Das klingt ja gut, ist also im Drupalcode enthalten.

Aber wie anwenden?
Wie bekomme ich unter "/admin/user/profile/add/selection" bei den Auswahloptionen ein Array rein, etc?

  • Anmelden oder Registrieren um Kommentare zu schreiben

Geht das?

Eingetragen von DrupalFan (1646)
am 03.10.2007 - 21:37 Uhr

Wie kann ich in der mysql-Datenbank in ein Feld vom Typ "text" statt pro Zeile einen Wert, ein Array reinschreiben? (So dass "is_array($choice)" true ergibt).

EDIT:
Ich weiß jetzt, das ginge mit serialize, aber das löst das Problem nicht, man müsste Drupal umschreiben.

Aber obiger Code ist doch in Drupal, schade, dass man optgroup trotzdem nicht nutzen kann.

Hat noch jemand eine Idee?
Vielen Dank.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • für drupal11 ein Slider Modul
  • [gelöst] W3CSS Paragraphs Views
  • Drupal 11 neu aufsetzen und Bereiche aus 10 importieren
  • Wie erlaubt man neuen Benutzern auf die Resetseite zugreifen zu dürfen.
  • [gelöst] Anzeigeformat Text mit Bild in einem Artikel, Drupal 11
  • Social Media Buttons um Insteragram erweitern
  • Nach Installation der neuesten D10-Version kein Zugriff auf Website
  • Composer nach Umzug
  • [gelöst] Taxonomie Begriffe zeigt nicht alle Nodes an
  • Drupal 11 + Experience Builder (Canvas) + Layout Builder
  • Welche KI verwendet ihr?
  • Update Manger läst sich nicht Installieren
Weiter

Neue Kommentare

  • melde mich mal wieder, da ich
    vor 2 Wochen 6 Tagen
  • Hey danke
    vor 3 Wochen 8 Stunden
  • Update: jetzt gibt's ein
    vor 3 Wochen 1 Tag
  • Hallo, im Prinzip habe ich
    vor 3 Wochen 5 Tagen
  • Da scheint die Terminologie
    vor 3 Wochen 5 Tagen
  • Kannst doch auch alles direkt
    vor 4 Wochen 2 Tagen
  • In der entsprechenden View
    vor 4 Wochen 2 Tagen
  • Dazu müsstest Du vermutlich
    vor 4 Wochen 2 Tagen
  • gelöst
    vor 6 Wochen 6 Tagen
  • Ja natürlich. Dass ist etwas,
    vor 7 Wochen 8 Stunden

Statistik

Beiträge im Forum: 250233
Registrierte User: 20462

Neue User:

  • Znogsnernoimb
  • ByteScrapers
  • Mroppoofpaync

» Alle User anzeigen

User nach Punkten sortiert:
wla9461
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 36 Gäste online.

Hauptmenü

  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche

Quicklinks I

  • Infos
  • Drupal Showcase
  • Installation
  • Update
  • Forum
  • Team
  • Verhaltensregeln

Quicklinks II

  • Drupal Jobs
  • FAQ
  • Drupal-Kochbuch
  • Best Practice - Drupal Sites - Guidelines
  • Drupal How To's

Quicklinks III

  • Tipps & Tricks
  • Drupal Theme System
  • Theme Handbuch
  • Leitfaden zur Entwicklung von Modulen

RSS & Twitter

  • Drupal Planet deutsch
  • RSS Feed News
  • RSS Feed Planet
  • Twitter Drupalcenter
Drupalcenter Team | Impressum & Datenschutz | Kontakt
Angetrieben von Drupal | Drupal is a registered trademark of Dries Buytaert.
Drupal Initiative - Drupal Association