Modules

PJ1: mod_entjca.zip

Vous aimez suivre l'activité de la vie économique de votre région  ? Vous allez aimer alors mon module !

Mais je vous mets tout de suite en garde, vous allez haïr la présentation de ce module. N'hésitez pas à corriger et à me renvoyer éventuellement vos modifications de la feuille de style présentant les informations de ce module, je els joindrai  à cet article
Je sais que certaines personnes ont comme besoin de suivre l'activités économique de sa région. Cela peut être très intéressant si vous êtes dans la gestion d'un annuaire local d'entreprises.
Ce petit module s'appuie sur les données en Open Data du site internet infogreffe.fr, données qui vous informent sur l'état des créations, des transferts, des suppressions des entreprises de votre région. Ou plutôt devrais-je dire de votre département. En effet, les API du site vous permettent de récupérer une dernière création des entreprises de votre département. J'ai configuré l'API de cette manière.
Partant de ce principe, ce module va donc afficher les dernières créations de votre département, lequel doit être configuré au préalable dans la console d'administration du module. Vous devez simplement saisir le code de votre département. Pour la Meurthe-et-Moselle, vous devez saisir 54. Pour tout le reste, ce module se comporte comme un module de base.
Avis aux infographistes : si vous êtes amené à modifier le fichier CSS fourni avec ce module, ce sera une fois de plus avec grand plaisir que je l'ajouterai à cet article. :)
 

Je ne sais pas vous, ou si c'est du faiit que je sois issu d'un monde parfait en terme d'ergonomie (euh, mac OS parfait ? oui ! et j'assume) mais j'aime reproduire des fonctionnalités dans mes application qui restent utiles. Je ne pense même pas simplement lancer une requete SQL sur PHPMyadmin sur mon serveur juste pour lister les articles Joomla non taggés. Bon je dois aussi dire que je n'ai pas accès à phpmyadmin sur mon environnement pro. Du coup, j'écris mes modules qui me lancent mes requetes désirées.

