Notes diverses pour configuration ou codages Joomla
- Détails
- Catégorie : Notes diverses pour configuration ou codages Joomla
Je vous propose aujourd'hui un petit réglage sur le composant de recherche en AJAX, RokAjaxSearch de RocketTheme.
Propriétés de l'outil
Le Plugin
masquerokresults.php
<?php
defined('_JEXEC') or die ('Acces interdit');
use Joomla\CMS\Factory;
class plgContentMasqueRokResults extends JPlugin{
function onContentPrepare($content, $article, $params, $limit)
{
$re = '{masque-recherche-rok}';
$active = JFactory::getApplication()->getMenu()->getActive();
$ch_plugin = '<span id="masque-fiche- masque-fiche-'.$article->id.'">'.$article->category_title.$article->id.'</span>';
$article->text = str_replace('{masque-recherche-rok}',$ch_plugin,$article->text);
}
}
?>
masquerokresults.xml
<?xml version="1.0" encoding="utf-8"?>
<extension version="1.0" type="plugin" group="Content">
<name>Mask Rok Ajax Search Results</name>
<author>Sebastien LHUILLIER</author>
<creationDate>Janvier 2024</creationDate>
<copyright>Sébastien LHUILLIER</copyright>
<license>GNU General Public License version 2 or later; see LICENSE.txt</license>
<authorEmail>Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.</authorEmail>
<authorUrl>www.sebastien-lhuillier.com</authorUrl>
<version>1.0</version>
<description>Ce plugin permet de spécifier dans un article que RokAajxSearch d'affiche pas cet article dans les résultats</description>
<files>
<filename plugin="masquerokresults">masquerokresults.php</filename>
<filename>masquerokresults.xml</filename>
</files>
<config>
<fields name="params">
<fieldset name="basic">
<field name="note21" type="note" class="alert" label="Tag" description="Ajouter dans l'article le tag {masque-recherche-rok} pour que cet article n'apparaisse plus dans Rok Ajax Search" />
</fieldset>
</fields>
</config>
</extension>
- Détails
- Catégorie : Notes diverses pour configuration ou codages Joomla
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 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.
- Détails
- Catégorie : Notes diverses pour configuration ou codages Joomla
Le besoin
Je ne sais pas pour vous mais lorsque le programme la publication de mes articles depuis la console de Joomla, j'ai bien la liste de mes articles, leurs dans de création mais dans cette liste me manquait la date réelle de publication de l'article. Cette date est bien pratique car en un coup d'oeil, on voit l'ensemble synthétique des dates, comme mentionnée sur la copie d'écran suivante. Notez que je me ficeh royalement de faire un tri sur cette date, la colonne n'est pas triable, mais elle pourrait le devenir
La solution
Pour parvenir à cette solution, j'ai commencé par dériver/hériter le fichier administrator/com_content/articles/default.php en le copiant (a la main ou par le processus intégré de Joomla) dans le dossier administrator/templates/isis/html/com_content/articles/default.php
Ensuite, après édition de ce fichier, j'ai vu que cetet vue était basée sur un tableau HTML. J'ai donc commencé par rajouter une cellule titre (je ne m'embarasse pas des chaines de langues puisque je suis dans un fichier dérivé) mais je n'ai pas intégré la fonction de tri de cette colonne. Ainsi, après la ligne 125, j'ai rajouté le titre de la colonne en dur :
<th width="1%" class="nowrap center hidden-phone">
Date de publication
</th>
Puis dans le "contenu" du tableau, ligne 324 chez moi, j'ai rajouté le champs affichant la valeur que je souhaite faire afficher :
<td>
<?php echo $item->publish_up; ?>
</td>
Add a comment
- Détails
- Catégorie : Notes diverses pour configuration ou codages Joomla
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.
- Détails
- Catégorie : Notes diverses pour configuration ou codages Joomla
Ma question ?
Comment faire en sorte que l'outil wisiwig JCE ne m'auto formate pas mon code ?
La solution que j'ai trouvé
- Détails
- Catégorie : Notes diverses pour configuration ou codages Joomla
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();Add a comment
if ($user->guest == 0)
{
echo "Vous êtes administrateur";
}
else
{
echo "Vous êtes simple utilisateur";
}
- Détails
- Catégorie : Notes diverses pour configuration ou codages Joomla
Dans le cadre de mes fonctions, je suis amené à utiliser un champ personnalisé de joomla content pour y stocker une valeur sous la forme très particulière, puisque c'est une chaîne de caractère formé de chiffres groués. Chacun de ces nombre sont répartis en groupe de la manière suivante : xxxx-xx-xxx-xxxx (un peu comme les SLRN des fans de SM).
Afin de pouvoir "valider" en quelque sorte, la bonne saisie du formalisme de ce champ, j'ai dû appliquer un masque de saisie sur un champ personnalisé de type input text. Vous le savez sûrement, même HTML5 ne propose pas ce type de champ masque de saisie. Il faut appliquer un script Javascript, utiliser par exemple avec la bibliothèque jQuery, pour forcer le formalisme de saisie de ce champ dans un input type texte classique.
Bibliothèque utilisée
Après quelques recherches sur le net, j'ai trouvé une bibliothèque qui répond à ce besoin, en Javascript, que vous pouvez retrouver à l'adresse http://imask.js.org. Vous remarquerez d'ailleurs sur la page d'accueil de cette bibliothèque, tout un ensemble de codes et d'exemples répondant à différents types de besoins, que ce soit de la saisie de date, de la saisie de nombres entre deux bornes, ou encore permettre en Javascript de vérifier qu'une chaîne de caractère correspond bien à une expression régulière spécifique. (désolé mais l'auteur ne parle pas de SLRN :) C'est la raison pour laquelle je suis parti sur cette librairie, l'utilisation des expressions rationnelles étant très répandue. D'ailleurs, c'est de cette manière que j'ai implémenté mon masque de saisie.
Intégration du masque de saisie dans la console d'administration sur un champ personnalisé.
Copie du fichier de gestion de masque
Nous en arrivons ici au cœur du problème : comment implémenter un masque de saisie sur un champ personnalisé ?
J'avais plusieurs moyens de faire, rien d'entre eux était de recréer un type de chant au format maskedit. Ceci eût été très intéressant, mais peut-être relativement long à mettre en place. Cela nécessitait pas mal de développement sur des techno que je ne maîtrise pas (encore :) ).
Afin de mettre en place cette fonctionnalité, nous avons, car mon cher cousin m'a donné un petit coup de main, mis en place dans un premier temps toute la bibliothèque JS, dans le dossier de ma template d'administration. J'ai alord copié mon fichier imask.js dans le répertoire administrator/templates/isis/js de manière à ce que ce fichier JavaScript soit bien rangé au bon endroit. Je ne l'ai pas rappelé, mais l'acronyme JS que l'on vois dans le chemin d'accès signifie bien JavaScript.
Implémentation et appel de ce fichier dans ma template
Maintenant que ce fichier est prêt à être utilisé dans Joomla, il faut lui dire de l'appeler. Pour ce faire, nous allons intégrer et appeller ce fichier directement dans notre modèle aussi appelé template Joomla. Cette intégration doit se passer en deux parties :
- Dans joomla, nous avons fait un appel à ce fichier JavaScript de manière à ce que ce fichier soit chargé lorsque la page est appelée
- Puis nous allons dire à jumia de charger le code propre à ce plugin de masque au moment du chargement de la page.
En effet, c'est dans ce code javascript que nous avons spécifié le format du masque. Nous allons détailler ces deux points
Appel au fichier, Javascript
Dans la section html du fichier de ma template ISIS, j'ai intégré l'accès, le chargement au "moteur" de gestion des masque de cette manière (oui je sais, on aurait pu l'intégrer autrement avec les API Joomla) :
Notez que j'utilise bien l'option defer de la balise script pour que ce chargement s'éxécute non pas au moment où le navigateur rencontre cette ligne de script, mais bien lorsque la page est entièrement chargée. (exit donc les technnologies JQuery and co qui étaient spécifiques à ce chargement, c'est intégré désormais dans javascript Vanillia). Désormais que nous avons l'appel à cette bibliothèque de gestion des masques, il faut dire au système à quel champs html appliquer ce masque.
Après avoir créé mon champs personnalisé Joomla, j'ai donc simulé la création d'en enregistrement dans l'adminsitrator de manière à avoir sous les yeux mon champ.
En inspectant le code source, j'ai retrouvé ses deux indentifiants : son nom et son id. L'exemple de maskedit proposant de travailler avec l'ID du champs, j'ai appliqué le script via la commande Javascript getElementById pour associer le formalisme du masque au champs souhaité.
Et voila, le masque est appliqué au champs. Parmi ma "mamaille", j'ai retroengeeneeré le code pour retrouver l'ID du champs de saisie. Peut être y-a-t-il dans les règles de l'art Joomla des méthodes de faire, des logiques de nommages qui m'écchappent, je n'en doute pas, mais le système fonctionnne.
Add a comment- Détails
- Catégorie : Notes diverses pour configuration ou codages Joomla
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.
Add a comment- Détails
- Catégorie : Notes diverses pour configuration ou codages Joomla
Si comme moi vous préférez avoir un éditeur "texte" non wysiwyg lors de l'édition de vos articles (ce qui est drôlement + simple lorsque vous avez des articles mélant des composants complexes comme des tabs, des fenêtre modales et autre joyeusetés...), il faut le spécifier à Joomla de la manièré suivante :
- Aller dans le menu de vote console d'administration : composant → JCE Editor → Editor Profils → et choisir défault
- Sélectionnez vort profil par défaut si vous souhaitez que ce mode soit toujours celui par défaut
- Dans le deuxieme onglet Barre d'outils (ou Features & layout) et rechercher Onglet Actif (ou Active tab)
- Sélectionnez "Editeur de code" (Code) dans la liste
- Validez vorte choix en cliquant sur Valider et fermer
- Détails
- Catégorie : Notes diverses pour configuration ou codages Joomla
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
Add a commentMon Github
slhuilli1's GitHub repositories
-
targetpdf
Add "_blank" automatically when href ils a pdf file !
-
zippage
Zipper tous les PDF internes d'une page Joomla Content
-
legendeimg
No description
-
antispam
Plugin qui génère une chaine mais avec le symbole @ dans le css, évitant de se faire aspirer son mail !
-
modallightbox
No description
-
titrearticle
Remplace affiche le titre de l'article.
-
provisoire
Lister des documents marqués comme "provisioires"
-
cssmodal
Plugin Joomla pour lancer une fenetre modale
-
modalpdf
No description
-
demandeajoutdoc
This pligin add a mailto: link info Regular Labs Tabs (for intranet whithout spam)
-
natif
Ce plugin prend en compte ou pas l'affichage des fichiers natifs (word/excel) en sus de liens vers des PDF
-
nouveau
Un plugin joomla qui affiche une mention "nouveau" sur un lien hypertext avannt une date butoire - A Joomla plugin that displays a “new” mention on a hyperlink before a deadline
-
lastdocsupdates
Plugin d'affichage des derniers fichiers modifiés dans un répertoire donné
-
noteitv2
No description
-
NoCache
No description
-
addIdToHn
Ce plugin ajoute automatiquement un id calculé (compté) aux balises Hn
-
ReadFirefoxBookmarks
reading Firefox bookmak with PHP using SQLite library
-
externalcssandlib
Add external CSS and javascript libraries in your projets
-
qr
Ce plugins affiche une liste de questions reponses - This plugin for Joomla show a list of questions, when clicked, the answer is showed
-
dataarchives
Joomla plugin - Ajour une class sur un lien si ce lien possede data-archives="oui" - Add a class on a link if this link has data-archives="oui"
-
attachments
No description
-
mod_vacances
Ce module Joomla affiche les congés français. Basé sur des OpenDatas du minitère de l'éducation nationale
-
noteit
Ce plugin permet l'ajout de Post it (format graphique) dans un article
-
nbonlineusers
No description
-
removehtmlcomment
Delete all html comment in a joomla article
-
rechercheget
Recherche en GET dans Joomla Content
-
formatfichier
Synrthese of articles' Joomla content
-
workflow_steps
A simple HTML/CSS code to show where the step of workflow is
-
mod_entjca
Module listants les entreprises créées dans le département de votre choix.
-
definitions
Ce plugin permet l'affichage de termes et leurs définition