ড্রুপাল 8 এ কীভাবে কোনও টেম্পলেট রেন্ডার করা যায়


12

আমি ড্রুপাল ৮-তে একটি টেম্পলেট রেন্ডার করার চেষ্টা করছি D দ্রুপাল In-এ, আমি হুক_থেম দিয়ে একটি থিম তৈরি করব, আমার মডিউলে একটি টেম্পলেট ডিরেক্টরি তৈরি করব, টেমপ্লেট ফাইলটি এতে ফেলে দেব এবং আমি এটি থিম () দিয়ে প্রদর্শন করতে পারতাম। দ্রুপাল 8 এর সাথে আমি কীভাবে দক্ষতা করব? আমি নিম্নলিখিত চেষ্টা করেছিলাম, কিন্তু এটি ত্রুটিযুক্ত:

টুইটার_পুল.মডিউলে

/ **
 * হুক_থিম () প্রয়োগ করে।
 * /
ফাংশন টুইটার_পুল_থমে ($ বিদ্যমান, $ প্রকার, $ থিম, $ পথ)
  রিটার্ন অ্যারে (
    'টুইটার_পুল_ইউয়েট_লিস্টিং' => অ্যারে (
      'ভেরিয়েবল' => অ্যারে (
        'বিবরণ' => অ্যারে (),
      ),
      'টেমপ্লেট' => 'টেমপ্লেট / টুইটার_পুল_ইউইট_লিস্টিং',
    ),
  );
}

টুইটার_পুল / টেম্পলেটগুলির অভ্যন্তরে: টুইটার_পুল_টুইট_লিস্টিং html.twig

আমার ব্লকের ভিতরে:

et টুইট_টেমপ্লেট = অ্যারে ('# থিম' => 'টুইটার_পুল_ইউইট_লিস্টিং', '# অ্যাট্রিবিউটস' => অ্যারে ('প্যারামস' => $ প্যারাম));
$ আউটপুট = দ্রুপাল_রেেন্ডার (et টুইট_টেম্পলেট, অ্যারে ('প্যারামস' => $ প্যারাম));
মুদ্রণ $ আউটপুট;

আমি আমার লগগুলিতে নিম্নলিখিত ত্রুটিটি পেয়েছি:

ব্যবহারকারীর ত্রুটি: "বিষয়বস্তু" হ'ল দ্রুপাল ore কোর \ রেন্ডার \ উপাদানটি :: শিশুদের () সি এর লাইন 89: am xampp \ htdocs \ দ্রুপাল \ কোর \ লিব \ দ্রুপাল ore কোর \ রেন্ডার \ উপাদান। পিএইচপি)।

সম্পাদনা: অন্য ত্রুটি:

টুইগ_এরআর_লুডার: "মডিউল / কাস্টম / টুইটার_পুল / টেম্পলেট / টেমপ্লেট / টুইটার_পুল_টুইট_লিস্টিং html.twig" (সন্ধান করা: সি: am xampp \ htdocs \ দ্রুপাল) সন্ধান করতে অক্ষম। Twig_Loader_Files systemm-> FindTemplate () (C এর লাইন 202: am xampp \ htdocs \ দ্রুপাল \ কোর \ বিক্রেতা \ twig \ twig \ lib \ Twig \ লোডার \ ফাইলসিসটেম.এফপি)।

আমি ভেবেছিলাম এই ত্রুটিটি ঘটছে কারণ আমি नेमস্পেসগুলি এবং সঠিকভাবে অটোলয়েড ব্যবহার করছি না। আমি আমার টেম্পলেট ফাইলটি কোথায় রাখব? ত্রুটির বার্তার উপর ভিত্তি করে, আমি এটি সি: \ xampp \ htdocs \ দ্রুপাল \ টেম্পলেট at এ রাখার চেষ্টা করেছি কিন্তু এটি এখনও কার্যকর হয়নি।


টুইটার_পুল_ইউইট_লিস্টিং html.twig এ কী?
ক্লাইভ

কেবলমাত্র একটি স্থানধারক: পাঠ্যটি 'এটি একটি
দ্বৈত