Icic, la requête (écrite non sans mal) permet de lister les articles non taggés. Elle ressemble à ca (j'ai mis les explications dans des phylactères) : 

 
select DISTINCT (doc_content.id), doc_content.title
FROM doc_content
left join doc_contentitem_tag_map on doc_contentitem_tag_map.core_content_id=doc_content.id
where doc_contentitem_tag_map.core_content_id is null  J'ai trouvé en faisant une rétro analyse du contenu de la base de données, j'aurais du mal a expliquer, mais un message est intéressant ici : https://forum.joomla.org/viewtopic.php?t=866399
order by doc_content.id desc";
 
Je crois bien qu'en fait j'ai expliqué le plus gros, tout le reste est de l'affichage de résultats issus de la requete. Remarquez toutefois, je m'améliore, je n'affiche pas les résultats dans le contrôleur masi dans la vue (comme quoi des fois...) !
 
 
PJ1: mod_javascript.zip

A la demande générale d'un seul et unique développeur et utilisateur de Joomla, qui m'a beaucoup dépanné dans mes projets, cet utilisateur avancé m'a demandé s'il était possible de lui développer un outil permettant de sélectionner au travers de l'interface d'administration, l'ensemble des bibliothèques JavaScript qu'il souhaite intégrer dans ses projets. De mon côté, j'ai déjà eu un besoin similaire de cette fonctionnalité mais plutôt pour mes fichiers CSS. Ainsi, ce module va intégrer CSS et JavaScript externes à vos différentes pages selon les conditions de Joomla. Voyons son fonctionnement.

Philosophie 

Je m'appuie sur le cœur même d'une fonctionnalité de Joomla, à savoir la possibilité pour un module, d'être affiché ou non sur une page en fonction de certaines conditions. Dans notre cas, ce module n'affichera aucun retour à l'écran, sauf si vous cochez la case à cocher débogages, mais dans sa fonctionnalité, cela ne sert strictement à rien. Cette case à cocher vous permet lors de la mise en place de votre module, de voir s'il est simplement bien pris en compte dans votre page. En effet, si vous cochez cette case, vous verrez un message blanc sur fond rouge ou sera notifié vous avez activé le mode débogage du module mod_javaScript.
 
firefox i95o6baiK7
 
Petite parenthèse 
Je fais tout de suite une petite parenthèse sur le nom de ce module ainsi que sur sa fonctionnalité. En effet, je l'ai appelé mod_javaScript car au point de départ, je ne comptais pas intégrer l'activation ou non de feuille de style CSS. J'ai rajouté cette fonctionnalité après coup, sans renommer le nom de ce module.

Utilisation et fonctionnement de ce module.

Si vous maîtrisez Joomla, vous aurez compris que ce module est utilisé afin de contourner et mamailler l'outil. En effet, un module en général affiche un contenu. Dans ce cas, hormis en mode debug aucun contenu n'est affiché, mais les définition des fichier CSS et JS dans la console d'admin sont bien chargés.
J'utilise un module pour pouvoir utiliser les fonctionnalités de joomla intitulées addstylesheet et addscript. La première méthode permet d'intégrer dans votre module, une feuille de style, et la deuxième méthode permet d'inclure dans votre module, un script Javascript (beurk:-) .
Or, comme nous intégrons des fichiers externes, ceux-ci sont intégrés dans le head de votre page html. Cela signifie donc que le style ainsi que les scripts ne sont pas associés à ce module précisément mais à la page complète. Ainsi, l'ensemble des scripts déclarés ainsi que les feuilles de style déclarées dans ce module seront appliqués à l'ensemble des pages dont vous allez spécifier, dans l'administration de ce module, les caractéristiques. Pour spécifier ses caractéristiques, je me base sur l'administration classique de Joomla, c'est-à-dire dans l'administration, dans l'onglet affectation, vous pouvez définir ou ce module va être activé.
firefox JzJAR5cDCL
 
Et comme j'utilise l'API de Joomla pour charger les feuilles de style et les fichiers de (java)scripts, nous allons avoir exactement sur les pages que l'on souhaite, à savoir l'ensemble des scripts déclarés dans le module. Ainsi, vous pourrez définir autant de modules que de choix de feuilles de style et de script Javascript que vous souhaitez afficher dans votre page, et ce, selon les pages que vous souhaitez. Reste à vous de définir soit le couple JavaScript ↔ feuille de style, soit uniquement un script dans le module ou encor uniquement une feuille de style dans ce module. Bien que ce module soit invisible, je vous retourne donc à la gestion classique d'un module dans Joomla.
 firefox kOv7l6oaJI

Affectation et conditions

Je reviens rapidement sur la notion d'affectation du module, le deuxième onglet dans votre console d'administration de votre module. C'est bien ici que vous devez définir les conditions précises ainsi que les "lieux" où vous souhaitez attribuer ce module invisible. C'est d'ailleurs pour cette raion précise que c'est un module et non un plugin !

Débogage 

Comme ce module est un module invisible, j'ai défini une case à cocher "débogage" dans la console d'administration de l'outil. Une fois activé, cette case à cocher vous permet simplement d'avoir un message qui vous spécifie que le module est bien mis en place. Son utilisation réside dans le fait que, comme module est invisible, il se peut, (et ça c'est à m'arrive très souvent), d'oublier d'affecter à mon module soit une position, soit une condition d'affectation. Dans ce cas le module n'est pas activé. Et comme ce module est invisible, vous ne pouvez pas savoir s'il est actif ou non. En cochant cette case, vous visualisez le fait que le moodule est bien pris en compte. Une fois vu, il ne vous reste plus qu'un décocher cette case.
 

Encore une fois, je ne vais pas vous pouvoir vous montrer d'exemple puisque je n'utilise pas sur mon site l'ensemble Joomla Content, au profit de K2.

Mais dans mon cadre professionnel où je privilmégie les choses simples, donc natives, je ne fais que du Joomla content.

C'est la raison pour laquelle j'ai écrit ce petit module qui vous permet de lister les articles d'un site Joomla, classé par ordre alphabétique, mais surtout avec une rupture sur la première lettre du titre de article. Pour ceux qui l'ignoreraient, une rupture et le moment où, dans une liste issue généralement d'une base de données, une et une seule information d'un enregistrement change.

Dans notre cas, le changement, c'est-à-dire la rupture, se fait sur la première lettre du titre de l'article. En d'autres termes, vous allez avoir classé, avec une organisation par première lettre, l'ensemble de tous vos articles Joomla content, avec en en-tête pour chacun des groupes affichés, la première lettre ou plutôt le premier caractère du titre de l'article (le titre de l'article pouvant commencé par un chiffre, un caractères UTF-8 type icones,.... ou autre. Le module recherchant toutes ces informations automatiquement, si la première lettre de l'alphabet commence par un caractère comme une double cote, vous allez avoir dans votre liste, un groupe d'articles dont en tête sera une double cote. Bien que fonctionnel, ce module nécessite toutefois une bonne manipulation des données et notamment des titres des articles pour que le rendu soit logique et cohérent.

Encore une fois, l'excellentissime site internet sur lequel vous vous trouvez n'étant pas basé sur du Joomla content mais du K2, je ne peux que vous mettre des copies d'écran car je n'ai aucune donnée permettant d'afficher un exemple.
 
premierelettres

Aujourd'hui je vous présente un outil que j'ai développé pour notre CMS favoris Joomla qui vous permet, grâce au navigateur web chrome uniquement, de transformer chacun de vos articles Joomla Content en un fichier PDF ! Je pensais que c'étati impossible, alors je l'ai fait !

Alors je sais, existe des outils gratuits (je reste toujours dans l'univers du gratuit car je n'ai aucun budget à mon boulot pou acheter quoi que ce soit, et ca reviens beaucoup moins cher de passer quelque semaines à rechercher et à coder)  qui vous permettent de faire ce genre de choses comme PhocaPDF. Il existe des composants pour faire ceci mais je ne veux pas que cela reste un composant utilisable manuellement, pour chacun des articles, je veux véritablement sortir tous les articles de mon site Joomla (Content) en un fichier PDF. Il y a intérêt, dans mon cadre professionne, de pouvoir fournir un et un seul fichier qui va contenir l'ensemble de mon Joomla. En effet, tout le monde n'a pas forcément et à chance d'avoir un accès web lorsque les personnes ne sont plus au bureau. Elles ont certes un ordinateur mais pas forcément d'accès au réseau. Et je parle même pas de la sécurisation des données si jamais on passe par Internet !

CHROME

Alors j'entends déjà ici les mauvaises langues dire, à juste titre, "oui ton outil n'est pas compatible avec les normes du web, il se retrouve associé à 1 et 1 seul navigateur Web : Chrom". Oui je sais. Je plussois. Et alors ? Quand on se penche sur ce genre de concept, on accepte aussi de tirer les outils par les cheveux pour pouvoir aboutir à ses fins, lorsque ces dernières sont assez complexes. Mais je suis d'accord avec vous.
Une deuxième remarque, c'est aussi la justification de l'utilisation de l'outil navigateur web de Google Chrome. Pourquoi utiliser ce navigateur en particulier ?  Ce site est-il en partenariat avec le plus gros moteur de recherche du moment ?
 
Hélas non, je ne suis en partenariat avec personne ici. Le choix de Chrome se justifie simplement car il possède un mode CLI assez intéressant que je n'ai pas retrouvé sur les autres navigateurs. Je souligne au passage que tout ce que j'ai fait jusqu'à présent, je l'ai fabriqué sur une plate-forme Windows sans avoir détesté sur les autres systèmes d'exploitation. D'ailleurs retrouvez toutes les commandes chrome sur le site de Perter BEVERLOO.
En effet, parmi les paramètres du mode commande de Google Chrome, il existe des paramètres qui vous permettent de pouvoir afficher une page web dans un fichier PDF, sans afficher le contenu, le tout en ligne de commande, ce qui nous permet de fabriquer des scripts de modification et de génération de fichier PDF, au travers d'un fichier de commande .bat.
 

La commande .bat générique 

La commande de base, commentée par les infobulles, est la suivante  :
  
chrome.exe --headless --disable-gpu --print-to-pdf=c:\Users\seb\temp\fichier.pdf
 
Je pense que pour les plus pertinents d'entre vous, vous aurez désormais compris ce que je comptais faire. Plus précisément dans Joomla content, je liste l'ensemble des articles qui sont présents dans la base de données, et grâce à Chrome, je lui demande de les afficher, mais dans une méthode très particulière car il ne les affiche pas à l'écran, mais il utilise un paramètre qui permet de fabriquer un affichage particulier dans un fichier PDF.
L'intérêt de cet outil est de pouvoir utiliser l'outil navigateur web, avec toutes les propriétés qui lui sont conférées, notamment en terme de marges, d'en-têtes et de pieds de page, et tutti quanti. Notez que lorsque vous utilisez cette méthode, la première des choses à faire et d'aller dans Chrome lui-même pour lui paramétrer vos préférences en termes d'en-tête et de pied de page. Peut-être ne voulez-vous pas qu'ils s'affichent. Je n'ai pas regardé en détail mais peut etre existe-t-il aussi des options pour paramétrer en mmode CLI des entêtes, pieds de pages, marges ...
 

JOOMLA 

 
Au niveau de Joomla, j'ai donc fabriqué un petit module qui permet de lister l'ensemble des articles de votre site Joomla, articles générés dans Joomla content uniquement.. A adaprer si vous utilisez K2. Mon outil ne prend pas en compte les autres systèmes de gestion de contenu comme k2 ou d'autres que j'ignore, je reste fidèle pour des raisons de simplicité à mon Joomla "de base" et son Joomla content. Une fois le module installé, voici comment il fonctionne.
 

Fonctionnement

 Le principe est on ne peut plus simple. J'ai lancé, après avoir défini un set_time_limit à 0 afin de ne pas être embêté par le timeout du serveur (local, je précise), une simple requête Joomla me liste l'ensemble des articles dont l'état est égal à 1, en d'autres termes l'ensemble des articles qui sont publiés. Une fois ma requête écrite et lancée, je récupère tous ces articles dans un objet que je parcours. Lorsque je parcours à cet objets, je définis une URL dans laquelle je passe le numéro de l'article en paramètre, via une concaténation, et cet URL je vais la passer dans une chaîne de caractère représentant la ligne de commande de chrome à lancer. Cette ligne, pour des raisons pratiques, je l'affiche à l'utilisateur. Il peut alors ainsi faire un copier-coller uniquement de l'article qui intéresse à transformer dans un fichier PDF. Toutefois, car l'objet est bien un outil de scriptage, je génère un fichier texte, plus particulièrement un fichier texte avec une extension bat, afin de pouvoir créer un fichier bat à lancer sur ma ligne de commande Windows. Ce fichier, comme par hasard, je le nomme script.bat.
Une fois l'ensemble du fichier BAT écrit sur ma machine, ce fichier est remplacé dans le répertoire du module du module, il ne me reste plus qu'à récupérer ce fichier afin de lancer sur la ligne de commande.
 

CONFIGURATION DU MODULE 

 Lorsque vous aurez installé ce module sur votre machine, vous devrez absolument faire une configuration essentielle afin d'adapter mon outil à votre machine locale.
Nous sommes bien d'accord que cet outil travaille sur un serveur pour générer votre script, mais ce dernier doit absolument être lancé sur votre machine en local qui contient le logiciel de Google Chrome. (j'avais prévenu que c'étatit mamaille and co)  Et la configuration de cet outil consiste, dans la configuration Joomla du module, de spécifier dans les paramètres deux informations :
  • dans un premier temps vous allez spécifier le chemin dans lequel votre Fichier de script généré doit être enregistré,
  • dans un deuxième temps vous spécifierez, et cela est essentiel, le chemin d'accès à votre logiciel chrome.

Je n'ai fait des tests que sous Windows, peut-être faudrait-il faire des recherches pour les autres systèmes d'exploitation en terme de chemin d'accès à Chrome. Une fois ces informations configurées, vous n'aurez plus qu'à créer un module dans un article accessible uniquement aux administrateurs par exemple, et une fois ce module positionné sur votre article, vous devrez simplement lancer l'article sur lequel votre mois de déposé. Vous obtiendrez ainsi un script généré sur votre machine, avec le chemin d'accès Chrome que vous avez spécifié dans la console d' administration de l'outil, mais aussi vous aurez sous vos yeux le script qui a été généré.

Faites toutefois attention si vous avez des dizaines de millions d'articles sur votre Joomla, au time out. Dans le cas où le Time Out est trop court, j'ai préconfiguré 4 du fichier helper.php un time out à 0. Ce n'est pas très propre, mais dans la mesure où mon outil ne travaille que sur un serveur local, je n'ai que faire des considérations purement web.

En conclusion, même si cet outil est particulièrement bancal dans la mesure où il ne fonctionne qu'avec un type de navigateur, que le Time Out c'est pas top, que (il faut bien le dire) rien n'est très très propre, et surtout que je suis très conscient des limites de l'outil, je ne m'attends à aucune remarque de la part de mes chers lecteurs que j'adore. Juste partager une trouvaille.
Comme vous le savez ici j'ai ma mamailler et bidouiller un peu tous les codes afin de tirer les extrêmes de chacun des outils que je regarde, et je reste toutefois à l'écoute de vous aider et vos besoins, même si mon cahier commence à se remplir de prochains projets...

Après avoir regardé sur la JED les différents modules gratuits de générateur de QR Code, et après les avoir bien entendu téléchargé et analysé un tout petit peu le code de ces modules, je suis fort surpris de voir que beaucoup d'entre eux faisaient appel à un web service externe ! 

Qu'elle ne fut pas ma surprise d'apprendre et de voir ceci, lorsque l'on sait qui existe des bibliothèques PHP toutes faites permettant de générer des codes 3D.

Fort de ce constat, je m'empresse de regarder sur l'excellent site PHPClasses si quelqu'un n'aurait pas déjà écrit une classe toute faite permettant la génération de QR Code de manière autonome et sans connexion au net. bah oui, tout le monde ne bosse pas avec un e connexion internet ! loin de là.

Cette absence de connexion me donne une problématique supplémentaire : je dois, moi, oui oui bien moi, travailler sans API !!! Vous avez bien lu !!!  C'est quand même fort pour LE gars qui s'amuse sur son site web avec !

Partant de ce constat, et donc sans que l'on soit tributaire d'un web service externe, je me suis mis à intégrer une bibliothèque PHP permettant la génération d'une image de ce type.

Le gros avantage à cette méthode, c'est que nous ne dépendons plus d'un web service externe, si ce dernier vient à tomber en panne, votre site continue de fonctionner de manière tout à fait normal puisque la bibliotheque reste sur VOTRE serveur ! Sans compter, comme je le disais, en cas de non connexion au net... ca continue de marcher

Nous allons donc voir dans ce module comment implémenrter et la bibliothèque génératrice du QR code. Je ne rentrerai pas dans le détail de la bibliothèque car je n'en suis pas auteur, mais je vais vous expliquer comment je l'ai intégré grâce à mes commentaires.

Encore un point. Est ce que je triche ? Oui un peu je l'avoue car les QRCodes sont généré en tant que fichiers puis affichés dans la page. Ils devraient être affichés à la volée. Cela dit, chose que je n'ai pas faite, il suffit de supprimer les fichiers générés dans le code du module.

 

Aujourd'hui je vais vous parler d'une possibilité d'exporter vos informations Joomla, quels que soient les composants que vous utilisez, que ce soit du Joomla content, Jevents ou encore K2 ou que sais-je encore,

Mon petit module s'adapte à tous et à tous ces composants possibles et inimaginables sur votre CMS favoris, puisqu'il s'éxécute "directement" sur la base de données.. La seule et unique condition pour que l'export fonctionne, c'est que le contenu de vos composants ou de vos modules soit stocké en base de données. En effet, ce petit module que j'ai installé côté administrateur, ne prend pas en compte les sauvegardes de données dans des fichiers texte, XML ou autre. Il vous sort un fichier texte.

Le principe utilisé est un principe basé sur le système de gestion de base de données MySQL, il faudra peut-être donc adapter si vous travaillez avec un autre SGBD. En effet, on sort complètement du SQL ANSI92 (de mémoire ?) puisque l'outil travaille avec une spécifité MySQL que nous allons évoquer ci-dessous.

Principe de base

Dans ce module j'ai donc installé sur mon interface d'administration de Joomla, je vais simplement lancer une requête SQL. Le gros intérêt de ce fonctionnement c'est que nous pouvons mettre dans notre requête, exactement ce que l'on souhaite récupérer de la base de données. Inutile donc de faire un export total de votre base de données, vous n'avez simplement qu'à écrire votre requête SQL comme bon vous semble pour exporter les parties de vos tables qui vous interesse. Mon outil va simplement rajouter à votre propre requête SQL, le code (MySQL) qui va bien pour exporter vos informations dans un format de fichier texte.
 Il eût été possible, et plus long, de faire un outil plus universel, mais qui utilise un autre SGBD de la suite WAMP/LAMP, donc MySQL ? Mais n'hésitez pas à repomper et adapter le code (en me disant où faire un lien si vous travaillez à partir de ce module)

Mise en œuvre 

Comme vous pouvez le voir dans la copie d'écran ci-dessous, je propose d'aller rajouter à la requête, l'ensemble de paramètres qui peuvent vous servir pour votre export. Dans ces paramètres, la requête fixe la ligne SELECT et propose à l'utilisateur de rajouter les clauses WHERE, GROUP BY, ORDER BY et à HAVING.
 export1
Vous pouvez donc ainsi, à partir de votre propre Joomla, exporter ce que vous souhaitez. C'est l'avantage de mon système, nous ne sommes pas cantonnés à un export de l'ensemble de la base de données.
Je n'ai pas mis en place dans ce module un "bouton" de lancement (un bouton d'action), de manière à ce que ce module se lance automatiquement au chargement de la page sur l'accueil de la page d'administration. C'sdt discutable, je sais. Ce module est installé et configuré pour être lancé à chaque chargement de la page où il se trouve. Je ne peux que vous conseiller ainsi de y intégrer à une page qui possède un statut d'accès uniquement à l'administrateur de site web. Ce module virgule au cours de ce développement, a été installé du côté administrateur de jumia. Vous pouvez donc bien entendu, installer ce plugin du côté public. Les fichiers fonctionnent exactement de la même manière il suffit simplement dans le fichier XML de corriger sur la ligne 2 et de placer le répertoire dans la partie publique du site (pas dans le sous répertoire administrator en clair). Mais je doute l'intérêt de y installer du côté public sauf a spécifier des droits particuliers avec authentification.
Installer sur un Joomla de base, vous verrez apparaître au moment du chargement de votre interface administrateur, un nouveau module qui s'intitule export Joomla. Remarquez que la ligne de la commande SQL reste affichée. Ceci étant dans un premier temps pour un simple but de débogage, je ne l'ai pas supprimée car je pense qu'elle peut servir. Vous pouvez d'ailleurs remarquer que le chemin d'accès sur un client Windows s'écrit non pas avec des anti slash mais bien avec des /. J'insiste vraiment sur ce point si vous souhaitez déplacer le fichier ailleurs car j'ai cherché très longtemps. Notez aussi que ces signes "barres" sont toutes doublées. Sans ce doublement, la création du fichier ne fonctionne pas. Du moins sous Windows.
Je n'ai pas testé ce module sur un autre serveur que Windows car je n'en ai pas l'utilité ailleurs, mais je vous mets en garde peut-être faudrait-il corriger certaines lignes de code comme se séparateur de répertoire pour bien spécifier le chemin dans lequel vous souhaitez enregistrer le fichier. Remarquez aussi que dans ma copie d'écran, j'ai bien mis un chemin absolu à partir du "root" c:.
Ce module, je souhaite véritablement qu'il soit automatique. C'est la raison pour laquelle il se charge au moment du chargement de la page d'accueil du panneau d'administration de Joomla. Peut-être faudrait-il, pour votre part, modifier ceci et éventuellement créer un chemin dans le menu composant. Mais ne sachant encore pas le faire, je ne me suis pas attelé à cette tâche....

