প্রোগ্রাম মোডে ভিউ মোড কীভাবে পরিবর্তন করবেন?


11

আমি প্রোগ্রামটিমে নোডের ভিউ মোডটি পরিবর্তন করতে চাই। আমি hook_preprocess_node(&$vars)ভিউ মোডটি ব্যবহার করেছি এবং সেট করেছি :

function moduleName_preprocess_node(&$vars) {
      // if conditions to apply particular view mode
      $vars['view_mode'] = 'teaser';
      $vars['elements']['#view_mode'] = 'teaser';
}

তবে এটি প্রত্যাশার মতো কাজ করছে না। আমি কি এখানে কিছু মিস করছি?


আপনি কি এটি পর্যালোচনা করার চেষ্টা করেছিলেন? drupal.org/node/1334206
chrisjlee

উত্তর:


13

প্রিপ্রসেস ফাংশনে ভিউ মোডে পরিবর্তন আনতে এটি খুব দেরী করে চলেছে।
ভিউ মডিউলটি পরিবর্তনের সঠিক উপায় হুক_এনটিটি_ভিউ_মোড_াল্টার () প্রয়োগ করছে , যা সত্তার সামগ্রীটি রেন্ডার করার আগে ডাকা হয়। উদাহরণস্বরূপ, নোড_ভিউ () -তে , এই হুকটি নোড_বিল্ড_কন্টেন্ট () থেকে আহ্বান করা হয়েছে , যা প্রথম ফাংশন থেকে ডাকে node_view()

  if (!isset($langcode)) {
    $langcode = $GLOBALS['language_content']->language;
  }

  // Populate $node->content with a render() array.
  node_build_content($node, $view_mode, $langcode);

4
ধন্যবাদ. দয়া করে মনে রাখবেন যে এই হুকটির জন্য
ড্রুপাল

6

আপনার যদি কিছু নির্দিষ্ট পৃষ্ঠাগুলির জন্য এটি পরিবর্তন করতে হয় তবে আমি মোড পৃষ্ঠাটি দেখার পরামর্শ দেব । এটি ব্যবহার করা বেশ সহজ এবং সহজ।


ধন্যবাদ. তবে আমার ভিন্ন দৃশ্য আছে। আমি একই বিষয়বস্তুর ধরণের নোডগুলির জন্য পৃথক ভিউ মোড ব্যবহার করতে চাই। আমি নোডে ব্যবহৃত করিতত্ত্বটিতে ভিউ মোডটি পরিবর্তন করতে চাই। মানে নোডগুলির একই ইউআরএল নিদর্শন থাকবে।
cisharp
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.