it-swarm.com.de

Auswahloption deaktivieren

Ich habe eine Auswahlliste in meinem Anmeldeformular hier . Der Benutzer kann 3 Optionen auswählen, um sich für die Veranstaltung zu registrieren. Im Moment hat der Benutzer die Möglichkeit, eine Frühbucherregistrierung zu wählen. Nach der Periode sollten sie diese Option nicht auswählen können. Gibt es eine Möglichkeit, diese Option zu deaktivieren?

Ich habe folgende Möglichkeiten:

  1. EARLY BIRD REGISTRATION (jetzt - 1. November)
  2. REGELMÄSSIGE REGISTRIERUNG (1. November - 1. März)
  3. SPÄTE REGISTRIERUNG März (1 - zur Konferenz)
  4. LAUTSPRECHERANMELDUNG (jetzt bis 2. April)
  5. STUDENTENANMELDUNG (nur Pausen)

Nach dem 1. November sollte es mir möglich sein, die Frühbucherregistrierung in der Auswahlliste zu deaktivieren.

4

Das Deaktivieren einzelner Optionen aus Auswahllisten ist derzeit in Drupal nicht so einfach. Es gibt einige offene Fragen zum Thema und einige vorgeschlagene Patches, aber bisher hat es keiner in den Kern geschafft:


Es gibt jedoch ein Tutorial zu Exove, das das Problem umgeht, indem der Hook THEME_select() implementiert wird, um das Theming einzelner Auswahloptionen mit der Taste #options_attributes Zu ermöglichen: Drupal 7 Form API-Auswahlelementattributattribute

Mit dem Code für template.php Ihres Themas aus dem Lernprogramm können Sie Optionen in Ihrem Formular mit hook_form_FORM_ID_alter () deaktivieren.

function hook_form_FORM_ID_alter() {
  $today = date("Y-m-d H:i:s");
  $date = "2016-11-01 00:00:00";

  if ($date > $today) {
    //replace 0 with the actual index for Early Bird
    $form['your_select_field']['#option_attributes'][0] = array('disabled' => 'true');

    //set the other fields based on dates here
  }
}

Es gibt auch ein Modul, das die gleiche Funktionalität wie der Themencode aus dem Tutorial zu bieten scheint, aber ich habe es noch nicht getestet: Form Options Attributes . Es scheint jedoch auf ähnliche Weise zu funktionieren und ist möglicherweise sogar etwas einfacher einzurichten (da Sie diese Themenfunktion nicht schreiben müssen).

3
Zuzuesque