it-swarm.asia

كيف يمكنني العثور على معرف النموذج الخاص بالنموذج؟

كيف أحصل على معرف النموذج الخاص بي؟ لقد بدأت للتو في صنع وحداتي وأنا في حالة جمود. حصلت على هذا الرمز من شخص آخر وأحاول تخصيصه:

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';
  }
}
23
enchance

حاول طباعة متغيرات النموذج مع PHP دالة print_r .

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

عندما تزور الصفحة النموذج موجود ، سيتم عرض المتغيرات (والاسم).

طريقة أسهل للوصول إلى (أو بالأحرى عرض) المعلومات التي ستستخدم dpm () وظيفة مقدمة من وحدة Devel . يمكنك استخدامه بنفس الطريقة التي تستخدم بها print_r.

17
Bart

البحث عن معرف النموذج بدون تثبيت الوحدة النمطية

العثور على معرف النموذج سهل للغايةلا حاجة لتثبيت الوحدات وجميع

الخطوة 1: تفتح لك من الذهاب إلى صفحة التعديل الخاصة بها (أو افحص النموذج الخاص بك).

الخطوة 2: إذا كانت شكل عقدة ابحث عن "شكل عقدة" في عنصر الفحص

Finding the form id تحقق من أنك في عنصر النموذج.

الخطوة 3: انظر الصورة المرفقة الأخضر المميز النص هو معرف النموذج

الخطوة 4: هام أخيرًا إذا كنت تريد استخدامه في hook_form_alter() استبدل hypen بـ الشرطة السفلية

فمثلا: yourform_id_with_content_type_name_form

مثل الحكمة ، يمكنك العثور على معرف لأي شكل في drupal كل ما عليك فعله هو فحص-> العثور على عنصر النموذج والبحث عن سمة المعرف واستخدامها

آمل أن يساعد :)

37
DEVARAJ JOHNSON

إذا كان نموذج الويب الخاص بك موجودًا على "www.mydomain.com/node/351" ، فسيكون معرف النموذج الخاص بك هو "webform_client_form_351". لذا ، بغض النظر عن ما تريده - هذا هو معرف النموذج الخاص بك.

11
JasmineM

إذا كنت تعرف مكان الرمز الذي يحدد النموذج الذي تريد تغييره ، فابحث هناك. معرف النموذج هو مجرد اسم الوظيفة التي تحدد هذا النموذج.

على سبيل المثال ، تحدد المشاهدات الوظيفة views_ui_edit_view_form في السطر 875 من المشاهدات/include/admin.inc. يبحث عامل تصفية طرق العرض Hierarchical Select عن معرف النموذج هذا في السطر 50 من hierarchical_select/modules/hs_taxonomy_views.module في دالة hood_form_alter.

6
David L

استخدم الدالة drupal_set_message() لعرض معرّف النموذج.

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

استخدم Get Form ID الوحدة النمطية لمعرفة معرف النموذج بسهولة من أي شكل في دروبال.

هنا اقتباس عنها من صفحة مشروعها:

بالمرور فوق أي شكل سترى ارتباط سياقي متاح. من خلال توسيع الرابط ، سترى معرف النموذج. انقر على الرابط وسترى نافذة مشروطة مع معرف نموذج قابل للنسخ واقتراح ربط hook_form_FORM_ID_alter ().

تم إيقاف هذه الوحدة. تم تحسينه وتوسيعه وإعادة تسميته كـ Devel form debug ؛ استخدمه بدلاً من ذلك.

الكشف: أنا المشرف على هذه الوحدات.

4
Tim

نظرًا لأن الرمز الذي أبلغت عنه يبحث عن معرف النموذج لنموذج العقدة ، فهناك حالتان.

دروبال 6

إذا كانت الشفرة تحاول تغيير النموذج المستخدم لتعيين الإعدادات لنوع المحتوى ، فيجب أن تستخدم العبارة IF التالية.

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

إذا كان الكود يحاول تغيير نموذج تحرير العقدة ، فيجب أن يستخدم الكود العبارة IF التالية.

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

دروبال 7 وما فوق

في الحالة الأولى ، يجب أن يكون بيان IF على النحو التالي:

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

باستخدام نهج مختلف ، بافتراض أن mymodule هو الاسم المختصر للوحدة النمطية الخاصة بك ، يمكنك استخدام mymodule_form_node_type_form_alter(&$form, &$form_state, $form_id). نظرًا لأن Drupal 7 ، فإن جميع الخطافات المستخدمة لتغيير النموذج الذي يتم تنفيذه بواسطة وحدة نمطية أخرى تحصل على $form_id كمعلمة أخيرة. راجع hook_form_alter () ، hook_form_FORM_ID_alter () ، hook_form_BASE_FORM_ID_alter () .

في الحالة الثانية ، بيان IF هو نفسه المستخدم لـ Drupal 6.

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

التثبيت الأول Devel module . ثم قم بإنشاء وحدة مثل الرمز أدناه

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

ثم يمكنك رؤية جميع تفاصيل النموذج ، مثل معرف النموذج ، وأسماء الحقول للنموذج وما إلى ذلك.

1
sokratis