সংযুক্তিগুলির সাথে ফর্মটিতে সিএসএস এবং জেএস যুক্ত করা


36

আমাকে কোনও ফর্মের সাথে কিছু বাহ্যিক এবং স্থানীয় সিএসএস এবং জাভাস্ক্রিপ্ট ফাইল যুক্ত করতে হবে তবে আমি এটি করার সঠিক উপায় খুঁজে পাচ্ছি না। আমি কী কেবল জেএস এবং সিএসএস ফাইলগুলির জন্য পথ এবং URL যুক্ত করব?

আমি ধরে নিলাম $form['#attached']['css'][]এবং $form['#attached']['js'][]এটি করার জন্য সঠিক জায়গা, তাই তারা ফর্ম পুনর্নির্মাণে পুনরায় লোড হয়ে যায়। আমার মনে হচ্ছে কিছু একটা মিস করছি।

উত্তর:


71

আপনি ডকুমেন্টেশন তাকান?

গঠন করতে সিএসএস এবং জেএস সংযুক্ত করুন

http://api.drupal.org/api/drupal/developer!topics!forms_api_reference.html/7#attached

$form['#attached']['css'][] = drupal_get_path('module', 'ajax_example') . '/ajax_example.css';

$form['#attached']['js'][] = drupal_get_path('module', 'ajax_example') . '/ajax_example.js';

বাহ্যিক ফাইল

http://api.drupal.org/api/drupal/includes%21common.inc/function/drupal_process_attached/7

বাহ্যিক 'জেএস' এবং 'সিএসএস' ফাইলগুলিও লোড করা যায়। উদাহরণ স্বরূপ:

$build['#attached']['js']['http://code.jquery.com/jquery-1.4.2.min.js'] = array('type' => 'external');

আমার আছে. আপনি কি আমাকে বলতে পারেন কোথায় এটি বাহ্যিক সিএসএস ফাইলগুলি পরিচালনা করতে হয়?
ভিন্টরগ

Api.drupal.org/api/drupal/includes%21common.inc/function/… এ যান এবং 'বাহ্যিক' অনুসন্ধান করুন।
অ্যালেক্স গিল

2
কেবল একটি নোট - <module name>_form_<form id>_alterআপনার মডিউলে নামকরণ করা ফাংশন যুক্ত করে নির্দিষ্ট ফর্মের উপরে বর্ণিত জাভাস্ক্রিপ্ট যুক্ত করতে পারেন । : খোঁজা ফর্ম আইডি এখানে বর্ণনা করা হয়েছে drupal.stackexchange.com/questions/5802/...
Nux

1
এই উদাহরণটি খুব খারাপ কারণ আপনি ধরে নিচ্ছেন যে এটি ফর্মটিতে কেবলমাত্র সংযুক্তি হবে!
ডাবলজোশ

6
ডাবলজোশের মন্তব্যের অর্থ: সাধারণত অ্যারের পরিবর্তে এটির পরিবর্তে অ্যারেতে যুক্ত করা উচিত। সুতরাং উদাহরণ $form['#attached']['css'][] = drupal_get_path('module', 'ajax_example') . '/ajax_example.css';ইত্যাদি হওয়া উচিত ।
ট্যানিয়াস

11

ফর্মগুলিতে ইনলাইন সিএসএস যুক্ত করার পদ্ধতিটি এখানে ...

$form['#attached']['css'][] = array(
  'data' => '.my-example-element { display: none; }',
  'type' => 'inline',
);

মনে রাখবেন যে এটির পরিবর্তে সিএসএস অ্যারে যুক্ত করা উচিত । অর্থ আপনার ব্যবহার করা উচিত: অন্যান্য সংযোজন স্কোয়াশিং এড়ানোর চেয়ে ।['css'][] =['css'] =


6

এটি করার একটি উপায় এখানে। #after_buildসম্পত্তি ব্যবহার করে একটি ফাংশন কল । স্যুইচ ক্ষেত্রে আপনার ফর্ম আইডি পাস করুন।

function mymodule_form_alter(&$form, &$form_state, $form_id) {
  switch ($form_id) {
    case 'my_form':
      $form['#after_build'][] = 'mymodule_after_build';
      break;
  }
}

function mymodule_after_build($form, &$form_state) {
  $path = drupal_get_path('module', 'mymodule');
  drupal_add_js ("$path/mymodule.js");
  return $form; 
}

এছাড়াও আপনি এই ভাল টিউটোরিয়াল অনুসরণ করতে পারেন সিএসএস এবং জেএস যুক্ত করে ড্রুপাল ফর্মগুলিতে

আশাকরি এটা সাহায্য করবে. :)



আপনার drupal_add_jsকোনও ফর্ম ব্যবহার করা উচিত নয় । আপনি বৈধতা রাষ্ট্রের সমস্যাটি শেষ করবেন।
ডাবলজোশ

1
@ ডাবলজোশ এটি একটি তিন বছরের পুরানো উত্তর :)
প্রীতি মোহন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.