Je vous propose aujourd'hui un module ruban que j'ai spacifiquement écrit pour la template Protostar. N'utilisant pas cette template sur ce site, il ne fonctionne pas ici. 

L'idée est de placer dans la coin gauche des pages un module qui affiche de manière diagonale, un texte. Ce texte est placé sur fond rouge mais vous pouvez changer tout le CSS fourni.

 

 

BANNER

Aujourd'hui je vous présente dans cet article une mamaille, autrement dit en français normal, une bidouille que j'ai réalisé pour le CMS Joomla concernant  Joomla content, qui vous permet de créer un petit formulaire web avec un champ texte et un simple bouton, vous permettant de saisir à l'intérieur la référence de votre article Joomla (son ID) couplée à un bouton Valider qui, lorsque vous aurez cliqué, sur ce bouton, vous transportera directement sur la fiche portant le numéro que vous avez saisi.

Avant toute chose, je tiens à préciser que pour que cela fonctionne, vous devez avoir configuré votre fichier .htaccess avec les bonnes règles de reroutage, ces dernières règles se trouvent notamment dans le fichier .htaccess de la dernière version 3.9 de Joomla que vous pouvez télécharger. En effet, après avoir découvert fortuitement cette manière de fonctionner, j'ai demandé à mon administrateur système si lui-même avait configuré ler .htaccess du serveur dédié à mon Joomla pour faire fonctionner ce fonctionnement, il m'a répondu que non il avait tout simplement installé la derniere 3.9, avec à son intérieur le fichier .htaccess pré-configuré ainsi.
 
