নির্দিষ্ট ভিউ মোডের জন্য কীভাবে টেমপ্লেট সরবরাহ করবেন?


46

আমি টেমপ্লেট সহ অনুসন্ধান ফলাফল দেখুন মোডটি থিম করতে চাই।

আমার মাথায় এটি ছিল যে টেম্পলেট ফাইল নোডের নামকরণ - নিবন্ধ - সন্ধান-ফলাফল.tpl.php কৌশলটি করবে তবে আমি অবশ্যই এ সম্পর্কে ভুল wrong

আমি বুঝতে পেরেছি যে আমি নোড করতে পারি - আর্টিকেল.টিপিএলপিএফপি এবং এই চেক-ভিউ_মোডের মধ্যে, তবে অন্য যে সমস্ত ভিউ মোডের সাথে আমি টেমপ্লেট করতে চাই না এটি এটি বিশ্রী।

ধারনা?

উত্তর:


45

নোড প্রিপ্রোসেস ফাংশনে থিম হুক পরামর্শ যুক্ত করার কৌশলটি করা উচিত:

function MYMODULE_preprocess_node(&$vars) {
  if ($vars['node']->type == 'article' && $vars['view_mode'] == 'search_result') {
    $vars['theme_hook_suggestions'][] = 'node__article__search_result';
  }
}

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

বিশেষ দ্রষ্টব্য। আপনি এটির MYTHEME_preprocess_node()পরিবর্তে ফাংশনটি কল করে আপনার থিমের টেম্পলেট.এফপি ফাইলটিতে এটি করতে পারেন।


2
উজ্জ্বল! ধন্যবাদ. এখানে কেবল একই পরামর্শের জন্য একটি লিঙ্ক যুক্ত করতে যাচ্ছিলেন
artfulrobot

1
কোনও সমস্যা নেই :) জাস্ট এফআইআই, search_resultইতিমধ্যে একটি ভিউ মোড হিসাবে ঘোষণা করা হয়েছে যাতে hook_entity_info_alter()আপনার ক্ষেত্রে প্রয়োগের প্রয়োজন হয় না
ক্লাইভ

3

সত্তা দৃশ্য মোড মডিউল এই টেমপ্লেট পরামর্শ স্বয়ংক্রিয়ভাবে যোগ করা

মোডগুলি তৈরি করতে ড্রুপাল 7 উত্তরসূরি যা প্রশাসকদের সত্ত্বার জন্য কাস্টম ভিউ মোডগুলি সংজ্ঞায়িত করতে দেয়। Hook_entity_info_alter () এর মাধ্যমে সত্ত্বা রেজিস্ট্রিতে কাস্টম সত্তাগুলি যুক্ত করা হয় যাতে কোনও সত্তার জন্য ভিউ মোডের তালিকা সরবরাহ করতে অ্যান্টি_জেট_ইনফো () ব্যবহার করে এমন কোনও কোডে তারা উপলব্ধ। এর মধ্যে নোড এবং ব্যবহারকারীর রেফারেন্স ফিল্ডস, ভিউস ইত্যাদি অন্তর্ভুক্ত রয়েছে


2

এখানে একটি ফাংশন যা আপনাকে গতিশীলভাবে নতুন যুক্ত করতে দেয়। যদি আপনি কোনও ঘোষণা করে থাকেন তবে এটি প্রিপ্রেসেস ফাংশনটিকেও কল করে।

তারপরে drush cache-clear theme-registryএটি কাজ করার জন্য কল করুন ।

এটি আপনার থিমের নামের সাথে থেম প্রতিস্থাপন করুন এবং এটি আপনার থিমস টেম্পলেট.এফপি ফাইলটিতে রাখুন।

উদাহরণস্বরূপ Droid নামের থিমের জন্য আপনি এটিকে কল করবেন droid_preprocess_node(&$variables, $hook) {...

function THEME_preprocess_node(&$variables, $hook) {
  $view_mode = $variables['view_mode'];
  $content_type = $variables['type'];
  $variables['theme_hook_suggestions'][] = 'node__' . $view_mode;
  $variables['theme_hook_suggestions'][] = 'node__' . $view_mode . '_' . $content_type;

  $view_mode_preprocess = 'THEME_preprocess_node_' . $view_mode . '_' . $content_type;
  if (function_exists($view_mode_preprocess)) {
    $view_mode_preprocess($variables, $hook);
  }

  $view_mode_preprocess = 'THEME_preprocess_node_' . $view_mode;
  if (function_exists($view_mode_preprocess)) {
    $view_mode_preprocess($variables, $hook);
  }
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.