প্রোফাইল 2 এর মতো সত্ত্বার ধরণের উপর ভিত্তি করে কোনও হুক_প্রসেস ফাংশনটি সংজ্ঞায়িত করা কি সম্ভব?


8

আমি ফাংশন ব্যবহার করে সম্ভাব্য হুকগুলি দিয়েছিলাম hook_preprocess(&$vars, $hook)এবং কেবলমাত্র সত্তা ব্যবহারের জন্য উপলব্ধ ছিল। এটির মতো কিছু করা কি সম্ভব hook_preprocess_profile2_entity(), বা সত্তার প্রকারটি পরীক্ষা করার জন্য যদি আমাকে একটি শর্ত লিখতে হয় hook_preprocess_entity()?

উত্তর:


15

এটি সত্ত্বায় নোড প্রিপ্রোসেস ফাংশনগুলির জন্য জেন থিমের প্যাটার্নটিকে গ্রহণ করে:

<?php

/**
 * Implements template_preprocess_entity().
 *
 * Runs a entity specific preprocess function, if it exists.
 */
function MYTHEME_preprocess_entity(&$variables, $hook) {
  $function = __FUNCTION__ . '_' . $variables['entity_type'];
  if (function_exists($function)) {
    $function($variables, $hook);
  }
}

/**
 * Profile2 specific implementation of template_preprocess_entity().
 */
function MYTHEME_preprocess_entity_profile2(&$variables, $hook) {
}

/**
 * Field Collection specific implementation of template_preprocess_entity().
 */
function MYTHEME_preprocess_entity_field_collection_item(&$variables, $hook) {
}

এটা সত্যিই দারুন. আমি সর্বদা ভুলে যাই যে পিএইচপি আপনাকে এই জাতীয় জিনিস করতে দেয়।
এমপিডোনাদিও

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

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