ستحتاج كل صفحة من موضوعي إلى استخدام واجهة مستخدم jquery. أعلم أنه مدرج مع Drupal 7 ، لكنني لا أستطيع حقًا فك تشفير وثائق طريقة Drupal التقنية للغاية. يبدو أن الطريقة الوحيدة للقيام بذلك هي مع ملف template.php. ولكن لأنني لا أفهم هذا الملف ، أحاول تجنب القيام بذلك بهذه الطريقة.
هل هناك طريقة أخرى ، أم يجب أن أجرب فقط الملف template.php؟
إن إضافة JS إلى الصفحة ليس بهذه الصعوبة ، على الرغم من أنك تحتاج إلى استخدام php.
بالنسبة إلى ملفات JS العادية ، يمكنك فعل شيء كهذا
drupal_add_js($path_to_js)
ومع ذلك ، قام Drupal بتسجيل jQuery UI في المكتبات مما يسهل إضافة كل من ملفات JS و CSS لبعض المكونات الإضافية لـ jQuery UI. يمكن القيام بذلك باستخدام
drupal_add_library($module, $library);
توجد جميع مكونات jQuery UI في وحدة النظام ، لذا يمكنك القيام بذلك
drupal_add_library('system', 'ui');
أو
drupal_add_library('system', 'ui.accordion');
بعض هذه المكونات الإضافية لها تبعيات لأنها تستخدم مكونات إضافية أخرى. Drupal يتعامل مع هذا بذكاء شديد وسيتضمن المكونات المطلوبة.
يمكنك مشاهدة القائمة الكاملة للمكونات الإضافية jQuery هنا . تم تنسيق هذا على أنه صفيف PHP صفيف ، ولكن عادة ما يكون اصطلاح التسمية هو ui.PLUGIN-NAME.
إذا كنت بحاجة إلى إضافة JS في كل صفحة ، يمكنك ببساطة إضافة خطاف صفحة المعالجة المسبقة وإضافتها هناك. سيبدو هذا شيء من هذا القبيل في ملف template.php.
function NAME_OF_THEME_preprocess_page(&$variables) {
drupal_add_library('system', 'ui');
drupal_add_library('system', 'ui.accordion');
drupal_add_library('system', 'effects.highlight');
}
هل جربت date_popup الوحدة؟ يعمل بشكل جيد مع API النموذج
شكرا googletorp
للإجابة على هذا.
فقط للإضافة ، إذا كانت الأمور لا تزال غير واضحة جدًا فيما يتعلق بتمكين مكونات واجهة المستخدم.
يرجى ملاحظة أنه عندما ستذكر: drupal_add_library('system', 'ui');
لن يؤدي ذلك إلى تمكين جميع مكونات واجهة المستخدم تلقائيًا.
يمكنك العثور على قائمة بالمكونات الإضافية لواجهة jquery ui في drupal 7 هنا: /misc/ui/
لتمكين مكون إضافي ذي صلة ، على سبيل المثال: jquery.ui.slider.min.js
، تحتاج إلى إضافة هذا السطر:
drupal_add_library('system', 'ui.slider');
اتمنى ان يكون هذا مفيدا.
لقد واجهت هذه المشكلة مؤخرا. أعطاني شخص ما الوحدة النمطية الخاصة بهم لإجبار JQuery UI على التحميل في كل صفحة. يمكنك إعادة إنشائه ببساطة. أولاً ، قم بتثبيت jquery_update وتأكد من أنه يعمل. ثم قم بإنشاء وتمكين هذه الوحدة:
قم بإنشاء مجلد في المسار/إلى/الوحدات النمطية المسماة "jquery_force".
في الداخل ، أضف ملفين:
jquery_force.info :
name = JQuery UI Force
description = Forces JQuery UI to always load
dependencies[] = jquery_update
package = User Interface
core = 7.x
files[] = jquery_force.module
jquery_force.module :
<?php
/**
* @file jquery_force.module
* TODO: Enter file description here.
*/
/**
* Implements hook_init().
*/
function jquery_force_init() {
drupal_add_library('system', 'ui');
}
لم تنفعني إضافة خطاف معالجة مسبقة في ملف template.php
.
أنا ببساطة أضع drupal_add_library('system', 'ui');
في ملف template.php
بحد ذاته ، يعمل.