it-swarm-eu.dev

Jak najdu ID formuláře formuláře?

Jak získám ID formuláře? Právě jsem začal vyrábět své moduly a jsem v klidu. Tento kód jsem dostal od někoho jiného a snažím se ho přizpůsobit:

function hook_form_alter(&$form, &$form_state, $form_id) {
  if ($form_id == 'the form id for the node form') {
    $form['#submit'][] = 'my_custom_submit_handler';
  }
}
22
enchance

Zkuste vytisknout proměnné formuláře pomocí funkce PHP --- print_r .

function hook_form_alter(&$form, &$form_state, $form_id) {
  print_r($form);
}

Při návštěvě stránky, ve které je formulář zapnutý, se zobrazí proměnné (a název).

Snadnějším způsobem přístupu (nebo spíše prohlížení) k informacím by bylo použití funkce dpm () , kterou poskytuje modul Devel . Můžete ji použít stejným způsobem, jako byste použili print_r.

16
Bart

Hledání FORM ID bez instalace modulu

Nalezení ID formuláře je velmi snadnénení třeba instalovat moduly a všechny

KROK 1: Otevřete vás od své stránky úprav (NEBO prohlédněte si svůj formulář).

KROK 2:, pokud jeho tvar uzl najděte "tvar uzl" v prvku prohlédnout

Finding the form id zkontrolujte, zda jste v elementu form.

KROK 3: viz připojený obrázek zvýrazněný zeleně text je ID formuláře

KROK 4: DŮLEŽITÉ Nakonec, pokud ho chcete použít v hook_form_alter() nahraďte hypen za podtržítko

Například: yourform_id_with_content_type_name_form

Stejně jako moudré najdete ID jakéhokoli tvaru v drupal vše, co musíte udělat, je prohlédnout-> najít prvek formuláře a vyhledat atribut ID a použít jej

Doufám, že to pomůže :)

34
DEVARAJ JOHNSON

Pokud je webový formulář umístěn na adrese „www.mydomain.com/node/351“, bude vaše ID formuláře „webform_client_form_351“. Ať už je váš nid jakýkoli, je to vaše ID formuláře.

10
JasmineM

Pokud víte, kde je kód, který definuje formu, kterou chcete změnit, podívejte se tam. ID formuláře je pouze název funkce definující tento formulář.

Například pohledy definuje funkci views_ui_edit_view_form na řádku 875 pohledů/zahrnuje/admin.inc. Filtr pohledu Hierarchical Select hledá toto ID formuláře na řádku 50 hierarchical_select/modules/hs_taxonomy_views.module ve funkci hood_form_alter.

6
David L

Pomocí modulu Get Form ID snadno zjistíte ID formuláře libovolného formuláře v Drupalu.

Zde je citát z jeho stránky projektu:

Když umístíte kurzor myši na libovolný formulář, zobrazí se vám kontextový odkaz. Rozbalením odkazu uvidíte ID formuláře. Po kliknutí na odkaz se zobrazí modální okno s kopií id formuláře a hook_form_FORM_ID_alter () návrh háku.

Tento modul je zastaralý. Byl vylepšen, rozšířen a rebrandingován jako Devel forma debug ; místo toho použijte.

Zveřejnění: Jsem správce těchto modulů.

4
Tim

Protože kód, který jste nahlásili, hledá ID formuláře formuláře uzlu, existují dva případy.

Drupal 6

Pokud se kód pokouší změnit formulář použitý k nastavení nastavení pro typ obsahu, měl by použít následující příkaz IF.

if ($form_id == 'node_type_form' && isset($form['identity']['type'])) { /* … */ }

Pokud se kód pokouší změnit tvar úpravy uzlu, měl by kód použít následující příkaz IF.

if (isset($form['type']) && isset($form['#node']) && $form['type']['#value'] . '_node_form' == $form_id) { /* … */ }

Drupal 7 a vyšší

V prvním případě by mělo být prohlášení IF následující:

if ($form_id == 'node_type_form') { /* … */ }

Při použití jiného přístupu, za předpokladu, že mymodule je krátký název vašeho modulu, můžete použít mymodule_form_node_type_form_alter(&$form, &$form_state, $form_id). Protože Drupal 7), všechny háčky použité ke změně formy implementované jiným modulem získají jako poslední parametr $form_id. Viz hook_form_alter () , - hook_form_FORM_ID_alter () , hook_form_BASE_FORM_ID_alter () .

Ve druhém případě je příkaz IF stejný jako pro Drupal 6).

if (isset($form['type']) && isset($form['#node']) && $form['type']['#value'] . '_node_form' == $form_id) { /* … */ }
3
kiamlaluno

Pomocí funkce drupal_set_message() zobrazíte ID formuláře.

function hook_form_alter(&$form, $form_state, $form_id) {
drupal_set_message($form_id);
// other codes
}
3
Utsav Sinha

Nejprve nainstalujte Devel modul . Pak vytvořte modul jako je kód níže

function hook_form_alter(&$form, &$form_state, $form_id) {
  dpm($form);
}

Poté můžete vidět VŠECHNY detaily formuláře, jako je ID formuláře, názvy polí formuláře atd.

1
sokratis