আমি কীভাবে দ্রুপাল.বিহারীদের ক্রম নিয়ন্ত্রণ করতে পারি?


9

আমি চাই মডিউল এক্স থেকে জাভাস্ক্রিপ্ট কোডটি মডিউল ওয়াইয়ের একটিটি চালানোর পরেই চলবে। এটি করার সর্বোত্তম উপায় কী?

উত্তর:


5

ড্রুপাল 7 দ্বারা ব্যবহৃত জাভাস্ক্রিপ্ট কোডটি নিম্নলিখিত:

Drupal.attachBehaviors = function (context, settings) {
  context = context || document;
  settings = settings || Drupal.settings;
  // Execute all of them.
  $.each(Drupal.behaviors, function () {
    if ($.isFunction(this.attach)) {
      this.attach(context, settings);
    }
  });
};

ড্রুপাল 6 অনুরূপ কোড ব্যবহার করে:

Drupal.attachBehaviors = function(context) {
  context = context || document;
  if (Drupal.jsEnabled) {
    // Execute all of them.
    jQuery.each(Drupal.behaviors, function() {
      this(context);
    });
  }
};

যদি জাভাস্ক্রিপ্ট গ্যারান্টি দেয় যে অবজেক্ট / অ্যারে বৈশিষ্ট্যগুলি সর্বদা তারা যুক্ত করা একই ক্রমে বিভ্রান্ত হয় তবে মানগুলি jQuery.each()দ্বিতীয় প্যারামিটার হিসাবে ব্যবহৃত ক্রিয়ায় একই পংক্তিতে প্রথম পরামিতি হিসাবে পাস করা অ্যারেতে প্রবেশ করা হবে।
এর অর্থ Drupal.behaviorsহ'ল inোকানো প্রথম আচরণটি প্রথমে কার্যকর করা হয়।
এই ক্ষেত্রে, আপনার মডিউল দ্বারা সংজ্ঞায়িত আচরণগুলি প্রথমে কার্যকর করার অনুমতি দেওয়ার জন্য আপনি এর জন্য হালকা ওজন ব্যবহার করতে পারেন। আপনি যদি চান যে এগুলি অন্যদের আগে কার্যকর করা হয়, মডিউল ওজন -50 নির্ধারণ করা উচিত; অন্যান্য মানগুলিও কাজ করতে পারে। আপনি যদি ড্রুপাল 7 ব্যবহার করে থাকেন তবে, দ্রুপাল_এডিডি_জেএস ()জাভাস্ক্রিপ্ট কোডের সাথে একটি ওজন যুক্ত করতে দেয়; একটি হালকা ওজনযুক্ত জাভাস্ক্রিপ্ট কোডটি HTML আউটপুটটিতে প্রথম উপস্থিত হয়। ভেবেছিল দ্রুপাল 6 দিয়ে এটি সম্ভব নয়।

জাভাস্ক্রিপ্ট গ্যারান্টি দেয় না যে বৈশিষ্ট্যগুলি যুক্ত করা হয় একই ক্রিয়াকলাপে ট্র্যাশ করা হয়েছে। এর অর্থ হ'ল বিভিন্ন জাভাস্ক্রিপ্ট বাস্তবায়নগুলি একটি ভিন্ন ক্রম ব্যবহার করে একই বৈশিষ্ট্যগুলি উপস্থাপন করবে; এর অর্থ হ'ল একই ক্রম একই ব্রাউজারের বিভিন্ন সংস্করণে পরিবর্তিত হতে পারে।


আমি একবার এমন একটি পৃষ্ঠা খুঁজে পেয়েছি যা কিছু মডিউল দ্বারা ব্যবহৃত ওজন তালিকাভুক্ত করে। আমি সেই পৃষ্ঠার ইউআরএলটি মনে রাখছি না, এবং যদি পৃষ্ঠাটিতে কেবলমাত্র নির্দিষ্ট মডিউল অন্তর্ভুক্ত থাকে বা এটি সম্পূর্ণ ছিল। আমি যদি পৃষ্ঠাটি পাই তবে আমি লিঙ্কটি এখানে জানাব।
কিমলালুনো

1
আপনি সর্বদা সিস্টেম সারণিতে যাচাই করতে পারেনselect name, weight from system where type = 'module' order by weight ASC, name
cam8001

দুর্ভাগ্যক্রমে আমার অন্যান্য মডিউলের (উল্লম্ব_ট্যাবস) পিএইচপি এর আগে চালনার জন্য আমার মডিউলটির পিএইচপি (মায়োমডিউল) প্রয়োজন, তবে মাইমোডুলের জেএস উল্লম্ব_ত্যাবের জেএস পরে চালানো দরকার । ওজন আচরণের জন্য বিশুদ্ধভাবে জাভাস্ক্রিপ্ট ভিত্তিক উপায় আছে কি?
cam8001

