كيف يمكنني إدراج مربع بحث (كتلة بحث) في موضوعي برمجيًا؟
وفقًا لعلامتك ، فأنت تبحث عن حل D7. Drupal 7 page.tpl.php لم يعد متغير $ search_box بعد الآن. ومع ذلك ، يمكنك إضافته في وظيفة ما قبل المعالجة في template.php:
<?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;
}
ثم تحتاج فقط إلى طباعة المتغير في page.tpl.php:
<?php print $search_box; ?>
يمكنك أيضًا استخدام module_invoke ، ولكن لا يجب أن يكون لديك منطق php في ملفات القالب:
<?php
$block = module_invoke('search', 'block_view', 'search');
print render($block);
?>
افعل ذلك بالطريقة الصحيحة واستخدم الكتلة.
عناصر الترميز الثابت داخل page.tpl ، هي IMHO أحد الأشياء التي لا تزال تطفو منذ "الأيام الخوالي".
استخدم نظام الكتلة بدلاً من ذلك ؛ يمنحك المزيد من المرونة في المستقبل. قد ترغب أيضًا في التحقق من الوحدة النمطية Blockify .
هذه الوحدة تكشف عن عدد من العناصر الأساسية Drupal عناصر ككتل.
يمكنك استخدام ال $search_box
المتغير المتاح لملف page.tpl.php .
يمكنك أيضًا استخدام نظام الحظر وإضافة قالب نموذج البحث إلى الصفحة فيه
Admin> Structure> Blocks: Search form
على سبيل المثال ، لوضعه في قائمة التنقل ، ضع الكتلة في المنطقة
"ملاحة"
ثم قم بالمحاذاة مع CSS.
على سبيل المثال لوضع قائمة التنقل اليمنى:
#navigation #block-search-form{
position: absolute;
right: 10px;
top: 0;
}