Drupal - WebForm Element thereing
-
22-09-2019 - |
سؤال
سؤال آخر حول Drupal WebForms - النموذج نفسه مدمج بواسطة /concludes/form.inc'س
function theme_form_element($element, $value)
ويضيف أ <label>
عنصر إلى الإخراج $. أرغب في إزالة هذه التسمية فقط لـ WebForm ، لذلك يجب علي تجاوز الوظيفة. كيف يمكنني تجاوزه للحصول على مواقع ويب واحدة فقط ، مع تركها بنفس الشيء في جميع الآخرين؟ على سبيل المثال
if ($block == 'contact'):
// only output <input> form element stored in $value
function mytheme_html_form_element($element, $value) {
$t = get_t();
$output .= " $value\n";
return $output;
}
endif;
هل هذا ممكن ، وماذا يحدث في حالة if؟
المحلول 2
كان عليّ أن أقوم بعمل hook_form_alter ، لكن التسمية نفسها كانت في عنصر ['sumrated']. هنا هو الرمز
if($form_id == 'webform_client_form_18') {
$form['submitted']['#children'] = '
<input
type="text"
maxlength="128"
name="submitted[email]"
id="edit-submitted-email"
value="' . $form['submitted']['email']['#default_value']. '"
class="form-text required"
/>
';
}
في شكل مختلف ، تم إزالة #Title (+1 بالنسبة لك!) ، ولكن كانت هذه حالة مختلفة.
نصائح أخرى
إذا كنت تتطلع فقط إلى إزالة التسمية ، فيمكنك أيضًا استخدامها hook_form_alter (), ، وتحقق من أن $ form_id مساوية لـ WebForm المعني. سيكون المعرف من النموذج: WebForm_Client_form_n حيث N هو معرف العقدة لـ WebForm.
بمجرد تشغيل النموذج المناسب ، يمكنك إلغاء ضبط الملصق باستخدام رمز مثل هذا: على سبيل المثال:
unset($form['submitted']['first_name']['#title']);
والتي من شأنها إلغاء ضبط الملصق لحقل يسمى first_name.
لن أفسد عناوين عناصر النموذج. يمكنك الحصول على نتائج غير متوقعة عندما يتم تقديم النموذج الخاص بك بواسطة محرك السمة.
يمكنك القيام بذلك عدة طرق:
موضوع كل عنصر أو الشكل بأكمله مع '#theme' => 'my_callback'
.
يمكنك أيضًا إنشاء عنصر النموذج الخاص بك باستخدام Hook_Elements الذي يستخدم خطاف السمة المقابل.
يرى:
http://api.drupal.org/api/drupal/developer-topics-forms_api_reference.html