@ ক্যাম 8001: আমি এটি জানি, তবে এর অর্থ হ'ল কোনও মডিউল দ্বারা ব্যবহৃত হালকা ওজন জানতে আপনার সমস্ত মডিউল ইনস্টল করা উচিত। আমি যে পৃষ্ঠাটি পেয়েছি তা মডিউল ওজন তালিকাভুক্ত করেছে এবং এটি কার্যকর হতে পারে যখন আপনার মডিউলকে প্রতিটি মডিউলের আগে সম্পাদন করার জন্য কোন ওজন নির্ধারণ করা উচিত know আমি জানি, আপনি কেবলমাত্র একটি খুব হালকা ওজন ব্যবহার করতে পারেন তবে আপনি এমন ওজন প্রয়োজন যা প্রয়োজনের তুলনায় হালকা।
কিমলালুনো

@ ক্যাম 8001: সেক্ষেত্রে আপনি যা করতে চাইছেন তা সম্পাদন করার কোনও উপায় নেই, এতে থাকা সামগ্রীর ক্রম পরিবর্তন ছাড়া Drupal.behaviors; আমি যেমন প্রতিবেদন করেছি $.each(Drupal.behaviors)তেমনি বস্তুগুলি তাদের একই শৃঙ্খলায় listsোকানো হয়েছে যাতে তাদের সনাক্তকারীকে ভিত্তি করে নয়।
কিমলালুনো

5

আচরণ ওজন মডিউলটি ব্যবহার করুন ।
(আপনি এটি কোনও প্রোডাকশন সাইটে ব্যবহার করার আগে দয়া করে এটিকে কিছু পরীক্ষা দিন)

মডিউলটি আচরণগুলির সাথে ওজনগুলিকে সংযুক্ত করতে দেয় এবং তারপরে এটি হাইজ্যাক করে / প্রতিস্থাপন drupal.attachBehaviorsকরে একটি কাস্টম বাস্তবায়ন করে, যা ওজনকে সম্মান করে।


পরিবর্তে মডিউল ওজন কেন না, অন্য উত্তরে পরামর্শ দেওয়া হয়েছে?

  • মডিউল ওজন বেশ ভারী সরঞ্জাম। এটি মডিউলের সমস্ত হুক বাস্তবায়ন (পিএইচপি) এবং আচরণ (জেএস) এর ক্ষেত্রে প্রযোজ্য, যখন আমরা কেবল একটি একক আচরণে আগ্রহী।
  • কোনও জেএস বস্তুতে বৈশিষ্ট্যের ক্রমটি গতিযুক্ত নয় (যদিও এটি প্রায় সমস্ত ব্রাউজারে আপনি যেমন আশা করেন তেমন প্রয়োগ করা হয়)।

দেখুন
কোনও জাভাস্ক্রিপ্ট অবজেক্টের ক্ষেত্রগুলির ক্রমটি যখন লুপিংয়ের মাধ্যমে পূর্বাভাসযোগ্য? এবং
উপাদানসমূহ ক্রম - জাভাস্ক্রিপ্টে (… ইন…) লুপের জন্য


@ কিয়াম, আমি যদি এটিকে drupal.org- এ "আচরণের ওজন" ("বেজট") তৈরি করি, আপনি কি সহ-রক্ষণাবেক্ষণকারী হিসাবে যোগদান করবেন? এটি সম্ভবত বেশ ছোট একটি মডিউল হতে চলেছে তবে এটি অন্য কোনও কিছু দিয়ে প্রেরণ করার চেয়ে ভাল। আমার কাছে ডি 6 এর স্থানীয়ভাবে একটি নমুনা বাস্তবায়ন রয়েছে বলে মনে হচ্ছে এটি কার্যকর।
donquixote

এটি সবেমাত্র সম্পন্ন হয়েছে .. আপনি এখনও আমন্ত্রিত রয়েছেন :)
qu ই

drupal.org/node/1302126 - আমি আশা করি এটি ডি 8 তে মূল হবে :)
ডনকুইক্সোট

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

শুধু বলছি, লোকেরা ব্যবহারের ক্ষেত্রে জিজ্ঞাসা করছে। drupal.org/node/1302126#comment-5911632
donquixote

0

ড্রুপাল 6 এর জন্য -

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

যদি এটি দ্রূপাল 6 এর "ক্লিনস্ট" সমাধানটি পোর্টেবল হওয়ার দরকার হয় তবে একটি নতুন মডিউল যুক্ত করা যা পিএইচপি সহ আপনার মডিউলের চেয়ে আলাদা ওজন ধারণ করে। এমনকি আপনার একই ফোল্ডারে দুটি মডিউল থাকতে পারে, প্রথমটির উপর নির্ভর করে প্রথম মডিউল তৈরি করতে পারে এবং ইনস্টল / আপডেট হুকের ওজন সামঞ্জস্য করতে পারে। যার কোনটিই প্রয়োজনীয় নয়, কেবল ইনস্টলেশনটিকে সহজ করে তোলে।

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