it-swarm.asia

هل يمكنني إرفاق عنصر واجهة مستخدم jquery.ui.datepicker بعنصر نموذج باستخدام واجهة برمجة تطبيقات النموذج؟

لدي عنصر نموذج عام:

$form['date'] = array(
    '#type' => 'textfield',
    '#title' => t( 'Date' ),
);

أنني أريد إضافة datepicker jquery ui إلى هذا العنصر. هل هناك طريقة للقيام بذلك من خلال نموذج api ، أم يجب علي إضافة ما يلي باستخدام drupal_add_js:

$('#edit-date').datepicker();

أم أن هناك طريقة أخرى أفضل؟

7
meriial

يمكنك استخدام after_build في النموذج الخاص بك لاستدعاء دالة تحتوي على drupal_add_js

4
digital

الحل الأسهل لذلك هو تثبيت Date و Date Popup Modules واستخدام عنصر api للنموذج التالي للحصول على عنصر منبثق للتاريخ على الفور. لا شبيبة إضافية بما في ذلك الحاجة.

$form['date'] = array(
  '#type' => 'date_popup',
  '#title' => t('Date'),
  '#date_format' => 'd/m/Y',
);

تقبل السمة #date_format تاريخ PHP سلسلة منسقة يتم استخدامها كتنسيق إدخال لحقل التاريخ.

4
masterchief

التاريخ يحتوي المشروع على وحدة (date_popup.module) تنفذ عنصر نموذج date_popup. date_popup.module لـ Drupal 6 تعرّف الوظيفة date_popup_load () ، لكن الوظيفة غير موجودة في إصدار Drupal 7 من الوحدة ، ولا هي Drupal وظيفة أساسية.

ما فعلته الوظيفة هو تضمين ملفات جافا سكريبت الضرورية.

  $path = drupal_get_path('module', 'date_popup');
  if (module_exists('jquery_ui')) {
    jquery_ui_add('ui.datepicker');
    global $language;
    if ($language->language != 'en') {
      jquery_ui_add("i18n/ui.datepicker-{$language->language}");
    }
  }
  if (variable_get('date_popup_timepicker', 'default') == 'default') {
    drupal_add_js($path . '/lib/jquery.timeentry.pack.js');
  }

الوظيفة المكافئة الموجودة في إصدار Drupal 7 للوحدة النمطية هي date_popup_add () ، والتي تحتوي على الكود التالي.

drupal_add_library('system', 'ui.datepicker');
drupal_add_library('date_popup', 'timeentry');

// Add the wvega-timepicker library if it's available.
$wvega_path = date_popup_get_wvega_path();
if ($wvega_path) {
  drupal_add_js($wvega_path . '/jquery.timepicker.js');
  drupal_add_css($wvega_path . '/jquery.timepicker.css');
} 

يتم استدعاء هذه الوظيفة من date_popup_element_process () ، وهي وظيفة #process المستخدمة من حقل نموذج date_popup. يمكنك كتابة دالة #process تحتوي على كود مشابه للشفرة التي تم تنفيذها من تلك الوظيفة ، وإرفاقها بحقل النموذج الذي تريد إضافة منتقي التاريخ إليه.

4
kiamlaluno