Posted by johannesf on September 29, 2009 at 9:37am
Hej
Jag försöker ändra på ett form som skapats av cck. Jag har lagt följande i min template.php. Jag registrerar funktionen via sds_theme (temat heter sds), formet:s id är "form_news_node". Men min "hook_form_FORM_ID_alter" fyras inte av?
Är ganska ny på drupal men ska det inte göras så?
function sds_theme() {
return array (
'form_news_node_form_alter' => array(
'arguments' => array('form' => NULL),
)
);
}
function sds_form_news_node_form_alter(&$form, &$form_state) {
print_r($form);
}
mvh / johannes
Comments
Du behöver inte registrera
Du behöver inte registrera fuktionen i
hook_theme()eftersom det inte är en temafunktion. Det enda du behöver göra är att implementerahook_form_FORMID_alter(). Om det inte fungerar så har du angivit fel form ID eller så är inte modulen korrekt installerad.En annan sak som är viktigt att tänka på när du jobbar med
hook_form_FORMID_alter()är att den exekeveras före allahook_form_alter()oberoende av modulvikt! Detta gör att man inte kommer åt alla element ihook_form_FORMID_alter()eftersom den ligger så tidigt i proceduren (detta gäller t.ex. CCK-fält).Så det är ofta ett säkrare kort att implementera
hook_form_alter()istället! Läs mer om den funktionen här.