কোনও বিশেষ কারণে আপনি দ্বিতীয় যুক্তি হিসাবে প্যারামিটারের অ্যারে পাস করছেন drupal_render()? এটি একটি বুলিয়ান আশা করছে
ক্লাইভ

না, এটি একটি ভুল ছিল। আমি দ্রুপাল_রেন্ডারের দ্বিতীয় প্যারামিটারটি বের করেছিলাম এবং এখনও আমার একই সমস্যা রয়েছে। আমি দেখতে আমার দ্বিতীয় ত্রুটি অন্তর্ভুক্ত করতে আমি উপরে আমার প্রশ্নটি সম্পাদনা করছি।
ব্যবহারকারী 1015214

templates/templates/2nd ত্রুটি বার্তা অংশগ্রহণ আমাকে মনে করি আপনি চেষ্টা করা উচিত তোলে 'template' => 'twitter_pull_tweet_listing',পরিবর্তে 'template' => 'templates/twitter_pull_tweet_listing',মধ্যেhook_theme()
ক্লাইভ

উত্তর:


24

আন্ডারস্কোরগুলি ড্যাশগুলিতে রূপান্তর করে ড্রুপাল 8 এ সাধারণভাবে আপনি টেমপ্লেট লাইনটি ছেড়ে টেমপ্লেটটির নাম রাখতে হবে। এটি পরিবর্তন করা হয়েছিল কারণ টেমপ্লেটগুলি ডি 8-এ থিমযোগ্য আউটপুটের জন্য ডিফল্ট আউটপুট ফর্ম্যাট। সুতরাং আপনার ক্ষেত্রে এটি hook_theme():

/**
 *  Implements hook_theme().
 */
function twitter_pull_theme($existing, $type, $theme, $path) {
  return [
    'twitter_pull_tweet_listing' => [
      'variables' => [
        'description' => [],
      ],
    ],
  ];
}

... একটি টেমপ্লেট নির্দেশ করবে templates/twitter-pull-tweet-listing.html.twig। (এটি সংক্ষিপ্ত অ্যারে সিনট্যাক্স ব্যবহার করছে ))

সম্পর্কিত পরিবর্তন রেকর্ড: https://www.drupal.org/node/2231673

এবং এছাড়াও, একটি ব্লক বা নিয়ামক থেকে, দয়া করে স্ট্রিংয়ের পরিবর্তে একটি রেন্ডার অ্যারে ফিরিয়ে দিন। এইভাবে ফলাফলগুলি পরে চালিত হতে পারে এবং কাঁচা তথ্য লাইনটিতে এখনও অ্যাক্সেসযোগ্য। অন্য কথায়, drupal_render()যখনই সম্ভব আপনার কোড থেকে কল এড়িয়ে চলুন । এটি ড্রুপাল 7-তেও প্রযোজ্য: https://www.drupal.org/node/930760# ক্রিয়েটিং

সুতরাং আপনার ব্লক থেকে:

return [
  '#theme' => 'twitter_pull_tweet_listing',
  '#description' => 'foo',
  '#attributes' => [],
];

1
এটি উদ্দেশ্যমূলক :) জেনে রাখা ভাল :)
ক্লাইভ

উত্তর করার জন্য ধন্যবাদ! তবে আপনি কি আরও কিছু ব্যাখ্যা করতে পারেন আমি কেন আউটপুট হিসাবে অ্যারে ফিরিয়ে দিতে পারি? কোনও সময়ে ড্রপাল রেন্ডারটি চালানোর জন্য ডাকা প্রয়োজন, সুতরাং যদি আমি এটি কল না করি তবে এটি কে করে?
ব্যবহারকারী 1015214

আপনি এটি ড্রপাল 7-তে পাশাপাশি করতে পারেন। আমি উত্তর যুক্ত করতে কিছু ডক্স সন্ধান করার চেষ্টা করব।
কটার

1
কিছুটা দেরি করলেও আমি drupal.org/node/930760# উত্তরে একটি লিঙ্ক যুক্ত করেছি ।
কুট্টার

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