it-swarm-ko.tech

hook_form_alter () 구현을 어떻게 호출합니까?

내 모듈에 hook_form_alter () : function getuserform_form_alter(&$form, $form_state, $form_id)을 구현하는 함수가 있습니다.

어떻게 부르나요? 필수 매개 변수를 어떻게 전달합니까?

2
Carlos Muñiz

hook_form_alter는 두 가지 변형으로 제공됩니다.

  • hook_form_alter
  • hook_form_FORM_ID_alter

둘 다 drupal_get_form 또는 다른 양식 작성기 함수 중 하나를 사용하여 양식을 검색 할 때 호출되지만 후자는 특정 form_id가있는 양식에 대해서만 호출됩니다. 여러 양식에 대해 동일한 변경을 수행하지 않는 한 hook_form_FORM_ID_alter 변형을 사용하는 것이 좋습니다. 이렇게하면 오버 헤드가 줄어 듭니다.

모든 후크는 특정 이벤트가 발생할 때 Drupal에 의해 호출됩니다. form_alter의 경우, 양식이 작성 될 때입니다. 따라서 질문의 예를 사용하여 수행해야하는 모든 작업) , $form_id를 확인하고 원하는대로 변경하는 것입니다.

$form_state&$form_state 표기법을 사용하여 참조로 전달되어야합니다. 때로는 $form뿐만 아니라 $form_state도 변경해야 원하는대로 양식을 수정할 수 있습니다.

2
googletorp

다른 후크 구현과 마찬가지로 Drupal 코어 코드에 의해 자동으로 호출됩니다.

hook_form_alter() (또는 hook_form_FORM_ID_alter())의 구현을 호출하지 않습니다. hook_user() (또는 hook_user_OP(), in Drupal 7). 해당 유형의 후크를 호출하는 Drupal 함수를 호출합니다. for hook_user(), user_load(), hook_nodeapi(), node_load(), hook_form_alter(), drupal_get_form(), drupal_build_form() 또는 ajax_get_form().

1
kiamlaluno