Notes diverses pour codages Joomla

Notes diverses pour codages Joomla (5)

Vous retrouverez ici toutes les nombreuses notes et "trucs" à savoir lors de vos codages. Cette catégorie me sert aussi, comme je code rarement, de retrouver ce que j'ai mis des heures à trouver

dimanche, 30 octobre 2022 08:30

Attention à la casse !

Écrit par

Une petite note qui tombe sous le sens mais je voulais quand même revenir dessus pour avoir passé plusieurs heures à trouver le problème.

Dans le cadre de mes activités, je développe à la maison mes modules sous Joomla sous Fenêtre 10  afin de les réimplanter dans mon activité professionnelle sur mon serveur de travail ainsi que mon serveur de développement professionnel Debian. Je me suis heurté à une toute petite problématique que je souhaitais ici mettre en avant. Bien que je sache d'où cela vient, j'ai quand même passé plusieurs heures à comprendre...

Mon environnement de développement personnel se compose d'une machine sous le système d'exploitation Windows.
Mon système professionnel se compose lui aussi d'une machine mais qui tourne bien entendu sous Linux (oui j'ai dit "professionnel" :- ) pour faire tourner le serveur Apache et tout ce qui va bien. On a même une petite base de données sous MySQL, SGBD au combien peu fiable par rapport à certains ténors du marché. Je pense notamment à Oracle.
Vous l'aurez compris, entre un environnement Windows et un environnement Linux, il y a grosse différence se situe dans les noms. Sous Windows, bien malheureusement, ce système d'exploitation ne sait pas faire la différence entre une majuscule et une minuscule dans les noms de fichiers, bien que ce soit deux codes ASCII totalement différent !
 
Me voyez-vous venir ?
 
Et bien oui. Chez moi, sous Windows, j'avais créé le nom du répertoire contenant mon module avec une majuscule. Dans les fichiers qui composent ce module, notamment dans le fichier XML, je n'avais pas mis en majuscule. Sous Windows, dans mon environnement de développement, aucun problème le module était reconnu lors du mode découverte de Joomla. En revanche, sous Windows, impossible de découvrir le module. C'est en vérifiant dans le fichier XML, dans le fichier manifest, que je me suis rendu compte de ma gourde.
Effectivement il se posait un problème de différenciation entre un non minuscule et majuscule. Autant dire que j'ai cherché plusieurs minutes avant de comprendre d'où venait le problème, mais en corrigeant ceci, tout est revenu dans l'ordre.
 
Faites attention la casse de vos fichiers !

Suite à une migration, ce matin, d'un module que j'avais développé en local sur mon environnement de développement, que je souhaitais migrer en production sur mon environnement de prod, je me suis rendu compte d'une grosse erreur que je souhaitais notifier dans cet article.

En effet, lorsque j'ai migré mon module en prod, lle fichier CSS dans lequel je stocke tous les styles propres à mon module, était absent du serveur . Et la procédure que j'avais mise en place, était de prendre le répertoire de mon module de mon serveur de test, de fabriquer un zip de ce répertoire, dans le but de l'installer sur le serveur destination.

En faisant cette manipulation, comme je le disais, aucun fichier CSS n'était présent sur le serveur de destination. En cherchant un peu et en demandant de l'aide, je me suis rendu compte que pour faire cette manipulation, il était très important de notifier dans le fichier manifest de mon module, la présence de fichiers CSS.  Bien qu'appelé dans les fichiers php, un bug ce produisit puisque le fichier était introuvable car non migré. En effet il n'était pas installé puisque absent du fichier manifest.

Ne reproduisez donc pas l'erreur que j'ai faite, lorsque vous développez en local votre module, n'oubliez pas de bien renseigner le fichier manifest avec l'ensemble des fichiers qui constitue votre module.
 
Je viens donc de découvrir que le fichier manifest, en quelque sorte, sert pour l'installation sur un serveur externe de mon module. Je souligne bien le fait que j'installe tous mes modules en mode développeur, m'abstenant ainsi de développer les procédures d'installation, par simple manque de temps

Pour certaines données d'un module, il peut être nécessaire de savoir si l'utilisateur courant est administrateur ou non.

Pour cela, inutile de tester l'appartenance au groupe admin de l'utilisateur, la factury user donne la réponse !

$user = JFactory::getUser();
if ($user->guest == 0)
{
   echo "Vous êtes administrateur";
}
else
{
   echo "Vous êtes simple utilisateur";
}
jeudi, 06 janvier 2022 17:30

Joomla sur un serveur Portable

Écrit par

Si vous utilisez un Joomla sur un serveur Web portable de type Uwamp, lorsque vous déplacez le serveur d'une machine à une autre, afin de pouvoir continuer à installer des composants, il ne faut pas oublier de corriger sur la ligne 61 du fichier configuration.php situé dans le dossier Joomla, la valeur de la variable $tmp_path sans quoi les installations des modules ou composants que vous alliez télécharger sur la GED notamment seront ininstallables puisque Joomla recherchera le répertoire par son chemin absolu qui, s'il n'est pas placé a même endroit, sera introuvable.

vendredi, 17 décembre 2021 08:49

Comment construire une URL Joomla content

Écrit par

Pour accèder à un article Joomla content, il faut utiliser une URL codé de la sorte :

index.php?option=com_content&view=article&id=id_article

La composition de l'URL est donc :

  • index.php : le fichier "pivot" de tout site (le contrôleur en quelque sorte)
  • option : nom du composant vers lequel Joomla "redirige" (ou plutot nom du composant que Joomla va charger. Ici : Joomla content, donc com_content)
  • id_article : le numéro de l'article

S'il existe plusieurs templates, ou que des soucis d'assignations de modules subsistent, il est possible d'ajouter l'itemid du menu à l'URL

index.php?option=com_content&view=article&id=id_article&Itemid=item_id_du_menu