Próbálom leszedni a
teaser mezőről
a kis piros csillagot,
hogy ne legyen
kötelező a kitöltése.
// Leszedi az cck mezőkről (most textarea-val próbálom csak) a * -ot. function removeRequired(&$form, &$form_state, $fieldnames) { foreach ($fieldnames as $fieldname) { $form[$fieldname]['#required'] = '0'; $form[$fieldname][0]['#required'] = '0'; $form['#field_info'][$fieldname]['required'] = '0'; $form_state['values'][$fieldname][0]['value'] = $form[$fieldname]['#default_value']['value']; } } // A hívás removeRequired($form, $form_state, array( 'field_article_teaser', ));
De nem megy.
A dpm() függvénnyel nézegetem a függvény futása után a $form tartalmát.
Valóban minden helyen (amit találtam és állítok a függvényben a required értéke 0 lesz. De ez még nem elég. Mi lehet a hiba?
Azért kell ez, mert alapvetően kötelező kitölteni a mezőt, de nem mindig.
Drupal verzió:
Fórum:
ne akarj nem létező kulcsokat is állítgatni
Nekem az nem világos, hogy ahogy észrevettem a postolt kódjaidban, mindenre általános jellegű függvényt szeretnél írni, pedig ez nem mindig indokolt: itt is látszik, hogy csak bonyolítja az egészet, és most ebből számunkra (legalábbis számomra) sem derül ki, hogy konkrétan melyikre vonatkozóan szeretnéd leszedni a required kulcsot.
Ráadásul le sem ellenőrzöd isset()-tel, létezik-e egyáltalán az adott tömbelem, és minden lehetséges kombinációra végigpróbálgatod a required 0-ra állítását, még ha az nem is létezik. Így csak BELERAKSZ manuálisan a tömbbe olyan plusz elemeket, amik nem szükségesek, ráadásul a Drupal saját formösszeállító, renderelő függvényeit totál összezavarhatod vele.
Konkrétan egy mező egy LÉTEZŐ kulcsát próbáld meg manipulálni valami form alterben, és ne feltétlenül akarj létrehozni mindenre általánosító függvényt. Remélem, ezt nem veszed rosszindulatnak, mert nem szemétségből mondom, hanem jótanácsként.
így kő'
na, most miután kiírattam a $form-ot egy after build függvényben a Devel modul dsm() függvényével, meg kipróbálgattam, egyből meglett a megoldás, csak úgy sikerült, hogy 3 helyen is 0-ra állítottam a required kulcsot, konkrétan így:
Köszönöm
a gyors segítséget.
Ez maradt ki a kódomból:
Ezt nem vettem észre.