Berikut ini salah satu alternatif untuk memuat modul pencarian di menu Anda. Dibutuhkan beberapa langkah sederhana:
1. Ganti mod_menu
modul Anda
- Buat override di folder template Anda
\templates\YOURTEMPLATE\html\mod_menu\default_url.php
.
- Salin konten berikut ke file:
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;
}
Saya telah menambahkan if-else
pernyataan mulai dari baris # 29, yang memeriksa apakah judul item menu adalah "CustomSearchBox". Jika demikian, posisi modul "CustomSearchBox" dimuat. Jika tidak, item menu normal dikembalikan. Anda dapat mengubah "CustomSearchBox" menjadi apa pun yang Anda suka, tetapi jika Anda ingat untuk menggunakan nilai yang sama pada langkah-langkah berikut.
2. Buat modul pencarian baru
Buat modul pencarian dan atur parameter sesuai kebutuhan (saya sarankan untuk menyembunyikan judul modul).
Publikasikan modul ke posisi khusus "CustomSearchBox"
3. Buat item menu baru
Item menu dapat berupa jenis apa pun, saya sarankan "URL Eksternal", dan nama HARUS "CustomSearchBox".
Simpan item menu Anda, dan seluruh item menu akan diganti dengan kotak pencarian!
Beri tahu saya jika ada sesuatu yang tidak jelas.
jQuery
fungsi sepertiappend()
atauprepend()
yang tidak akan berfungsi pada browser yang dinonaktifkan javascript.