Le principe est très simple, si vous saisissez l'adresse de votre fichier de la page d'accueil, à savoir index.php, auquel vous concaténez un / puis le numéro de la fiche que vous souhaitez obtenir, vous arrivez directement sur la fiche envisagée. Si je saisis et adresse par exemple domaine.tld/index.php/3951, je tombe directement sur l'article 3951 que j'ai saisi dans l'URL.
 
Partant de ce principe, j'ai simplement créé un tout petit code HTML, dans lequel j'intègre le formulaire et un petit JavaScript de redirection, permettant ainsi de me rendre directement sur la fiche que j'ai saisi.
Partant de partant de ce principe, j'ai écrit un petit module personnalisé que vous pouvez ainsi réutiliser ou bon vous semble, qui contient le code suivant.
<form>
<input type="text" name="nro_art" value="2" />
<button onClick="url = 'index.php/' + document.getElementsByName('nro_art')[0].value;document.write('Vous allez être redirigé');window.location.replace(url); ">Go2</button>
 </form>
 
 formJoomla

Dans le cadre de mes attributions professionnelles, je dois gérer un ensemble de données cohérent autour de différents matériels.

Un matériel est en constitué de plusieurs éléments. Parmi ces éléments, peuvent se trouver des notes utilisateurs. On en arrive à notre module que je vous présente aujourd'hui.
Vous avez compris, sur un article Joomla content, je souhaite rajouter des notes. Ces notes sont ni plus ni moins qu'un champ personnalisé Joomla content, au format répétable.
Ce format est défini dans la liste des formats possibles des champs personnalisés. Il vous permet pour un champ donné, de proposer à l'utilisateur l'insertion de plusieurs éléments. En d'autres termes, c'est une relation 1-N d'une base de données. Notons toutefois que dans Joomla, il n'y a pas cette relation directe au niveau de la base de données, puisque c'est dans un gros champ texte que Joomla stock l'ensemble des informations au format Json !

