আমি কোনও নোডের জন্য অতিরিক্ত ভিউ মোডগুলি কীভাবে যুক্ত করব?


19

আমি একটি কাস্টম সামগ্রী প্রকার তৈরি করছি। ডিফল্টরূপে, নোডগুলি কেবলমাত্র দুটি দর্শন মোড ( fullএবং teaser) সমর্থন করে:

function mymodule_view($node, $view_mode)
{
    if ($view_mode == 'full') {
         $node->content['#theme']= 'my_full_node_view_theme';
    }

    if ($view_mode == 'teaser') {
          $node->content['#theme']= 'my_teaser_node_view_theme'; 
    }
    return $node;
}

আমি এই নোড প্রকারের জন্য আরও কিছু ভিউ মোড যুক্ত করতে চাই, যেমন:

  • small_box
  • small_box_with_user_pic
  • big_box

এবং এই জাতীয় কোড সহ নোড রেন্ডার করতে চান:

$node = node_load($my_nid);
$output = drupal_render(node_view($node, 'big_box'));

কোনও পরামর্শ?


2
আমি এই mearra.com/blogs/juha-niemi/drupal-7-custom-node-view- মডেলগুলি পেয়েছি সম্ভবত এটি সহায়ক!
বিশুদ্ধ

ভিউ মোড সম্পর্কে টিম কসগ্রোভের উপস্থাপনাটি এখানে রয়েছে: টিমকসগ্রোভ ডটকম / ড্রপালকন- ভিউমোডস / #1 আপনি একটি নতুন দর্শন মোড যুক্ত করার জন্য hook_entity_info_alter ব্যবহার করবেন ( উদাহরণস্বরূপ )।
অ্যারো

উপস্থাপনাটি দুর্দান্ত ছিল।
নিক্সম্যাক

1
ওয়ার্কিয়াসের দ্বারা উল্লিখিত লিঙ্কটি ওয়ান্ডারক্রাট
এন্ড্রে রুডেনকো

পৃষ্ঠাটি চলে গেছে। স্লাইডগুলি যদিও এখানে রয়েছে: স্লাইডগুলি. नेट
ফেজ 2

উত্তর:


23

প্রথমে আমাদের hook_entity_info_alter সহ অতিরিক্ত ভিউ মোড যুক্ত করতে হবে

function customuserblog_entity_info_alter(&$entity_info) {
     $entity_info['node']['view modes']['blog_post_big'] = array(
        'label' => t('simple big  teaser'),
        'custom settings' => TRUE,
      );
    }

// আমরা অতিরিক্ত থিম ফাংশন বা টেম্পলেট সংযুক্ত করতে এবং হুক_ভিউয়ের সাথে ভেরিয়েবল যুক্ত করতে পারি

function customuserblog_view($node, $view_mode) {
  if ($view_mode == 'blog_post_big') {
   // add some additional variables for template
    $node->content['#theme'] = 'custom_blog_big_teaser_view';
  }
}

// আমাদের হুক থিমে

customuserblog_theme(){
    return array(
      'custom_blog_big_teaser_view'= array(
          'render element' => 'form',
          'template' => 'custom-blog-big-teaser-view',
       ),

    );
}

আমি আপনার সমাধান ব্যবহার। এটি ভাল তবে এই হুক কাস্টমসারব্লগ_ভিউ ($ নোড, $ ভিউ_মোড) কাজ করে না। তাই আমি কাস্টম ভিউ মোডের জন্য কাস্টম টিপিএল তৈরি করার জন্য বেনামে_অনুপ্রযুক্তি_প্রিয়_প্রসেস_নোড (& ars ভার্স) সহ হুক_প্রিপ্রসেস_নোড ব্যবহার করেছি।
মেহেরদাড201

আমি এই
কোডটিতে

10

তাহলে সব যদি আপনি চান কাস্টম ভিউ মোড হয়, তাহলে সত্তা মোডে সাহায্য করতে পারেন। ডিসপ্লে স্যুটটি কাস্টম ভিউ মোড তৈরি করা, নতুন সিউডো-ফিল্ড তৈরি করা এবং বিভিন্ন ভিউ মোডে বিভিন্ন উপাদান রাখার জন্য একটি দুর্দান্ত টানা ও ড্রপ ইন্টারফেসও সহজ করে তোলে।

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


ধন্যবাদ কিন্তু অতিরিক্ত মডিউল ইনস্টল প্রশংসা ফাটান মডিউল কোডগুলি কিছু সহায়ক দিতে পারে এই মডিউল জন্য ধন্যবাদ নয়
werqious

@ অদ্বিতীয় আপডেট উত্তর
অ্যান্ডি

1

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


1

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

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

ফাইল 1: আমার_মডিউল_ভিউ_মোড.মডিউল

<?php
//Add more view modes for content type displays, in addition to default and teaser.
function almagest_view_modes_entity_info_alter(&$entity_info) {

//NB: media_ prefix required.
//You can repeat the following section for any view modes you'd like to create.

// First View Mode
// tag 1 references the entity type, ex. node or file
// tag 3 provides a machine name for your mode
  $entity_info['node']['view modes']['my_view_mode'] = array(
    'label' => t('My View Mode'), // This is what you'll see in your "Manage Display" tab.
    'custom settings' => TRUE,
  );

// Another View Mode    
  $entity_info['file']['view modes']['my_other_view_mode'] = array(
    'label' => t('Another View Mode'),
    'custom settings' => TRUE,
  );
}

ফাইল 2: আমার_মডিউল_ভিউ_মোডস.in.ফো o

name = My Module View Modes
description = Add additional "View Modes" for entities in this module. Helpful for additional displays in views or node rendering.
package = My Modules
version = 7.x - 0.1
core = 7.x

এই দুটি ফাইল আপনার মডিউল ফোল্ডারে আপনার আমার_মডিউল_ভিউ_মোড ফোল্ডারে সংরক্ষণ করুন এবং সক্ষম করুন। আপনার ক্যাশে সাফ করুন এবং এখন আপনি তাদের নিজ নিজ প্রতিষ্ঠানে নতুন দর্শনীয় মোডগুলি দেখতে পাবেন।


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