একটি নির্দিষ্ট সামগ্রীর ধরণে জাভাস্ক্রিপ্ট যুক্ত করুন


9

বিষয়বস্তুর ধরণের ভিত্তিতে একটি নির্দিষ্ট পৃষ্ঠায় জাভাস্ক্রিপ্ট ফাইল যুক্ত করার সেরা উপায়টি আমি জানতে চাই। উদাহরণস্বরূপ, আমি এটি যুক্ত করতে চাই:

<script type='text/javascript' src='http://maps.google.com/maps/api/js?sensor=false'></script>

এখনও অবধি, আমি যা করেছি তা আমার নির্দিষ্ট সামগ্রীর ধরণের সাথে যুক্ত করার জন্য এটি ব্যবহার করছে। মানচিত্র_পৃষ্ঠা বিষয়বস্তুর ধরণের জন্য, আমি পৃষ্ঠাতে নীচের দুটি লাইন কোড যুক্ত করছি - map_page.tpl.php।

drupal_add_js("http://maps.google.com/maps/api/js?sensor=false", 'external');
$scripts = drupal_get_js();

অন্য কোন ভাল উপায় আছে? সম্ভব হলে কিছু উদাহরণ দিতে পারে, বর্তমানে সত্যিকার অর্থেই ভাল বোঝা যাচ্ছে না ...

উত্তর:


6

আমি যথাযথ ড্রুপাল 7 সমতুল্য সম্পর্কে মন্তব্য করতে পারি না, তবে ড্রুপাল 6 সাইটে আমি এটি একটি টেমপ্লেট_প্রিপ্রসেস_পৃষ্ঠায় করি

সিদ্ধান্ত নেওয়ার জন্য আমার কিছু যুক্তি থাকবে (তা প্যানেলের উপর ভিত্তি করে arg()বা page_manager_get_current_page()থেকে) এবং তারপরে $vars["scripts"]বাহ্যিক স্ক্রিপ্টটি প্রিপেন্ড করতে পারি। আমি প্রিপেন্ড করি যাতে কোনও স্থানীয় স্ক্রিপ্টগুলির সাথে নির্ভরতা সমস্যায় না পড়ি।

আমি কখনও কখনও $global_scriptsগুগল এপিআই এবং এসডাব্লুএফওবজেক্টের মতো চিন্তার জন্য বলা একটি নতুন অঞ্চলও সেটআপ করব যা আমি সিডিএন থেকে লোড করতে চাই $scriptsএবং এটি পৃষ্ঠার টেম্পলেটে আগে মুদ্রিত হয়ে যায় ।

সত্যি কথা বলতে, যদিও আমি সাধারণত সমস্ত পৃষ্ঠায় সমস্ত জেএস থাকি যাতে ফাইলগুলি ক্যাশে হয়।


6

যেহেতু দ্রুপাল আপনাকে পুনরায় template_preprocess_nodeসংজ্ঞা দিতে দেবে না (কারণ এটি ইতিমধ্যে নোড.মডিউলে সংজ্ঞায়িত হয়েছে), তাই আমি আমার কাস্টম মডিউলে একটি প্রিপ্রসেসর ফাংশন যুক্ত করেছি:

function mymodule_preprocess_node(&$vars) {
  if ($vars['type'] == 'my-node-type') {
    drupal_add_js(drupal_get_path('module', 'mymodule') . '/myjs.js');
  }
}

আমি এর preprocess_nodeপরিবর্তে ব্যবহার করেছি preprocess_pageকারণ নোডের ধরণে পৌঁছানো আরও সহজ। আপনি যদি কোনও জাভাস্ক্রিপ্ট ফাইলটিকে প্রকৃতপক্ষে উল্লেখ করেন তবে তা স্বয়ংক্রিয়ভাবে ক্যাশে হবে ( পরামিতি বিভাগটি দেখুন )।


2

আপনি সামগ্রীর ধরণের জন্য হুক_নোড_ভিউ চেক ব্যবহার করতে পারেন এবং তারপরে আপনি ইতিমধ্যে যা করছেন তাতে জেএস যুক্ত করতে পারেন।

অথবা

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


0

একটি সহজ সমাধান হ'ল অ্যাড_জেগুলি রাখুন:

  drupal_add_js('drupal_get_path('module', 'mymodule') . '/myjs.js');

পৃষ্ঠা / নোড টেম্পলেট.এফপি এ।

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