Đây là một thay thế để tải mô-đun tìm kiếm trong menu của bạn. Nó đòi hỏi một vài bước đơn giản:
1. Ghi đè mod_menu
mô-đun của bạn
- Tạo ghi đè trong thư mục mẫu của bạn
\templates\YOURTEMPLATE\html\mod_menu\default_url.php
.
- Sao chép các nội dung sau vào tệp:
default_url.php
<?php
/**
* @package Joomla.Site
* @subpackage mod_menu
*
* @copyright Copyright (C) 2005 - 2014 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
defined('_JEXEC') or die;
// Note. It is important to remove spaces between elements.
$class = $item->anchor_css ? 'class="' . $item->anchor_css . '" ' : '';
$title = $item->anchor_title ? 'title="' . $item->anchor_title . '" ' : '';
if ($item->menu_image)
{
$item->params->get('menu_text', 1) ?
$linktype = '<img src="' . $item->menu_image . '" alt="' . $item->title . '" /><span class="image-title">' . $item->title . '</span> ' :
$linktype = '<img src="' . $item->menu_image . '" alt="' . $item->title . '" />';
}
else
{
$linktype = $item->title;
}
$flink = $item->flink;
$flink = JFilterOutput::ampReplace(htmlspecialchars($flink));
if ($linktype == "CustomSearchBox"){
$document = &JFactory::getDocument();
$renderer = $document->loadRenderer('modules');
$options = array('style' => 'xhtml');
$position = 'CustomSearchBox';
echo $renderer->render($position, $options, null);
}
else {
switch ($item->browserNav) :
default:
case 0:
?><a <?php echo $class; ?>href="<?php echo $flink; ?>" <?php echo $title; ?>><?php echo $linktype; ?></a><?php
break;
case 1:
// _blank
?><a <?php echo $class; ?>href="<?php echo $flink; ?>" target="_blank" <?php echo $title; ?>><?php echo $linktype; ?></a><?php
break;
case 2:
// window.open
$options = 'toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=yes,'.$params->get('window_open');
?><a <?php echo $class; ?>href="<?php echo $flink; ?>" onclick="window.open(this.href,'targetWindow','<?php echo $options;?>');return false;" <?php echo $title; ?>><?php echo $linktype; ?></a><?php
break;
endswitch;
}
Tôi đã thêm một if-else
câu lệnh bắt đầu từ dòng # 29, để kiểm tra xem tiêu đề mục menu có phải là "CustomSearchBox" không. Nếu đó là trường hợp, vị trí mô-đun "CustomSearchBox" được tải. Nếu không, mục menu bình thường được trả lại. Bạn có thể thay đổi "CustomSearchBox" thành bất cứ điều gì bạn thích, nhưng nếu bạn nhớ sử dụng cùng một giá trị trong các bước sau.
2. Tạo mô-đun tìm kiếm mới
Tạo mô-đun tìm kiếm và đặt các tham số khi cần (Tôi đề nghị ẩn tiêu đề mô-đun).
Xuất bản mô-đun đến vị trí tùy chỉnh "CustomSearchBox"
3. Tạo một mục menu mới
Mục menu có thể là bất kỳ loại nào, tôi đề xuất "URL bên ngoài" và tên PHẢI là "CustomSearchBox".
Lưu mục menu của bạn và toàn bộ mục menu sẽ được thay thế bằng hộp tìm kiếm!
Hãy cho tôi biết nếu một cái gì đó không rõ ràng.
jQuery
chức năng nhưappend()
hoặcprepend()
không hoạt động trên các trình duyệt bị vô hiệu hóa javascript.