হুক_পেজ_এলটার এবং প্রিপ্রোসেস_পেজের মধ্যে পার্থক্য?


10

ড্রুপাল in-এ আমার কখন হুক_পেজ_এল্টার (& $ পৃষ্ঠা) বা টেমপ্লেট_প্রিপ্রসেস_পেজ (& ars বার্স, ook হুক) ব্যবহার করা উচিত তা আমি পুরোপুরি বুঝতে পারি না।

টেমপ্লেট.এফপি ব্যবহার করার জন্য সে সম্পর্কে সেরা অনুশীলনগুলি কী?

ধন্যবাদ

উত্তর:


16

পার্থক্য তাদের উদ্দেশ্য।

পৃষ্ঠার স্তরে উপাদানগুলি অপসারণ, পরিবর্তন করতে বা যুক্ত করতে হুক_পেজ_বিল্ড () এবং হুক_পেজ_এল্টার () ব্যবহার করা হয়। Block
পৃষ্ঠার অ্যারে পাস হয়েছে hook_page_alter()প্রতিটি ব্লক অঞ্চলের জন্য শীর্ষ স্তরের উপাদান রয়েছে। ডিফল্টরূপে তারা নিম্নলিখিতগুলি:

  • page_top
  • হেডার
  • sidebar_first
  • সন্তুষ্ট
  • sidebar_second
  • page_bottom

বাস্তবায়নের উদাহরণ নিম্নলিখিত একটি হতে পারে:

function mymodule_page_alter(&$page) {
  // Add help text to the user login block.
  $page['sidebar_first']['user_login']['help'] = array(
    '#weight' => -10, 
    '#markup' => t('To post comments or add new content, you first have to log in.'),
  );
}

টেমপ্লেট ফাইলে পাস করা ভেরিয়েবলগুলি পরিবর্তন করতে প্রিপ্রোসেস ফাংশনগুলি বলা হয়। তারা পৃষ্ঠার কাঠামো পরিবর্তন করতে পারে না, তবে পৃষ্ঠাগুলির কিছু উপাদানগুলির পরিবর্তনগুলি সেই পরিবর্তনশীলগুলির সামগ্রী পরিবর্তন করতে পারে।
উদাহরণস্বরূপ, ওভারলে মডিউলটি যখন পৃষ্ঠাটি ভিজ্যুয়ালাইজ করা হচ্ছে তখন ওভারলেটি প্রাথমিক ট্যাবগুলি সরিয়ে দেয়।

function overlay_preprocess_page(&$variables) {
  if (overlay_get_mode() == 'child') {
    unset($variables['tabs']['#primary']);
  }
}

1
তবে হুক প্রিপ্রসেস_পেজের সাহায্যে আমি structure ওয়ার্স ['পৃষ্ঠা'] এর ভিতরে স্টাফ পরিবর্তন করে পৃষ্ঠার কাঠামো পরিবর্তন করতে পারি। আমি এটি ব্যবহার করি কারণ নোড পৃষ্ঠার জন্য হুক_পেজ_এলটার সহ আমার নিড পেতে খুব কষ্ট হয়েছিল।
গাগারাইন

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