আমি কীভাবে পেজ.টিপিএলে অনুসন্ধান বাক্স sertোকাতে পারি?


27

আমি কীভাবে প্রোগ্রামে আমার থিমে অনুসন্ধান বাক্স (অনুসন্ধান ব্লক) inোকাতে পারি?

উত্তর:


39

আপনার ট্যাগ অনুসারে, আপনি একটি ডি 7 সমাধান সন্ধান করছেন। Drupal এর 7 page.tpl.php $ SEARCH_BOX- এর পরিবর্তনশীল আর নেই। তবে আপনি এটিকে আপনার টেমপ্লেট.এফপি-এ একটি প্রিপ্রোসেস ফাংশনে যুক্ত করতে পারেন:

<?php
/*
 *  Preprocess page.tpl.php to inject the $search_box variable back into D7.
 */
function MYTHEME_preprocess_page(&$variables){
  $search_box = drupal_render(drupal_get_form('search_form'));
  $variables['search_box'] = $search_box;
}

তারপরে আপনাকে কেবল আপনার পৃষ্ঠা.tpl.php এ ভেরিয়েবল মুদ্রণ করতে হবে:

<?php print $search_box; ?>

আপনি মডিউল_ইনভোকও ব্যবহার করতে পারেন তবে টেমপ্লেট ফাইলগুলিতে আপনার পিএইচপি যুক্তি থাকা উচিত নয়:

<?php
  $block = module_invoke('search', 'block_view', 'search');
  print render($block); 
?>

ধন্যবাদ, আমি কোথা থেকে তৃতীয় কোড ব্লক স্থাপন করা উচিত (page.tpl.php মধ্যে সরাসরি বা template.php এবং তারপর page.tpl থেকে অ্যাক্সেস?)?
Nick.h

1
তৃতীয় ব্লকটি page.tpl.php এ রাখা উচিত। শর্টহ্যান্ড হিসাবে আপনি এটি ব্যবহার করতে পারেন: "মুদ্রণ রেন্ডার (মডিউল_ইনভোক ('অনুসন্ধান', 'ব্লক_ভিউ', 'অনুসন্ধান'));"
বালা ক্লার্ক

2
"কঠোর সতর্কতা এড়ানোর জন্য: কেবলমাত্র [থিম-নাম] _প্রিপ্রসেস_পেজ () ([থিম-নাম] /template.php এর লাইন এক্সএক্স)" এ রেফারেন্স দ্বারা কেবল পরিবর্তনশীলগুলি পাস করতে হবে "" আপনার থিম_প্রসেস_পৃষ্ঠাটি সতর্ক করা নিম্নরূপ হওয়া উচিত: / * * থিম_প্রিপ্রসেস_পৃষ্ঠা () প্রয়োগ করে। * / ফাংশন [থিম-নাম] _প্রিপ্রসেস_পেজ (& $ ভেরিয়েবল) $ _ সার্চ_ফর্ম = দ্রুপাল_জেট_ফর্ম ('অনুসন্ধান_ফর্ম'); $ অনুসন্ধান_বক্স = দ্রুপাল_রেন্ডার ($ অনুসন্ধান_ফর্ম); $ ভেরিয়েবল ['অনুসন্ধান_বক্স'] = $ অনুসন্ধান_বক্স; }
কেব্রিনার

7

পরিবর্তে এটি সঠিক উপায়ে করুন এবং ব্লকটি ব্যবহার করুন।
পৃষ্ঠার ভিতরে থাকা হার্ডকোডিং উপাদানগুলি .tpl, "শুভ পুরাতন দিনগুলি" থেকে এখনও এমন একটি বিষয় যা আইএমএইচও চারপাশে ভাসমান।

পরিবর্তে ব্লক সিস্টেমটি ব্যবহার করুন; এটি আপনাকে আরও রাস্তায় আরও নমনীয়তা দেয়। আপনি ব্লকাইফাই মডিউলটিও দেখতে চাইতে পারেন ।

এই মডিউলটি বেশ কয়েকটি কোর ড্রুপাল উপাদানকে ব্লক হিসাবে প্রকাশ করে।



1

আপনি ব্লক সিস্টেমটি ব্যবহার করতে পারেন এবং পৃষ্ঠায় অনুসন্ধান ফর্ম ব্লকটি যুক্ত করতে পারেন

প্রশাসক> কাঠামো> ব্লক: অনুসন্ধান ফর্ম Search

যেমন নেভিগেশন মেনুতে স্থাপন করতে, অঞ্চলটিতে ব্লকটি রাখুন

"ন্যাভিগেশন"

এবং তারপরে CSS এর সাথে প্রান্তিককরণ করুন।

যেমন নেভিগেশন মেনুর ডানদিকে রাখা:

#navigation #block-search-form{
  position: absolute;
  right: 10px;
  top: 0;
}

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