J'ai besoin d'insérer le module de recherche comme élément de menu (module de menu par défaut).
J'ai besoin de cette sortie:
<ul>
<li>menu item</li>
<li>menu item</li>
<li>SEARCH MODULE</li>
<li>menu item</li>
...
</ul>
Ma première pensée serait de dupliquer le module de menu par défaut deux fois:
- Un pour afficher les éléments de menu avant le module de recherche sans la
</ul>
balise de fermeture - Un autre pour afficher les éléments de menu après le module de recherche sans la
<ul>
balise d' ouverture
Et insérez le module de recherche entre eux. Cela ne semble pas être le moyen le plus simple et le plus facile à atteindre pour atteindre mon objectif car il nécessite:
- 3 positions de module pour le menu
- 2 menus différents dans le gestionnaire de menus
Je sais que je pourrais utiliser certains des modules de menu méga pour ce faire, mais je voudrais éviter les extensions tierces et utiliser du code personnalisé que je peux contrôler.
Comment puis-je ajouter un module comme élément de menu dans le menu par défaut?
joomla-3.x
menu-item
menu
web-tiki
la source
la source
jQuery
fonctions commeappend()
ouprepend()
qui ne fonctionneront pas sur les navigateurs désactivés par javascript.Réponses:
Voici une alternative pour charger le module de recherche dans votre menu. Cela nécessite quelques étapes simples:
1. Remplacez votre
mod_menu
module\templates\YOURTEMPLATE\html\mod_menu\default_url.php
.default_url.php
J'ai ajouté une
if-else
déclaration à partir de la ligne # 29, qui vérifie si le titre de l'élément de menu est "CustomSearchBox". Si tel est le cas, la position du module "CustomSearchBox" est chargée. Sinon, l'élément de menu normal est renvoyé. Vous pouvez remplacer "CustomSearchBox" par tout ce que vous voulez, mais si vous vous souvenez d'utiliser la même valeur dans les étapes suivantes.2. Créez un nouveau module de recherche
Créez le module de recherche et définissez les paramètres selon vos besoins (je suggère de masquer le titre du module).
Publiez le module dans la position personnalisée "CustomSearchBox"
3. Créez un nouvel élément de menu
L'élément de menu peut être de n'importe quel type, je suggère "URL externe" et le nom DOIT être "CustomSearchBox".
Enregistrez votre élément de menu, et l'élément de menu entier sera remplacé par le champ de recherche!
Faites-moi savoir si quelque chose n'est pas clair.
la source
$linktype == "CustomSearchBox"
et ici$position = 'CustomSearchBox';
CustomSearchBox
dans le champ de position du module et appuyez sur Entrée.$document = JFactory::getDocument();
. Maintenant, cela fonctionne, mais je devrai trouver un moyen d'ajouter à nouveau mon image.$linktype
dans l'écho. Le code est visible ici: phpad.org/1645824385 . Merci de m'avoir orienté dans la bonne direction c'est quelque chose que je voulais réaliser depuis un certain temps maintenant c'est génial! :)Bien que vous disiez que vous ne voulez pas utiliser d'extensions tierces, j'ai une solution qui utilise RokCandy de RocketTheme . Il s'agit d'un petit composant d'extrait qui permet d'ajouter très facilement le champ de recherche dans le menu. Installez simplement le plugin et créez une nouvelle macro comme celle-ci:
Macro
HTML
Sauver et fermer.
Créez maintenant un élément de menu pour la zone de recherche (je suggère
External URL
comme type, mais n'importe quel type d'élément de menu fera l'affaire), et dans le champ Titre , ajoutez[searchfield][/searchfield]
:RokCandy remplacera le titre par le code dans la macro, et vous obtiendrez un champ de recherche dans le menu:
la source