বিভিন্ন অঞ্চলে সামগ্রী ক্ষেত্রগুলি বিভক্ত করা


11

আমার পরিস্থিতি নিম্নরূপ: আমার এ, বি এবং সি ক্ষেত্রের সাথে একটি বিষয়বস্তুর টাইপ সেমিনার রয়েছে regions সেমিনারে কিছু ক্ষেত্র রয়েছে যা আমি সামগ্রী অঞ্চলে প্রদর্শিত হতে চাই, তবে সাইডবার বাম অঞ্চলেও।

কিভাবে আমি এই কাজ সম্পর্কে যান? ইতিমধ্যে এর আগেও উত্তর দেওয়া থাকলে ক্ষমা চাই। আমি একজন বিকাশকারী এবং হুক এবং প্রিপ্রসেসর ফাংশনগুলিতে ডুব দিতে দ্বিধা বোধ করি না। আমার কাছে ভিউজ মডিউল ইনস্টল আছে তবে এটি কখনও ব্যবহার করেন নি (এটি আমার প্রথম ড্রুপাল সাইট, যদি আপনি বলতে না পারেন: পি)।

চিয়ার্স।

সম্পাদনা: এটি দ্রুপাল 7 এর জন্য


দ্রুপালের কোন সংস্করণ?
কেভা

দুঃখিত, এটি ড্রুপাল for এর জন্য I've আমি আমার মূল প্রশ্নের সাথে সেই তথ্যটি যুক্ত করেছি।
লেস্টার পিবডি

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

উত্তর:


11

পৃষ্ঠার বিভিন্ন অঞ্চলে নোডের বিষয়বস্তু যুক্ত করার কোনও সহজ উপায় উপায় নেই। এই সমস্যাটি মোকাবেলার একাধিক উপায় রয়েছে।

নন-কোডিং উপায়: দর্শন ও ব্লক

একটি ভিউ তৈরি করুন

  • প্রকার: ব্লক
  • প্রাসঙ্গিক ফিল্টার: সামগ্রী: নিড N
    • ডিফল্ট মান: বর্তমান পৃষ্ঠা থেকে দখল
  • ক্ষেত্র: আপনি যা চান
  • ছাঁকনি:
    • সামগ্রীর ধরণ: সেমিনার

(প্লাস যা কিছু অ্যাডিটোনাল সেটিংস আপনি চান)

তারপরে প্রশাসক ব্লক পৃষ্ঠাতে যান সদ্য তৈরি হওয়া দৃশ্যের ব্লকটি, যে অঞ্চলে আপনি এটি প্রদর্শন করতে চান তাতে যান। এটি কেবলমাত্র সেমিনার নোড পৃষ্ঠাগুলিতে প্রদর্শিত হবে।

সমস্ত অঞ্চলের জন্য পুনরাবৃত্তি

থিম_প্রসেস_গ্রিওনের সাথে কোডিং ওয়ে ():

কোড কিছু এই মত দেখতে হবে

MYTHEME_preprocess_region(&$variables) {
  if (isset($node) && ($node->type == 'seminar' )) {
     //add new variable here.     
  }
}

এটি কেবল ড্রুপাল 7 এর জন্য। এখন এটি আপনার অঞ্চল.tpl.php এ উপলব্ধ।


1
ভিউ / ব্লক পদ্ধতির আসলে আমি পছন্দ করি তবে এটি প্রদর্শন স্যুটকে প্রস্তাব দেয় যেহেতু কেউ কেউ এটি আরও কাছে পৌঁছনীয়।
jedstrom

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

এই ধরনের ক্রেজি যে আমি এটি প্রায় একমাস জিজ্ঞাসা করেছি, উত্তরটি স্বীকার করেছি, তবে এখনই এই উত্তরটির প্রয়োগটি পাচ্ছি (যদিও আমি এর পরে ভিউ ব্যবহার করেছি)। আপনি দ্রুপাল 7 এর জন্য আপনার ভিউগুলির ব্যবহারটি কিছুটা স্পষ্ট করে বলতে পারেন? এটি উপস্থিত হয় যে আর্গুমেন্ট: ড্রুপাল for এর জন্য ভিউ 3 এ এনআইডি বিদ্যমান নেই Thanks ধন্যবাদ।
লেস্টার পিবডি

আমি এটি বের করেছিলাম। আর্গুমেন্টের ধারণাটি অ্যাডভান্সডের অধীন প্রাসঙ্গিক ফিল্টার দ্বারা প্রতিস্থাপিত হয়েছে।
লেস্টার পিবডি

ডি 7, প্রাসঙ্গিক ফিটলার: সামগ্রী: এনআইডি। সম্পাদনা করুন: আমি উত্তর দেওয়ার আগে আপনি এটি পেয়েছেন দেখুন
iStryker

7

