سؤال

والإخراج الافتراضي من API نموذج دروبال هو:

<input id="edit-submit" class="form-submit" type="submit" value="Save" name="op"/>

وكيف موضوع لي أن حتى أحصل على:

<button id="edit-submit" class="form-submit" type="submit">
  <span>Save</span>
</button>

وأنا في حاجة إلى فترة الداخلية العلامة حتى أتمكن من استخدام تقنية انزلاق الأبواب CSS.

واعتقد انني بحاجة لتجاوز theme_button (عنصر $) من form.inc لكن محاولاتي حتى الآن كانت ناجحة.

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

المحلول

والفكرة الأساسية لthemeing على form_foo إذا كنت تستخدم موضوع PHP عادي (مثل الحرباء)، لكتابة وظيفة تسمى theme_form_foo ().

ويمكنك أيضا موضوع عنصر واحد (مثل هذا الزر) على وجه التحديد، من خلال إعلان وظيفة الموضوع فقط لذلك. انظر https://api.drupal.org/api/drupal /developer٪21topics٪21forms_api_reference.html/7

وتجدر الإشارة إلى أن، في كلتا الحالتين سوف تحتاج مع D6 للإعلان عن وظيفة في التسجيل موضوع، وإلا سوف دروبال لا تلاحظ هذا التجاوز. هذا ليس ضروريا في D5. إذا كنت تستخدم phptemplate، فأنت في حاجة إليها أيضا، على الرغم من PHPtemplate يعتني التسجيل خارج حالة أشكال: <لأ href = "http://drupal.org/node/132442#theme-registry" يختلط = " noreferrer نوفولو "> http://drupal.org/node/132442#theme-registry

وثائق هذا متاح في a.d.o. : http://api.drupal.org/api/file/developer/topics/forms_api.html

نصائح أخرى

ولدي الآن وظيفة على غرار

function mytheme_button($element) {
  return "<button><span></span></button>"; # lots of code missing here for clarity
}

في أجل العمل على انجاحه أنا ببساطة مسح ذاكرة التخزين المؤقت ولاحظت دروبال واستخدامها تلقائيا.

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