Article tagué Joomla
Interroger une base de données externe à Joomla
21/02/11
Il arrive parfois que l’on ai à interroger une base de données SQL externe à Joomla lors du développement d’un projet Web. Comme on m’a demandé par courriel si c’étais possible d’interroger une base de données SQL externe dans un environnement Joomal, j’ai pensé écrire cet article.
Communiquer avec une base de données externe à Joomla est certainement possible, il suffit de se faire une petite fonction puis d’y passer la requête. Voici un exemple :
function extSql($query) {
$option = array(); //définition de la variable pour éviter des problèmes
$option['driver'] = ‘mysql’; // Le nom du pilote SQL à utiliser (mysql, postgre, etc.)
$option['host'] = ‘localhost’; //L’adresse (hôte) du serveur de la base de données
$option['user'] = ‘DB_USERNAME’; // Nom d’utilisateur pour connecter à la base de données
$option['password'] = ‘PASSWORD’; // Mot de passe pour la connexion à la SQL
$option['database'] = ‘NOM_BASE_DE_DONNEES’; // Le nom de la base de données
$option['prefix'] = »; // Le préfix utilisé par votre base de données (peut être laissé vide)$db = & JDatabase::getInstance( $option );
$db->setQuery($query);
$rows = $db->loadObjectList();
return $rows;
}$query = « SELECT titre FROM articles LIMIT 0,20″;
$resultat = extSql($query);foreach($resultat as $row) { // Nous allons parcourir les objets
echo $row->titre;
}
Il ne vous reste plus qu’à bonifier cette fonction, l’intégrer dans une classe par exemple ou passer des paramètres à la fonction pour différentes base de données SQL.
Bon code!
Créez un site web sur mesure avec les applications Joomla !
12/10/10
Un site web entièrement personnalisé
Les applications Joomla déjà existantes permettent de lancer des sites très complets sans connaissances techniques particulières et surtout sans engloutir des sommes exorbitantes en faisant appel à des prestataires extérieurs.
Prenons l’exemple d’un site personnel, destiné à partager avec les internautes une passion ou des idées, et peut-être même à fédérer une communauté par le biais de forums, de commentaires… Il suffit alors simplement de faire son choix parmi les extensions existantes pour donner vie à ce nouveau site. « Kameleoon » va par exemple permettre à chacun de concevoir la charte graphique de son site ou de son blog sans avoir manipuler du HTML ou du CSS. Avec, en prime, la faculté de changer d’avis : dès qu’ils sont validés, les changements effectués sont répercutés en direct pour les visiteurs. Et si le créateur du si souhaite aussi obtenir l’avis de des internautes sur ses articles ou sur ses photos de vacances, voire même rendre son site compatible en version mobile, pas de problèmes : les applications « Feedback » et « Jphone » sont accessibles en quelques clics.
Les jeux d’argent étant devenus quasi partie intégrante de notre culture moderne, il est même possible de créer son propre casino en ligne ! Parmi les extensions les plus généralistes, il y a notamment « JG Casino ». En version gratuite ou payante (pour un usage professionnel), cette application met à disposition des visiteurs plus d’une cinquantaine de jeux, tels que le Baccarat, le Craps ou encore le vidéo poker. Vous pouvez ainsi facilement ajouter et gérer un grand nombre de jeux flash directement depuis votre site web, ce qui permet une interactivité réelle vis-à-vis de vos visiteurs. Ceci dit, tel n’est bien entendu pas l’unique répertoire disponible. D’autres applications à caractères plus spécifiques mettent au contraire l’accent sur un seul type de jeu, comme les jeux de blackjack (« BlackJack »), le football (« Sportpool » ou « Soccer Bet »), ou même les machines à sous (« Slot Machines Userpoint »). Bref, nul besoin d’aller claquer ses sous sur l’un des multiples sites poker ou casino de la toile, quand on peut facilement s’en créer un.
Du site vitrine au site e-commerce
Joomla offre des possibilités infinies, y compris pour les professionnels qui veulent promouvoir leurs services via un site vitrine ou même vendre leurs produits directement sur le net. Pour gérer un magasin en ligne, il y a notamment « Virtuemart » ou « Hikashop » : ces solutions téléchargeables sont compatibles avec d’autres composants tels que les systèmes de paiement (carte bleue, paypal…) ou de livraison. Pour les entrepreneurs, cela représente un gain de temps et des économies substantielles, particulièrement appréciées lors du démarrage de l’activité. Dans ce contexte, attention à ne pas perdre de vue le côté « open source » de Joomla : les templates de design sont librement accessibles à tous, alors il est indispensable de personnaliser au maximum son site pour lui donner une véritable identité. ICeci dit, en intégrant votre logo, votre bannière et des photos qui vous sont propres, ce petit désagrément sera vite balayé.
Le choix et la simplicité d’utilisation ont largement été plébiscités par les amateurs et les professionnels du monde entier. Le succès de Joomla est tel que les agences spécialisées dans la création de sites n’hésitent plus à proposer des prestations de créations de site créés directement sous Joomla …
[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
L’été s’annonce pas mal rock’n'roll
31/05/10
Je ne sais pas pour vous mais pour ma part, l’été s’annonce particulièrement chaud et très occupé. Après le lancement du méga projet en Joomla des Publications L’Avantage (www.lavantage.qc.ca), lequel aura monopolisé le plus clair de mon temps, j’ai cumulé beaucoup de retard avec le reste de mes travaux. J’ai du travail par dessus la tête, que ce soit au bureau ou par les soirs avec mes projets personnels, mes légendaires Garden Party et délicieux BBQ ou l’entretiens de mon serveur Linux et de mon bungalow. J’ai tellement d’ouvrage que je m’interroge la pertinence de prendre du temps pour aller relaxer sur un lac cet été. D’ailleurs, si cela vous intéresse, je suis à la recherche d’un ou d’une assistant(e) programmeur Web Junior ainsi que d’un spécialiste Linux pour greffer à notre équipe technique.
Pour davantage d’informations sur les postes en question, visitez http://www.lavantage.qc.ca/carriere-chez-nous et hésitez pas à me donner vos commentaires !
[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!