Première étape, création de notre champ personnalisé répétable

La première étape de notre système et de créer un champ personnalisé Joomla, tel que défini dans la copie d'écran ci-dessous, qui est un champ de type répétable.
description champs repetable
 
Dans la notion de répétabilité, nous allons simplement stocker un champ que j'intitule... note, de type "éditeur", dans lequel le format html va être filtré (proessus interne qui vire les balise inutiles ou dangeureses).
Je reviens rapidement  sur le type éditeur, ce n'est pas un type de base de données mais bien un type de formulaire que nous devons présenter à l'utilisateur. Dans ce cadre, c'est un format wisiwig, éditeur de type "Word", qui va être présenté à l'utilisateur.
 
Une fois la description du champ terminé et enregistré, n'oubliez pas d'affecter une catégorie auquel vous souhaitez que ce champ apparaisse, vous aurez la possibilité dans la zone "administrateur" de Joomla, de pouvoir créer autant de fiches de ce type pour un enregistrement donné, pour un article donné si je reprends les termes Joomla
 
Désormais, notre structure Joomla des données est prête et fonctionnelle, commençons par créer un article de la catégorie dans laquelle nous avons spécifié l'affichage de ce champ.
 

Création de l'article

Lorsque je crée un nouvel article, j'ai un onglet chant qui apparaît. En fonction de la configuration du champ répétable que vous avez créé, le nom de cet onglet peut changer.
 
