প্রোফাইল 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.