নোড / সম্পাদনা এবং অন্যান্য ফর্মগুলিতে জেএস এবং সিএসএস যুক্ত করার সঠিক উপায়


10

আমি প্রচুর জেএস নিয়ে একটি সাইট তৈরি করছি এবং আমি জেএস কোডটি কোথায় রাখব তা ভাবছি। সর্বোত্তমভাবে আমি প্রতিটি মডিউল দিয়ে জেএস রাখতে চাই থিম স্তরটি নয়। কিছু সামগ্রী ব্লক ইত্যাদি হিসাবে প্রকাশ করা যেতে পারে

তবে ক্যাশে নিয়ে আমার কিছু সমস্যা হচ্ছে। আমার উদাহরণে নোড সম্পাদনা ফর্মটিতে আমাকে জেএস এবং সিএসএস যুক্ত করতে হবে। আমি হুক_ব্লক_ভিউ ব্যবহার করেছি, তবে এটি ক্যাশে হয়েছে। সুতরাং নোড সম্পাদনা ফর্মটিতে যদি কোনও ত্রুটি থাকে তবে ড্রুপাল_এডিডি_জেএস এবং ড্রুপাল_এডিডি_সিএসএস ফাংশনগুলি কল করা হয় না। হুক_নোড_প্রিয়পারে একই কথা সত্য বলে মনে হচ্ছে।

আপনি কোথায় জেএস এবং সিএসএস স্তর ইনপুট করবেন? এবং নোক সম্পাদনা ফর্মটিতে কোনও ত্রুটি থাকলেও কী এমন হুকগুলি কল করা আছে?

উত্তর:


6

আপনি যদি বিশেষভাবে নোড সম্পাদনা পৃষ্ঠায় জেএস এবং সিএসএস যুক্ত করতে চান (বা সাধারণভাবে কোনও ফর্ম), তবে এটি করার সবচেয়ে ভাল এবং সঠিক জায়গা হুক_ফর্ম_াল্টার () এবং আপনার যে সম্পত্তিটি ব্যবহার করা উচিত তা হল # after_build।

ডিও-তে এই মন্তব্য আপনাকে ঠিক কী করতে হবে তা বলে - http://drupal.org/node/1253520#comment-4881588

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


ধন্যবাদ, ঠিক আমার যা দরকার ছিল। এখন তিনি একটি দুর্দান্ত ফর্ম পেয়েছেন, তিনি তার চেয়ে অনেক ভাল। এই জাতীয় সাইটের স্থাপত্য সম্পর্কে কোনও মতামত?
জেনস

খুশী এটা কাজ করে। যখন এটি হয় তখন আপনার উত্তরটি 'উত্তর স্বীকৃত' হিসাবে চিহ্নিত করা উচিত যাতে প্রশ্নটি উত্তরহীন প্রশ্নের তালিকায় উপস্থিত না হয় এবং আপনাকে যে ব্যক্তি সাহায্য করে সে "কর্ম" হয়ে যায়। আমি দেখতে পাচ্ছি যে আপনি এখানে নতুন আমিও আছি তবে অন্যান্য স্ট্যাকওভারফ্লো পরিষেবাগুলিতে আমার আরও সক্রিয় অ্যাকাউন্ট রয়েছে এবং আমি এই জায়গাটি পছন্দ করি।
সুমিত পরিক

আর উহু .. ঠিক যে আপনি একটি ফর্মে জাতীয় সিএসএস প্রয়োজন বুদ্ধিমান এবং সাইট স্থাপত্য মন্তব্য করার প্রয়াসে একটি অপরাধ :-p কম কোন হতে হবে
Sumeet Pareek

অবশ্যই, এখন উত্তর।
জেনস

1
@ সুমীটপ্যারিক আমি আপনার উত্তরটিকে কমিয়ে দিয়েছি (তবে কোনও অপরাধ হয়নি) কারণ #attachedপ্রায় কোনও ক্ষেত্রেই ব্যবহারের পরামর্শ দেওয়া হচ্ছে। তদ্ব্যতীত, দ্রুপাল_এডিডি_জেএস / সিএসএস দ্রুপাল ৮
অবমূল্যায়ন

6

