سؤال

لقد لاحظت ذلك في ملف موضوع النموذج الخاص بك ، أيا كان form.tpl.php ، عندما تحذف

<?php drupal_render($form); ?> 

الأجزاء الوحيدة من النموذج المقدم هي ما حددته - لذلك يمكنني أيضًا حذف كل هذه الخطوط:

<?php $form['title']['#access'] = FALSE; ?>
<?php $form['body']['#access'] = FALSE; ?>
<?php $form['menu']['#access'] = FALSE; ?>
<?php $form['revision_information']['#access'] = FALSE; ?>
<?php /* ... etc ... */ ?>

أردت أن أفعل ذلك حتى عندما أقوم بتثبيت الوحدات النمطية (على سبيل المثال) ، لا داعي للقلق بشأن العودة إلى جميع أشكالي المخصصة ثم إضافة "إخفاء هذا القسم!" خط:

<?php $form['book']['#access'] = FALSE; ?>

هل من المقبول حذف drupal_render (نموذج $)؟ التقديم ، والتحقق من الصحة ، وما إلى ذلك سيكون على ما يرام؟

هل كانت مفيدة؟

المحلول

الخط الذي تطلبه ، يجعل جميع عناصر النماذج التي لم يتم تقديمها بعد. سيتضمن هذا على الأرجح دائمًا رمز النموذج معرف فريد للنموذج. بدونه لا يمكن التحقق من صحة. هذا يمكن أن يسبب الكثير من المتاعب إذا تمت إزالته.

إذا كنت تريد تغيير النموذج الذي يجب عليك استخدامه hook_form_alter(). يتيح لك بناءً على معرف النموذج لإزالة/إضافة/تغيير عناصر النموذج. هذه هي طريقة Drupal لأنه يسمح للوحدات النمطية الأخرى بتغيير النماذج عند الحاجة Aswell.

نصائح أخرى

حسنًا ، يبدو أن المظهر الذي تستخدمه أمرًا رائعًا بعض الشيء ، لأن كل سطر من التعليمات البرمجية المذكورة أعلاه يجب ألا يكون في طبقة العوصول.

لكن للإجابة على سؤالك ، الإزالة drupal_render($form) من المحتمل أن يتسبب في عدم ظهور شكلك بالكامل. لذلك لا ، الخضوع والتحقق من الصحة ، لن ينجح هذا ، وربما لن يظهر النموذج على الصفحة عند تقديمه في متصفح على الإطلاق.

الإجابة المختصرة هي بالتأكيد لا ، لا يمكنك حذف DRUPAL_Render (نموذج $) ، لأنه يحتوي على معلومات ضرورية للمعالجة الصحيحة للنموذج.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top