Joomla
Quoi de neuf dans Joomla 1.6
27/08/10
L’évolution de Joomla ne connait pas de relâche. Selon toute vraisemblance, la version RC (ou Release Candidate) de Joomla 1.6 devrait voir le jour vers la fin de l’automne 2010. Joomla étant un projet communautaire (OpenSource), la rapidité d’exécution des programmeurs est intiment relié à la quantité de bénévoles actifs sur le projet. Quoi qu’il en soit, que nous réserve Joomla 1.6 ?
Voici une vidéo très intéressante par Andrew Eddie dans lequel on explique les principaux changements apportés à Joomla dans la version 1.6. Il est possible d’apprendre, dans cette vidéo de 82 minutes, les principales nouveautés concernant les templates, les contrôles d’accès, la gestion des langues etc.
Vous n’avez pas encore installé Joomla 1.6 beta sur votre serveur de développement ? N’attendez pas d’être pris au dépourvu et dépêchez-vous d’explorer les nouveautés! Consultez également la liste des nouveautés sur le Wiki de Joomla.
What’s new in Joomla 1.6 from Andrew Smith on Vimeo.
[Joomla] Cacher une zone de module vide
9/06/10
Un petit truc rapide pour Joomla 1.5 aujourd’hui.
Lorsque l’on programme un template pour un projet Web en Joomla 1.5, il arrive parfois que l’on ait besoin de cacher certaines zones de module lorsqu’elles sont vides. C’est souvent nécessaire pour la structure d’un site en CSS à multiple colones. Pour y parvenir, il suffit simplement d’utiliser la méthode countModules de Joomla de la façon suivante :
<?php if ($this->countModules(‘nom_de_ma_zone’)): ?><div id= »classe_CSS »><jdoc:include type= »modules » name= »nom_de_ma_zone » /></div><?php endif; ?>
La première ligne, $this->countModules, calcul le nombre de module publié dans cette zone via le backend de Joomla. Il est donc possible, très facilement, de cacher une zone ainsi que son CSS avec une simple conditionnelle dans votre template Joomla.
Bon code!
[Joomla] Le cache, pour un site Joomla 1.5 à haut trafic
3/06/10
Dernièrement j’ai procédé au lancement de la nouvelle plateforme du Journal L’Avantage à Rimouski. Le nouveau site, en Joomla 1.5, est construit avec un bon nombre de modules, plugins et composants maison que j’ai programmé moi même pour les besoins du projet. Lorsque l’on programme pour un site avec un potentiel de trafic élevé, il est très important d’utiliser les fonctions natives de caching de Joomla dans notre programmation afin de donner une petite chance au serveur SQL de survivre à, par exemple, une nouvelle indexée dans Google News.
Déjà, si vous savez comment programmer avec le framework de Joomla, utiliser les fonctions natives de caching de ce dernier ne devrait pas vous causer beaucoup de problème. En réalité c’est extrêmement simple.
En premier lieu, il faut activer le cache dans la configuration globale de Joomla par le GUI du Backend. Cependant, il est possible de forcer l’utilisation de la cache en informant directement Joomla dans votre code source (voir ci-dessous). Pratique lorsque l’on fait un code gourmand que l’on pense distribuer publiquement.
En premier lieu, déclarez une référence vers l’objet global JFactory de Joomla directement dans votre code php afin d’informer le cadriciel que vous désirez utiliser cette fonctionnalité.
$cache = & JFactory::getCache();
Si vous avez besoin de forcer l’utilisation du cache dans vos créations, par exemple pour un code avec le potentiel de requête SQL lourde sur plusieurs milliers d’entrée dans une BD SQL, vous pouvez indiquer à Joomla que vous désirez forcer l’utilisation du cache de cette façon :
$cache->setCaching( 1 );
Encore une fois, cette technique est très utile lorsque vous développez un code gourmand, destiné au grand publique.
Par la suite, il suffit de convertir votre méthode d’extraction des données traditionnelle pour la faire traiter par le système de caching de Joomla.
Par exemple, la méthode suivante :
$mesDonnees = maClasse::obtentionDeMesDonnees();Deviendra :$mesDonnees = $cache->call( array( 'maClasse', 'obtentionDeMesDonnees' ) );
Vous pouvez passer des paramètres à votre classe très facilement en ajoutant simplement vos variables à la fin du tableau. Par exemple :
$mesDonnees = maClasse::obtentionDeMesDonnees($variable);
Deviendra :
$mesDonnees = $cache->call( array( ‘maClasse’, ‘obtentionDeMesDonnees’),$variable);
Notez également que vous pouvez utiliser une fonction n’étant pas membre d’une classe de la façon suivante :
$mesDonnees = maFonction();
Deviendra :
$mesDonnees = $cache->call( 'maFonction' );
Le reste de votre code s’exécutera de la façon habituelle, mais utilisera des données en provenance du cache. Cela donnera un sérieux « break » à votre serveur SQL et aura pour effet direct d’améliorer la vitesse de chargement de votre projet Joomla 1.5.
Bon code!
Références (anglais seulement) : http://docs.joomla.org/Tutorial:Using_Caching_to_Speed_Up_Your_Code
[Joomla] Tutoriel pour ajouter un champ personnalisé dans la rédaction d’article
26/03/10
Voici un petit tutoriel couvrant la base pour ajouter un champ personnalisé, par exemple un sous titre, à vos articles Joomla. J’ai eu besoin de modifier le core de Joomla afin d’ajouter cette fonctionnalité pour un projet de Journal en ligne, comportant un exergue à la majorité de ses articles.
Cette solution est intéressante, facile à implanter et à utiliser mais elle a le défaut de nuire à la mise à jour de Joomla. Le jour ou vous procéderez à une mise à jour de votre CMS Joomla, vous aurez probablement à refaire cette petite procédure en entier.
Ce tutoriel prend en considération que vous avez les notions de base en programmation et en gestion de votre base de données SQL. Si vous avez besoin d’aide avec votre projet Joomla, contactez moi. Cette solution s’applique à la version 1.5 de Joomla. Voici donc comment procéder :
ÉTAPE 1 : Faite un backup de vos fichiers!
Il est très important de copier vos fichiers et votre base de données avant de procéder à cette modification. Vous risquez potentiellement de faire planter votre site si vous vous trompez et vous pourriez avoir besoin de restaurer vos fichiers originaux.
ÉTAPE 2 : modification de la base de données
Avec votre logiciel de gestion de base de données préféré, ouvrez la base de données correspondant à votre projet. Ouvrez la table jos_content et ajouté à sa structure un nouveau champ, par exemple soustitre. Choisissez un type de champ VARCHAR de taille 255.
ÉTAPE 3 : Gestion de l’affichage sur le frontend du site
Commencez par créer un override pour l’affichage du contenu sur votre site. Un override permet de modifier le output d’un composant core publique de Joomla sans avoir à modifier le fichier original. C’est déjà ça de moins à modifier lors de la mise à jour de Joomla. Dans le répertoire de votre template (/templates/nom_de_votre_template/), assurez-vous d’y avoir un répertoire html. Ajoutez-y (s’il n’existe pas déjà) le répertoire com_content et article. Copier le fichier default.php que vous retrouverez dans le répertoire /components/com_content/views/tmpl/ vers votre répertoire /templates/nom_de_votre_template/html/com_content/article/.
Ouvrez le fichier default.php que vous venez de copier. Allez à la ligne 25 et ajoutez :
<?= $this->escape($this->article->soustitre); ?>
Remplacez soustitre par le nom du champ que vous avez ajouté à votre table SQL (voir étape 1).
Vous pouvez modifier le output comme bon vous semble, ajouter des conditions de l’affichage, des suffixes de classes CSS etc. dans ce fichier et gérer l’affichage comme vous le souhaitez.
ÉTAPE 4 : Modifier le fichier article.xml
Le fichier article.xml comporte une série d’instruction pour les paramètre assignés à la gestion des champs dans le formulaire d’ajout d’article. Si, par exemple, vous voulez contrôler l’affichage de votre champ personnalisé sur la page frontispice ou non, c’est ici que ça se passe.
Ouvrez le fichier /administrator/components/com_content/models/articles.xml et rendez-vous à la ligne 27. Pour contrôler l’affichage de votre champ personnalisé sur la page frontispice, ajoutez le code suivant :
<param name= »show_ soustitre » type= »list » default= »" label= »Afficher le soustitre » description= »Affiche ou cache le soustitre »>
<option value= »">Use Global</option>
<option value= »0″>No</option>
<option value= »1″>Yes</option>
</param>
Remplacez soustitre avec le nom du champ que vous avez ajouté dans la base de données SQL.
ÉTAPE 5 : Modifier le formulaire dans le backend
La prochaine étape consiste à modifier le fichier en charge de l’affichage du formulaire dans le backend de Joomla. Ouvrez le fichier /administrator/components/admin.content.html.php et rendez-vous à la ligne 797. Tout de suite après le </tr>, ajoutez la ligne suivante :
<tr>
<td>
<label for= » custom_field « >
<?php echo JText::_( ‘Sous titre’ ); ?>
</label>
</td>
<td>
<input type= »text » name= » soustitre » id= »soustitre » size= »40″ maxlength= »255″ value= »<?= $row->soustitre; ?> »/>
</td>
</tr>
Encore une fois, n’oubliez pas de remplacer soustitre avec le nom du champ que vous avez ajouté dans la base de données SQL. Ce bout de code ajoutera le champ sous titre sous le champ titre dans le formulaire d’ajout d’article (voir le screenshot en début d’article).
ÉTAPE 6 : Ajouter la correspondance du nouveau champ dans config.xml
Pour indiquer à Joomla d’utiliser notre paramètre d’affichage sur le frontend, ouvrez le fichier /administrator/components/config.xml et rendez-vous à la ligne 16. Insérez le code suivant :
<param name= »show_subtitle » type= »radio » default= »1″ label= »Show
Article SubTitle » description= »Show/Hide the articles subtitle »>
<option value= »0″>No</option>
<option value= »1″>Yes</option>
</param>
De concert avec la modification de l’étape 3, ceci aura pour effet de gérer l’affichage sur le frontend de Joomla.
ÉTAPE 7 : Informer Joomla de notre nouveau champ dans la table jos_content
Ajouter un champ ne suffit pas. La base de données est géré par une librairie et il faut indiquer à Joomla d’utiliser notre nouveau champ. Pour y parvenir, il faut modifier le fichier /libraries/joomla/database/table/content.php. Rendez-vous à la ligne 33 et ajoutez le bout de code suivant :
var $subtitle = null;
/** @var string **/
Bravo, votre formulaire gère maintenant votre nouveau champ!
Truc et astuce Joomla de la semaine
4/02/10
Un petit truc rapide pour les développeur Joomla débutant, lorsque l’on créé un template pour Joomla 1.5.x, il arrive parfois que l’on aimerait afficher un truc uniquement sur la page d’accueil du site Internet. Pour se faire, il suffit simplement d’ajouter le bout de code suivant :
<?php $menu = & JSite::getMenu(); if ($menu->getActive() == $menu->getDefault()) { --> votre contenu ici <-- } ?>
Bon développement Web avec Joomla!