ডিসপ্লে সুইট মডিউল আপনি এই কাজ করতে পারেন। নোড উপাদানগুলির লক্ষ্য হিসাবে থিম অঞ্চলগুলি প্রকাশ করতে আপনাকে ডিসপ্লে স্যুট এক্সট্রা মডিউল সক্ষম করতে হবে। এটি কীভাবে করবেন সে সম্পর্কিত তথ্য প্রদর্শন স্যুট ডকুমেন্টেশনের একটি ব্লক পৃষ্ঠায় যুক্ত ক্ষেত্রগুলিতে পাওয়া যাবে


5

আমারও একই সমস্যা ছিল সমাধানটি বেশ সহজ। আপনি এই সত্যটি ভিত্তি করে রাখতে পারেন যে ড্রুপাল 7 এ আমরা আমাদের নিজস্ব ভিউ_মোডটি সংজ্ঞায়িত করতে পারি, কেবলমাত্র সম্পূর্ণ এবং পরীক্ষক নয় (যেমনটি আমরা প্রাচীনতম সংস্করণগুলি থেকে জানি)। সুতরাং, আপনার অঞ্চলে ব্যবহারের জন্য অন্য ভিউ_মোডটি সংজ্ঞায়িত করুন: যেমন LEFTHAND। দ্রুপাল সামগ্রীর অঞ্চলে সম্পূর্ণ ভিউ_মোড প্রদর্শন করে। সুতরাং, আপনাকে সাইডবার বাম অঞ্চলে বাম দিক প্রদর্শন করতে দ্রুপালকে বলতে হবে।

  1. টেম্পলেট_প্রসেস_পৃষ্ঠে ()

    if ($vars['node']) {
    $vars['page']['sidebar_left'][] = node_view($vars['node'], 'lefthand');
    }

  2. Node.tpl.php এ বাম দিকের ভিউ মোডের জন্য একটি নতুন ডিসপ্লে যুক্ত করুন

    if ($view_mode == 'lefthand') {
    // render content fields here
    }


1
এই উত্তরটি সুপার-অতি-চতুর, এবং ভিউ মোডগুলি সংজ্ঞায়িত করার বাইরে কোনও বাহ্যিক মডিউলগুলির প্রয়োজন হয় না। প্রদর্শন স্যুটটির সহজ বিকল্প হ'ল সত্তা ভিউ মোডস: drupal.org/project/entity_view_mode
পল-মি

আমি সত্যিই এই এক পছন্দ করেছে। এটি নির্দিষ্ট পাতায় উপস্থিত হওয়ার জন্য যদি এটি কোনও ফাংশনে लपेटান। আমি if (array_key_exists('block_14',$vars['page']['main_content'])){}এটি কেবল নির্দিষ্ট ব্লকযুক্ত পৃষ্ঠাগুলিতে প্রদর্শিত করতে ব্যবহৃত হত ।
ডমিনিক উডম্যান

3

যদি ডিসপ্লে স্যুটটি আপনার প্রয়োজনের তুলনায় খুব বেশি লাগে (এটি দুর্দান্ত মডিউল তবে এটি আপনাকে কেবল কয়েকটি ক্ষেত্র পুনঃস্থাপনের প্রয়োজন হলে এটি ওভারকিল হতে পারে) কেবলমাত্র এই উদ্দেশ্যটির জন্য একটি মডিউল রয়েছে -> সিসি ব্লক

আমি জানি এটি 'সিসিকে' ব্লক নামে পরিচিত, তবে এটি ড্রুপাল 7 (যা সিসিকে এর কার্যকারিতাটি মূল দিকে নিয়ে আসে) এর সাথে কাজ করে।


1

@ প্যাট্রিক লুসান এর উত্তরে সামান্য পরিবর্তন, if ($vars['node'])আমাকে যে পৃষ্ঠাগুলিতে নোড ছিল না, যেমন ব্লক বা দর্শন পৃষ্ঠাগুলি সহ কাস্টম ফ্রন্ট পৃষ্ঠাতে সমস্যা তৈরি করছে।

পরিবর্তন:

if (array_key_exists('node', $vars))

যা সমস্যার সমাধান করেছে বলে মনে হচ্ছে।


0

ইতিমধ্যে এই জন্য একটি মডিউল আছে। মডিউল পৃষ্ঠা থেকে:

ব্লক হিসাবে ক্ষেত্রটি একটি ব্লকে বর্তমান নোডের এক বা একাধিক ক্ষেত্র প্রদর্শন করার একটি সহজ উপায় সরবরাহ করে।

এই মডিউলটির লক্ষ্য হল প্যানেল এবং প্রদর্শন স্যুটের মতো মডিউলগুলির জন্য হালকা ওজনের বিকল্প হওয়া বা কোনও ব্লক সংজ্ঞায়িত করতে ভিউগুলি ব্যবহার করা যা কেবল একটি ক্ষেত্র পুনরুদ্ধার করে।

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