অন্য রেন্ডার উপাদানগুলির সাথে জেএস / সিএসএস সর্বদা যথাযথভাবে লোড হয়ে যায় তা নিশ্চিত করতে আপনার # সংযুক্ত সম্পত্তিটি ব্যবহার করা উচিত ।


আমি অনুভব করেছি যে এটি কীভাবে ব্যবহার করবেন #attachedএবং উদাহরণস্বরূপ যে সমস্যাটি আপনি এড়িয়ে চলেছেন সে সম্পর্কে কিছু অতিরিক্ত তথ্য থেকে এটি উপকারী হবে ।
মাইকেল গ্রিসম্যান

@ মিশেল গ্রেইজম্যান আমাকে বলতে হবে যে আমি এখানে তত্ক্ষণাত কোড যুক্ত করার মান দেখতে পাচ্ছি না। আমি যে লিঙ্কটি দিয়েছি তা এটি আরও ভালভাবে বজায় রাখা হবে, এটি কীভাবে করা যায় তার অফিসিয়াল ডকুমেন্টেশন। আমার উত্তরটি কী করণীয় তা ব্যাখ্যা করে , তবে ফর্ম এপিআই ডকুমেন্টেশন কীভাবে সঠিক স্থান ।
লেথেরিয়ন

3

আমি এই উত্তরগুলি এবং মন্তব্যগুলি অত্যন্ত প্রয়োজন উদাহরণ কোডটি অনুভব করেছি, বিশেষত @ আয়েশকে এবং @ লেটারিওনের। এটি একটি মন্তব্যের জন্য খুব দীর্ঘ, সুতরাং দয়া করে উত্তরটি ক্ষমা করুন। যদি এটি আপনার পক্ষে উপকারী হয় তবে দয়া করে সুমিত বা লেথেরিয়ানের উত্তরটি আপ-আপ করুন। এছাড়াও, নিম্নলিখিত উদাহরণটি স্পষ্টতই সিএসএস যুক্ত করে তবে জাভাস্ক্রিপ্ট যুক্ত করার জন্য এটি প্রায় অভিন্ন হবে।

@ সুমিতের উত্তর ব্যবহার করা হলেও এর #attachedপরিবর্তে সম্পত্তিটি ব্যবহার করা drupal_add_cssদেখে মনে হচ্ছে:

/* Implements hook_form_FORM_ID_alter() */
function MY_MODULE_form_MY_FORM_ID_alter(&$form, &$form_state, $form_id) {
  $form['#after_build'][] = 'MY_MODULE_some_function_name_after_build';
}

function MY_MODULE_some_function_name_after_build($form, &$form_state) {
  $style_path = drupal_get_path('module','MY_MODULE') . '/css/my_css.css';
  // drupal_add_css('file', $style_path);
  $form['#attached']['css'][] = $style_path;
  return $form;
}

অবশেষে, অবনতি এই পোস্টেdrupal_add_css পাওয়া যাবে । এটি অনেকের কাছেই সংবাদ হতে পারে যাদের জন্য দ্রুপাল_এডি_এক্সএক্সএক্সএক্স ঠিক আমার পক্ষে কাজ করছিল।


#after_buildবিট আমার জ্ঞান আজেবাজে কথা শ্রেষ্ঠ,, এবং কেবল সরানো উচিত। ( #after_buildসমাধান প্রদানের উত্তরের উপর অনুরূপ মন্তব্য রয়েছে ) আমার মনে হয় এটি আমার নিজের সংক্ষিপ্ত উত্তর ভাল কেন তা নিজেই ব্যাখ্যা করে। যদি আপনি প্রদত্ত লিঙ্কটি সহজভাবে দেখে থাকেন তবে আপনি একই কোডটি পেয়ে যাবেন তবে অপ্রয়োজনীয় বিট ছাড়াই।
লেথেরিয়ন

0

ড্রুপাল 8 এর জন্য, আমি আপনাকে এই নিবন্ধটি দেখার পরামর্শ দেব

libraries.yml

something: 
  version: VERSION
  js: 
    js/something.js: {}
  dependencies: 
    - core/jquery

.module

function MODULE_page_attachments(array &$page) {
  $page['#attached']['library'][] = MODULE/something;
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.