hook_form_alter für cck-feld klappt nur im Add-Form, jedoch nicht im Edit
Eingetragen von drupaletic (3)
am 30.01.2012 - 17:23 Uhr in
am 30.01.2012 - 17:23 Uhr in
Hallo,
ich habe einen Nodetype, nennen wir ihn 'events'. In diesem Nodetype habe ich mittels CCK ein Textfeld mit Radio-buttons erstellt. Nun möchte ich gerne die "allowed values" dieses Feldes programmatisch ändern und zwar so dass als Optionen alle Nodetypes verfügar sind, die nach einem bestimmten Muster benannt sind.
Dies habe ich folgndermaßen gelöst:
<?php
function clavisto_evt_register_form_alter(&$form, &$form_state, $form_id){
if($form_id == 'events_node_form'){
$options = array();
$types = node_get_types('types');
foreach($types as $key => $type){
if(preg_match("/^events_reg/",$type->type)) {
$options[] = $type->name;
}
$options_str = implode("\n",$options);
$form['#field_info']['field_evt_regform']['allowed_values'] = $options_str;
dsm($form['#field_info']);
}
}
?>
Das funktioniert soweit, aber nur im Node-add form also in /node/add/events. Im Edit-Form werden leider immer noch die ursprünglichen Optionen angezeigt, obwohl laut dsm in $form['#field_info']['field_clav_evt_regform']['allowed_values'] die richtigen Werte liegen.
Ich hab bereits umfangreich Google bemüht bin aber auf keine Antwort gestoßen, weswegen ich hier nachfragen wollte, ob jemand einen Tip bzw. Lösungsansatz für mich hat.
- Anmelden oder Registrieren um Kommentare zu schreiben
Neue Kommentare
vor 20 Stunden 15 Minuten
vor 23 Stunden 14 Minuten
vor 3 Tagen 2 Stunden
vor 3 Tagen 2 Stunden
vor 4 Tagen 20 Stunden
vor 5 Tagen 13 Stunden
vor 5 Tagen 14 Stunden
vor 5 Tagen 22 Stunden
vor 6 Tagen 1 Stunde
vor 6 Tagen 2 Stunden