Dans cet onglet, vous avez la possibilité de créer autant de notes que vous le souhaitez puisque le champ est rééptable.
Pour créer une note, il vous suffit de cliquer dans la petite icône verte avec une signe plus. Vous allez avoir un éditeur WISIWYG qui va apparaître, vous pouvez saisir vos premières notes.
 
Si une deuxième note doit être saisie, vous avez la possibilité de cliquer sur l'un des boutons verts permettant de créer une nouvelle note. Remarquez aussi, que vous avez une croix sur fond bleu qui vous permet d'organiser vos notes dans l'ordre que vous désirez. Je ne reviens pas sur le bouton moins sur fond rouge qui vous permet simplement de supprimer la note correspondant à la ligne que vous avez envisagée.
 
boutonsss
 
Le module que j'ai écrit, va rechercher le champ que j'ai intitulé note, que vous devez aussi intitulé note pour que ce module reste fonctionnel sur votre site.
 
Dans le cas où vous souhaitez changer le nom de ce champ, il vous suffit de changer le nom de la variable dans le fichier helper.php, sur la ligne 33. Attention, selon la mise en page de votre éditeur de code, le numéro de ligne peut varier. C'est dans la ligne élément du dernier foreach du fichier helper.php.
 
Dans le paquet je fourni en téléchargement, je vous joins un fichier CSS permettant d'appliquer un style post-it sur l'ensemble des notes que nous avons créées. C'est la raison pour laquelle dans le fichier lelper.php (je mets toujours malheureusement mon code HTML dans le helper alors que je sais qu'il faut le mettre ailleurs), j'ai pris que style fourni dans le CSS fourni dans le package.
 
Si vous suivez régulièrement mes articles, vous serez que je suis absolument nul en infographie. C'est la raison pour et accueil, pour utiliser la notion de post-it, rendons à César ce qui appartient à Jules, je me suis inspiré de post-it déjà créé, trouvé sur le site codepen et écrit par Dillon Brady sous la référence EzRoZQ.
 

Revenons à l'utilisation

Désormais, il vous suffit de créer autant de champ de type note que vous souhaitez afficher de notes sur votre module, affecter ce module à article sur lequel vous souhaitez voir apparaître vos post-it, puis d'enregistrer le tout. Vos notes apparaissent ainsi lorsque comme vous le désirez point je vous laisse bien entendu ici un exemple.
 
Enccore une fois, ce module est spécifiquement développé pour Joomla Content. Mon sité étant piloté par K2, je ne peux que vous joindre une copie d'écran du résultat.
 
Module post it pour Joomla