Installer à partir du Web pour les développeurs
From Joomla! Documentation
Joomla! 3.2 a introduit la nouvelle fonctionnalité d'installation à partir du web qui permet d'installer directement les extensions répertoriées sur le JED. Afin que vos extensions répertoriées sur le JED soient disponibles pour l'installation à partir du web, deux étapes sont à suivre :
- Compléter les deux nouveaux champs sur le JED
- Configurer votre site en conséquence
Deux nouveaux champs à compléter sur le JED
Si vous éditez votre extension sur le JED vous verrez deux nouveaux champs :
Le premier est le Type de téléchargement (Download Type), vous pouvez choisir parmi quatre options le type de téléchargement de votre extension :
- Aucun (None)
- Lien de téléchargement direct gratuit (Free Direct Download Link)
- Lien gratuit avec inscription obligatoire (Free but Registration Required at Link)
- Lien Commercial achat requis (Commercial Purchase Required at Link)
Le second champ correspond à l' URL de téléchargement/inscription/achat (Download/registration/purchase URL) et peut contenir l'une des URL suivantes :
- Une URL zip comme par exemple : http://www.exemple.com/updates/com_extension_v9.9.zip
- Une URL de mise à jour XML comme par exemple : http://www.example.com/updates/extension_update.xml
Attention: le cache du serveur pour la fonctionnalité Installer à partir du web étant paramétré sur 2-6 heures, vous ne verrez probablement pas vos modifications immédiatement dans le backend de Joomla.
Si votre extension est gratuite et directement téléchargeable via un lien, alors votre travail est terminé et vous pouvez ignorer la seconde étape.
Voici plus de détails sur le type de téléchargement.
Aucun
C'est actuellement le cas le plus fréquent, cela signifie tout simplement que vous ne pouvez ou ne voulez pas fournir une URL pour une installation directe de votre extension. Seuls les champs obligatoires du JED sont complétés, et les champs Installer à partir du Web restent vides.
Lorsqu'un utilisateur se rend dans son backend et clique sur l'onglet Installer à partir du Web, votre extension peut être trouvée, le bouton Télécharger s'affiche mais il n'y a pas de bouton Installer.
Lien de téléchargement direct gratuit
C'est l'option à choisir si votre extension est disponible gratuitement, sans inscription ni achat. Indiquez dans URL de téléchargement / inscription / achat l'URL du XML de mise à jour ou l'URL du fichier zip.
Lorsqu'un utilisateur se rend dans son backend et clique sur l'onglet Installer à partir du Web, votre extension peut être trouvée et le bouton Installer s'affiche, ainsi, il suffit à l'utilisateur de cliquer pour installer votre extension.
Gratuit mais inscription obligatoire
Cette option est à sélectionner si votre extension nécessite une inscription pour pouvoir être téléchargée. Dans le champ URL de téléchargement / inscription / achat, indiquez l'URL de la page d'inscription de votre site.
Lorsqu'un utilisateur se rend dans son backend et clique sur l'onglet Installer à partir du Web, votre extension peut être trouvée et le bouton Installer s'affiche. Lorsque l'utilisateur clique sur le bouton d'installation, il est redirigé vers la page d'inscription de votre site.
Si vous avez configuré correctement votre site (voir étape 2 ci-dessous), après s'être inscrit, l'utilisateur sera redirigé vers son propre site pour compléter l'installation web.
Paiement obligatoire
Cette option est à sélectionner si votre extension nécessite un paiement pour pouvoir être téléchargée. Dans le champ URL de téléchargement / inscription / achat, indiquez l'URL de la page d'achat de votre extension.
Lorsqu'un utilisateur se rend dans son backend et clique sur l'onglet Installer à partir du Web, votre extension peut être trouvée et le bouton Installer s'affiche. Lorsque l'utilisateur clique sur le bouton d'installation, il est redirigé vers la page d'achat de votre site.
Si vous avez configuré correctement votre site (voir étape 2 ci-dessous), après avoir procédé à l'achat, l'utilisateur sera redirigé vers son propre site pour compléter l'installation web.
[Qu'en est-il des abonnements ? Est-ce similaire à "l'inscription" ou plutôt à "l'achat" ?]
Configurer votre site
Comme indiqué précédemment, si votre extension est disponible gratuitement, sans nécessité d'inscription ou de paiement, vous n'avez rien d'autre à faire, vous pouvez donc sauter cette étape.
Configurer votre site et extensions pour une extension gratuite avec inscription obligatoire (Free but Registration Required at Link)
Si votre client doit s'inscrire, il vous faut par conséquent configurer votre site pour traiter l'inscription d'utilisateur.
Si vous ne le faites pas, l'utilisateur complètera son inscription, mais la dernière étape de l'installation depuis le web NE se fera PAS.
Comment fonctionne l'installation à partir du web
Lorsqu'un utilisateur clique sur le bouton 'Installer', Joomla! soumet les paramètres suivants :
- installat par exemple http://client.domain.com/administrator/index.php?option=com_installer&view=install
- installapp par exemple 99999
installat correspond à l'URL de renvoi et installapp correspond à l'ID de l'extension sur le JED.
Pour compléter l'étape de l'installation à partir du web, votre backend doit pouvoir recevoir ces paramètres, procéder à l'inscription et retourner vers l'URL installat.
Une fois que l'inscription est complétée, Joomla! s'attend à recevoir l'URL du zip ou une URL XML de mise à jour. Une fois reçue, Joomla! termine l'installation.
Installation à partir du Web avec le plugin jefreg
Le plugin jefreg est le plugin d'implémentation de référence. Un bon point de départ qui a été développé spécifiquement pour cet usage et que vous pouvez trouver ici.
Le plugin dispose de deux paramètres :
- Fichiers à télécharger
- URL d'entrée
Dans Fichiers à télécharger, le premier paramètre que vous devez configurer est de faire pointer le plugin vers les fichiers de mise à jour XML, zip ou script de vos extensions (un par ligne).
99999=>http://www.example.com/updates/com_extension_v9.9.zip
30458=>http://www.example.com/updates/extension_update.xml
77777=>http://www.example.com/updates/download.php
Si la ligne commence par un astérisque [*], il sera ignoré pour être géré par les plugins qui prennent en charge les téléchargements après réception du paiement. Des exemples de ce type de plugin peuvent être trouvés dans le répertoire mentionné ci-dessus.
Concernant l'URL d'entrée : ce plugin a été spécialement conçu pour le composant utilisateur Joomla! (Valeur par défaut index.php?option=com_users&view=login) mais il s'intègre également très bien sur une page d'inscription. Par exemple, dans le cas de Community Builder, il suffit de changer l'URL de point d'entrée dans les paramètres du plugin - ce qui est généralement recommandé (mais non obligatoire) pour le faire pointer vers votre page de connexion. Notez que si vous laissez ce paramètre vide, il pointera alors par défaut vers la page de connexion du composant utilisateur Joomla.
Comment mettre en place le plugin jefreg
- Téléchargez les fichiers sur github
- Copiez les fichiers de langue dans le répertoire system des plugins
- Zippez tous les fichiers et installez-le depuis le gestionnaire des extensions.
Configurer votre site et extensions pour une extension payante
Cela demande plus de travail que l'étape précédente. Il est conseillé de télécharger ce même plugin - cependant, il vous faudra lui intégrer un contrôle supplémentaire pour vérifier si l'utilisateur a acheté votre extension.
Le plugin peut être utilisé pour obtenir les paramètres installat et installapp, mais il NE doit PAS retourner l'URL zip ou le XML de mise à jour onUserLogin. Lorsque l'achat a été réalisé, l'opération peut revenir pour compléter l'installation à partir du web.
Code source de la fonctionnalité
Vous pouvez contribuer à la correction des bogues et anomalies ainsi qu'aux nouvelles fonctionnalités sur les dépôts suivants :
- https://github.com/joomla-extensions/install-from-web-client (plugin client)
- https://github.com/joomla-extensions/install-from-web-server (partie serveur)
- https://github.com/joomla-extensions/install-from-web-plugins (exemple de plugin pour une utilisation par les développeurs)
- https://github.com/joomla/joomla-cms (dépôt CMS)