Wie erstelle ich einen Hook zum Ändern jeder Knotenform?

7

Ich habe es versucht:

mymodule_form_node_alter

mymodule_form_node_form_alter

und globaler Haken:

function mymodule_form_alter(&$form, $form_state, $form_id) {
  if ($form['#id'] == 'node-form') {
      #set message
  }
}

Keiner von oben funktioniert für mich.

Ich muss einen Hook erstellen, der auf jedem Knotenformular aufgerufen wird. wenn es möglich ist.

Codium
quelle

Antworten:

11
function yourmodule_form_alter(&$form, &$form_state, $form_id) {
    if (strpos($form_id, '_node_form') !== FALSE) {
      // ...
    }
}
Hamid Nikmehr
quelle
20
/**
 * Implements hook_form_BASE_FORM_ID_alter().
 */
function MYMODULE_form_node_form_alter(&$form, &$form_state) {
  // do staff
}

Es konnte nicht funktionieren, da Sie nach dem Hinzufügen des Hooks die Caches löschen müssen.

Leksat
quelle
Dies ist der richtige Weg, um Knotenformulare in D7 anzuvisieren. !!
Devendra Jadhav
1

Ich finde eine bessere Lösung:

if (isset($form['#node'])) {

}

Eine andere Lösung ist die Verwendung von: hook_form_BASE_FORM_ID_alter ()

Codium
quelle