Modifier Joomla (surcharger la vue des composants standards)

de | 29 novembre 2011

Modifier le CMS Joomla

Joomla est un CMS très répandu et simple à installer et à utiliser. Cependant, malgré toute les qualités de ce logiciel, Joomla s’avère un peu difficile d’accès pour le néophyte souhaitant modifier l’affichage des éléments standards).

Cet article va vous permettre de comprendre comment vous y prendre pour commencer à modifier l’affichage de Joomla en débutant par le moteur de recherche.

Par défaut, le moteur de recherche Joomla affiche un certain nombre d’information qu’il n’est pas nécessairement utile de montrer aux utilisateurs de votre site Internet. Nous allons donc le modifier pour le simplifier au maximum.

Tout d’abord, rendez-vous dans la partie administration de Joomla pour désactiver les éléments du moteur de recherche que vous ne souhaitez pas utiliser. Pour ce faire rendez-vous dans la partie dédiée à la configuration des plug-ins Joomla et désactivez les plug-ins de recherche (« search » si vous utilisez la version en anglais de Joomla) que vous ne souhaitez pas utiliser (cf. capture ci-dessous).

Plugin de recherche Joomla

Plugin de recherche Joomla : activation

Si votre site est simple, il ne nécessitera généralement que le plugin de recherche des articles (ou « content » en anglais).

Une fois ceci accompli vous constaterez que le résultat ne suffit pas pour véritablement simplifier la fonctionnalité de recherche de Joomla. Il nous faut alors modifier le code de ce CMS !

Surcharger la vue et ne pas modifier le coeur de Joomla

Plutôt que de modifier le coeur de Joomla, l’architecture MVC de ce CMS nous permet de modifier uniquement l’affichage ! Ceci nous permet de ne pas avoir de problème lors de futures mises à jour de ce CMS.

Pour surcharger la vue d’un composant standard Joomla (comme la recherche), nous allons déjà créer un répertoire html (s’il n’existe pas déjà) dans le répertoire du template utilisé. Nous allons donc aboutir à cette arborescence de dossiers :

templates/nom-du-template-utilisé/html/

De la même manière, créer encore un sous répertoire pour le nom de l’élément de Joomla à modifier et y insérer un fichier index.html vide (pour des raisons de sécurité) :

templates/nom-du-template-utilisé/html/com_search/index.html

Une fois cette opération effectuée, vous devez copier le fichier default_form.php du sous-répertoire « search » du composant de recherche Joomla dans le répertoire de votre template :

Copier : components/com_search/views/search/tmpl/default_form.php

Vers : templates/nom-du-template-utilisé/html/com_search/search/default_form.php

Le fichier default_form.php de votre template va vous permettre d’effectuer des modifications sans prendre de risque. Ainsi, en cas de soucis, il vous suffira de le remplacer à nouveau par le fichier Joomla de base.

Modifier le fichier Joomla

Toutes les modifications que vous ferez devront être effcutée sur le fichier default_form.php de votre template. Avec des connaissances de base en HTML et PHP, il est assez simple d’obtenir une version épurée du fichier comme celle présenté ci-dessous (compatible Joomla 1.6 et Joomla 1.7) :

<?php
/**
* @version $Id: default_form.php 20876 2011-03-03 17:10:37Z dextercowley $
* @package Joomla.Site
* @subpackage com_search
* @copyright Copyright (C) 2005 – 2011 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/

// no direct access
defined(_JEXEC) or die;
$lang = JFactory::getLanguage();
$upper_limit = $lang->getUpperLimitSearchWord();
?>

<form id="searchForm" action="<?php echo JRoute::_(index.php?option=com_search);?>" method="post">

<fieldset class="word">
<label for="search-searchword">
<?php echo JText::_(COM_SEARCH_SEARCH_KEYWORD); ?>
</label>
<input type="text" name="searchword" id="search-searchword" size="30" maxlength="<?php echo $upper_limit; ?>" value="<?php echo $this->escape($this->searchword); ?>" class="inputbox" />
<button name="Search" onclick="this.form.submit()" class="button"><?php echo JText::_(COM_SEARCH_SEARCH);?></button>
<input type="hidden" name="task" value="search" />
</fieldset>

<div class="searchintro<?php echo $this->params->get(pageclass_sfx); ?>">
<?php if (!empty($this->searchword)):?>
<p><?php echo JText::plural(COM_SEARCH_SEARCH_KEYWORD_N_RESULTS‘, $this->total);?></p>
<?php endif;?>
</div>

<?php if ($this->total > 0) : ?>

<div class="form-limit">
<label for="limit">
<?php echo JText::_(JGLOBAL_DISPLAY_NUM); ?>
</label>
<?php echo $this->pagination->getLimitBox(); ?>
</div>
<p class="counter">
<?php echo $this->pagination->getPagesCounter(); ?>
</p>

<?php endif; ?>

</form>

Le fichier obtenu va vous permettre de mettre en place un formulaire de recherche ultra-simplifié pour votre site Joomla.

Maintenant de vous connaissez cette opération, libre à vous de l’utiliser sur n’importe quel composant ou extension Joomla correctement programmée en MVC. Vous pouvez d’ailleurs utiliser cette technique pour tout ce qui concerne Joomla 1.5, 1.6 et 1.7 !

Si vous souhaitez modifier un module Joomla, vous pouvez toujours vous reporter à notre article sur la surcharge de la vue d’un module Joomla qui vous indiquera la procédure à suivre.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.