Intégrer le media manager

Imprimer

Compatibilité Joomla! joomla! 1.7

Lors du développement d'un composant on a parfois besoin de sélectionner et uploader une image sur le site et récupérer son chemin dans un champ. On a la solution de coder un outil soi meme, ou alors d'utiliser le media manager intégré dans Joomla qui fait très bien son travail.

L'idée est que lorsque l'on clique sur un lien ça ouvre le media manager et après sélection de l'image on récupère son chemin dans un champ de formulaire.

On ajoute l'appel à la librairie modal qui permet d'afficher une lightbox.

JHTML::_('behavior.modal');

Ensuite on crée un lien qui va utliser la classe 'modal' pour s'ouvrir dans la fenêtre lightbox et qui pointe vers le media manager de Joomla!

<a class="modal" href="administrator/index.php?option=com_media&view=images&tmpl=component&e_name=test" rel="{handler: 'iframe', size: {x: 570, y: 400}}" >Ouvrir le media manager</a>
<input id="test" type="text" />

Dans le lien on retrouve une variable 'e_name=test' qui définit l'ID du champ dans lequel on récupère la valeur du chemin de l'image.

Pour parfaire le tout on doit définir une fonction javascript 'jInsertEditorText' pour traiter le résultat. Cette fonction est appelée lorsque l'on clique sur le bouton 'Insérer' du media manager. On écrit la fonction dans l'entête <head> de la page

function jInsertEditorText( text, editor ) {
                var newEl = new Element('span').set('html',text);
                var valeur = newEl.getChildren()[0].getAttribute('src');
                $(editor).value = valeur;
            }

La variable text contient la valeur du chemin de l'image et la variable editor contient l'ID du champ à remplir comme défini précédemment.

Et normalement c'est tout, on clique sur le lien, la fenêtre s'ouvre et lors du clic sur Insérer le champ test se rempli avec le chemin de l'image du type 'images/stories/monimage.jpg'.

 

 

Mettre à jour la session en ajax

Imprimer

Compatibilité Joomla! joomla! 1.6joomla! 1.7mootools in joomla!

J'ai cherché pour un développement personnel dans mon composant Template Creator à conserver et mettre à jour la durée de la session dans une page sans avoir à la recharger. Dans cette page j'ai beaucoup de choses et l'utilisateur peut y passer un certain temps, durée qui peut être supérieure à la durée de la session ce qui fait que lorsqu'il enregistre ou rafraichit la page il est déconnecté. Très embêtant comme situation...

Traduction avec JText

Imprimer

Compatibilité Joomla!joomla! 1.5joomla! 1.6

Si vous cherchez à développer des extensions Joomla pour un site multilingue vous aurez besoin de la fonction JText issue de l'API Joomla!.  Grâce à cette fonction on peut ajouter des termes traduisibles dans plusieurs langues que l'on inclut directement dans le code PHP mais aussi Javascript.

Requête Ajax dans une extension

Imprimer

Compatibilité Joomla! joomla! 1.5joomla! 1.6mootools in joomla!

Lorsque l'on développe une extension pour Joomla! on chercher souvent à créer une requête Ajax pour charger des données à la volée sans devoir recharger la page. Cette technique très intéressante offre de nombreuses possibilités de développement à condition d'arriver à réaliser cette tâche. Voyons plus en détail comment faire...

Fichiers de langue dans un plugin

Imprimer

Compatibilité Joomla! joomla! 1.6

Lorsque l'on crée un plugin pour Joomla! il peut arriver que l'on ait besoin d'ajouter des termes à traduire dans plusieurs langues. Joomla! offre la possibilité de créer et utiliser des fichiers de langues qui se trouvent dans "[site]/administrator/language/". Or pour les utiliser dans un plugin, il faut les appeler à partir de la classe constructeur et installer les fichiers.

Site réalisé par Cédric KEIFLIN - Mentions légales

Copyright © 2010 - 2020 Tutoriels Joomla! - Tous droits réservés - Joomla! est un Logiciel Libre diffusé sous licence GNU General Public

https://tutoriels-joomla.joomlack.fr n'est ni affilié à Open Source Matters ou au projet Joomla ni approuvé par eux.
Le nom Joomla!® est utilisé sous license limitée de Open Source Matters, le propriétaire mondial de la marque de commerce.