Soutenir Vision du Web dans son partage de logiciels et de ressources libres

Chargement du mineur pour soutenir Vision du Web ...
Démarrer le mineur va utiliser les ressources de votre machine pour créer de la monnaie numérique Monero.
Le montant des donations pour Vision du web est de 0.018026365499642 Monero.

Composants Modules Plugins pour Joomla : Différence entre versions

De Wiki. Analyse, Communication, Développement, Hacking.
Aller à : navigation, rechercher
m (Ajouter un choix de paramètre au module)
m (Importer Kunena depuis GitHub)
(Une révision intermédiaire par le même utilisateur non affichée)
Ligne 22 : Ligne 22 :
  
 
===Kunena===
 
===Kunena===
 +
====Exporter Kunena sur un autre site====
 +
Vue des tables à sauvegarder sur la base de données de Joomla : http://www.kunena.org/docs/en/faq/migrate-the-forum-and-users-to-a-new-site
 +
 
====Importer Kunena depuis GitHub====
 
====Importer Kunena depuis GitHub====
 
=====Exemple pour Kunena 2.0 depuis Zend Studio/Eclipse=====
 
=====Exemple pour Kunena 2.0 depuis Zend Studio/Eclipse=====
Ligne 99 : Ligne 102 :
  
 
compojoom
 
compojoom
 +
===J2xml===
 +
Exporter des données en XML avec J2xml : https://extensions.joomla.org/extension/j2xml/
  
 
==Plugins==
 
==Plugins==

Version du 22 octobre 2017 à 13:46

Naviguer sur le wiki : Accueil du wiki - Sommaire Administrateur - Sommaire des projets - Sommaire pour Webmaster - Sommaire We make Hack
Naviguer sur le site : Accueil du site - Les annuaires - Les éditoriaux - Le forum - Les outils - Les projets
Les deux liens suivants sont des outils qui vous assistent pour écrire en Markdown : Stackedit et Tables Generator.
Pour participer à la rédaction du contenu sur ce wiki il est nécessaire de créer un compte utilisateur.

Sommaire

Composants, Modules, Plugins pour Joomla!

Rechercher et télécharger une extension Joomla! : https://extensions.joomla.org

Des dizaines d'extensions gratuites pour Joomla! : http://eco-joom.com/joomla-extensions.html

Composants

Afficher un composant sur votre site

Utiliser Components Anywhere : https://www.regularlabs.com/extensions/componentsanywhere

{component url/of/the/component}

Centrora Firewall

Un firewall gratuit pour Joomla! : https://extensions.joomla.org/extensions/extension/access-a-security/site-security/centrora-security/
Site officiel : https://www.centrora.com/download

Outils de sécurité non testés

Antivirus : https://extensions.joomla.org/extensions/extension/access-a-security/site-security/antivirus-website-protection/
Securitycheck : https://extensions.joomla.org/extensions/extension/access-a-security/site-security/securitycheck/
Incapsula : https://extensions.joomla.org/extensions/extension/access-a-security/site-security/incapsula/

Kunena

Exporter Kunena sur un autre site

Vue des tables à sauvegarder sur la base de données de Joomla : http://www.kunena.org/docs/en/faq/migrate-the-forum-and-users-to-a-new-site

Importer Kunena depuis GitHub

Exemple pour Kunena 2.0 depuis Zend Studio/Eclipse
Click on menu "File"
Click on "Import…"
Now expand "GIT"
Select "Projects from GIT"
Choose URI in the following step
Click “Next”
Open a Internet Browser and login to your GITHUB account, into Kunena\Kunena-2.0 copy the URI : github.com/Kunena/Kunena-2.0.git
Paste this URI into Zend Studio in URI field, just fill the user and password fields
Click "Next"
Click "Next" once more to add all branches
Enter the directory into "Directory" where you want to store the local repo (this should be an empty/new directory)
Click "Finish"
Source :www.kunena.org/docs/Developing_in_Eclipse_with_Git
Création et gestion des branches avec Git : github.com/Kunena/Kunena-Forum/wiki/Create-a-new-branch-with-git-and-manage-branches
Template pour Kunena 5
Le template principal doit gérer le boostrap ou alors tester en activant la prise en charge du boostrap dans le template cryspsis.
--> composant, Kunena, Template, Crypsis, paramètres de base, lire les css boostrap.
Si le Template de Kunena 5 ne donne pas un affichage suffisamment propre avec votre template de Joomla, passer la page de votre forum sur un template Joomla Standard comme Protostar.
Le template de Kunena 5 que vous utilisez fonctionnera sûrement mieux. Utiliser par exemple le Template JF Simone.

Icomoon

Personnaliser les icones du forum.

Rappel des icônes disponibles : http://the8guild.com/themes/html/ultima/v2.3.1/cheatsheets/IcoMoon_Cheatsheet.pdf

Pages privées sur mesure

User Private Page

With User-Private-Page you can :

create a page per user
only the user can see the page
use any plugin codes in the content to add video, image, module etc.
link to the page with 1 menu-item for all users

https://www.pages-and-items.com/extensions/user-private-page

Articles Anywhere

Source : https://www.regularlabs.com/extensions/articlesanywhere

Page Builder

Source : https://www.joomshaper.com/page-builder

Système de points

Source - AltaUserPoints Extensions : https://www.nordmograph.com/extensions/index.php?option=com_virtuemart&view=category&virtuemart_category_id=8&Itemid=58

Source : https://extensions.joomla.org/extensions/extension/living/education-a-culture/ari-quiz-lite/

Source : https://extensions.joomla.org/extensions/extension/social-web/social-gamification/ffgate/

Source : https://extensions.joomla.org/extensions/extension/living/education-a-culture/txtquiz/

Source : https://extensions.joomla.org/extensions/extension/fyrebox-shortcode/

JDownloads

Changer la langue : http://www.jdownloads.net/translations

Phoca Gallery

Afficher un album galerie photos Facebook avec Phoca Gallery : http://www.phoca.cz/documents/2-phoca-gallery-component/443-displaying-facebook-albums

Explorateur de l’API Graph - Obtenir un token utilisateur ou d'application Facebook : https://developers.facebook.com/tools/explorer/445830649096361

Types de Token : https://developers.facebook.com/docs/facebook-login/access-tokens?locale=fr_FR

Acymailing

Supprimer le Powered by : https://forum.joomla.fr/showthread.php?212801-Supprimer-le-Powered-by-AcyMailing

Geolocalisation

gmapfp

phoca maps

compojoom

J2xml

Exporter des données en XML avec J2xml : https://extensions.joomla.org/extension/j2xml/

Plugins

UP - Universal Plugin

Créé par Lomart de la communauté Joomla!
https://up.lomart.fr
https://up.lomart.fr/documentation-actions

Anticopy

Anticopy : https://extensions.joomla.org/extensions/extension/access-a-security/site-access/anticopy/

Ajouter le plugin je suis charlie

Site de téléchargement officiel : http://lj01.batenergie.net/index.php/fr/charlie

ECC+ - EasyCalcCheck Plus

Plugin de sécurité.

Site de téléchargement officiel : https://joomla-extensions.kubik-rubik.de/ecc-easycalccheck-plus#description

Créer une fiche de contact utilisateur automatiquement

Dans la gestion des plugins (Extensions → Gestion des plugins, puis filtrer par User)

Vous trouvez le plugin Utilisateur - Fiches de contact automatiques.

Lorsque ce plugin est activé, il permet de créer automatiquement une fiche de contact pour chaque nouvel utilisateur qui s'inscrit sur le site.

Add Custom Javascript

Ajouter un lien vers un fichier Javascript dans le head.

Source : http://joomla.impression-estudio.gr/add-custom-javascript/download.php

Intégrer des fichiers dans Joomla!

Extension ARI Docs Viewer

doc / docx - Microsoft Word Document
xls / xlsx - Microsoft Excel Spreadsheet
ppt / pptx - Microsoft PowerPoint
pps - PowerPoint Slideshow
odt - OpenDocument Text
ods - OpenDocument Spreadsheet
odp - OpenDocument Presentation
sxw - OpenOffice.org Writer Document
sxc - OpenOffice.org Calc Spreadsheet
sxi - OpenOffice.org Impress Presentation
wpd - Corel Word Perfect Document
pdf - Adobe Portable Document Format
rtf - Rich Text Format
html - Hyper Text Markup Language
txt - Plain Text Document
csv - Comma Separated Values
tsv - Tab Separated Values
pages - Apple Pages
ai - Adobe Illustrator
psd - Adobe Photoshop
dxf - Autodesk AutoCad
svg - Scalable Vector Graphics
eps / ps - PostScript
ttf - TrueType
xps - XML Paper Specification

Source : https://extensions.joomla.org/extension/ari-docs-viewer/

This extension does NOT implement the Joomla! Update System.

Télécharger : http://www.ari-soft.com/index.php?dl=pkg_aridocsviewer.zip&f=e2317b85589c7909355aadd09c1a45c5&option=com_arismartcontent&task=plugin_handler&handler=a4197fefd329010736ae3073855be045

Le manuel : http://www.demo2.ari-soft.com/joomla-documents-viewer.html?_#usage

Je note que le bouton intégré sur les articles ne fonctionne pas, mais, si je rajoute les tag manuellement, les documents sont bien affichés.

Extension Jviewerjs

Afficher un fichier pdf dans un article.

https://lomart.fr/extensions/jviewerjs

Contenu sur mesure

Conditional Content

Conditional Content is a Joomla! system plugin (and editor button plugin).

You can restrict or grant access to content (text, images, etc.) on any page based on a wide selection of conditions.

https://www.regularlabs.com/extensions/conditionalcontent#tutorial

Jsmallfib

Mise en place rapide d'une gestion de fichiers, d'un extranet ou pour créer une zone de téléchargements spécifique à un utilisateur ou un groupe.

https://lomart.fr/trucs-et-astuces/74-jsmallfib

Modules

Uddeim

/* Hériter la taille du texte pour la messagerie */

  1. uddeim-module {

font-size:inherit !important; }

Who is online - Qui est en ligne

Qui est en ligne, le texte à remonter de 5 pixels. Ajouter margin-top:-5px; dans la class module_table. Appeler la commande dans le template ?

Je met la div suivante et la css directement dans le contenu personnalisé id 372.

<div style="margin-top:-5px;">{module [375]}</div>

Acymailing

Lors du chargement, le bloc de la newsletter s'affiche au dessus.

Posté sur forum Joomla! : https://forum.joomla.fr/showthread.php?220975-Module-acymailing-s-affiche-au-chargement-puis-disparait-caché-par-une-css
Choix de configuration du module : Effet d'affichage - Slide effect 

Class acymailing_fulldiv

Configurer à display none par defaut et visible pour :hover.

Todo.png

Menu

Menu ari-soft

Source : http://www.ari-soft.com/Joomla-Components/ARI-Ext-Menu/Detailed-product-flyer.html?_2017101510

Télécharger : http://www.ari-soft.com/index.php?dl=mod_ariextmenu.zip&f=e2317b85589c7909355aadd09c1a45c5&t=1508083357&option=com_arismartcontent&task=plugin_handler&handler=a4197fefd329010736ae3073855be045

Joli menu mais le responsive ne fonctionne pas avec mon template. Un problème de z-index sur les sous menus.

Menu CK

Télécharger : https://www.joomlack.fr/extensions-joomla/maximenu-ck

Roknavmenu

Source : http://www.rockettheme.com/joomla/extensions/roknavmenu/modal/downloads

Le responsive fonctionne.

mod_je_socialprofiles

mod_je_socialprofiles.php

  • Changer ou enleverle le texte qui parle des 50 images de réseau social.
$jeanch = array("social icons module joomla"," ICI ","social profile joomla module","jextensions.com", "social follow buttons joomla","social sharing module joomla","joomla social module","joomla social vector icons","best social module joomla", "social sharing");
  • Enlever l'affichage du lien Acymailing sous les icones.
$jemenu = $app->getMenu(); if ($jemenu->getActive() == $jemenu->getDefault()) { ?> Le code du lien a supprimer <?php } if (!preg_match("/google/",$_SERVER['HTTP_USER_AGENT'])) { ?>

Créer un Composant Module Plugin

Créer un Composant

Todo.png

Créer un Module

Créer un Module simple

Structure-mod-joomla-helloworld.png

mod_helloworld.php va effectuer la routine d'initialisation nécessaire, appeler les routines helper pour collecter les données et inclure le template à afficher pour le rendu du module.

mod_helloworld.xml contient les informations sur le module. Il définit les fichiers à installer par l'installateur Joomla! et spécifie les paramètres de configuration du module.

helper.php contient la classe helper qui est utilisée pour procéder à la récupération des informations à afficher dans le module, généralement à partir de la base de données ou d'une autre source.

tmpl/default.php est le template du module et va prendre les données recueillies par mod_helloworld.php et générer le code HTML à afficher sur la page.

Source du tutoriel : https://docs.joomla.org/J3.x:Creating_a_simple_module/Developing_a_Basic_Module

Création de mod_helloworld.php

Le fichier mod_helloworld.php va effectuer trois tâches :

* Inclure le fichier helper.php qui contient la classe à utiliser pour recueillir les données nécessaires.
* Invoquer la méthode de classe helper appropriée pour récupérer les données.
* Inclure le template pour afficher le rendu.

La classe helper est définie dans le fichier helper.php qui comporte une déclaration require_once car nos fonctions helper sont définies dans une classe, et nous souhaitons que cette classe ne soit définie qu'une seule fois. La classe helper sera définie par la suite et contiendra une méthode : getHello(). Il n'est pas vraiment nécessaire de le faire avec le message "Hello, World" qui pourrait simplement être inclus dans le template mais nous utilisons une classe helper afin de présenter proprement cette technique. Pour l'instant ce module n'utilise pas de paramètres mais nous allons tout de même les passer par la méthode helper pour qu'ils puissent être utilisés ultérieurement si nous décidions d'étendre les fonctionnalités de notre module.

require_once dirname(__FILE__) . '/helper.php';

La méthode de classe helper est appelée de la manière suivante :

$hello = modHelloWorldHelper::getHello($params);

Le fichier mod_helloworld.php complet se présente ainsi :

<?php
/**
* Hello World! Point d'entrée du module.
* 
* @package    Joomla.Tutorials
* @subpackage Modules
* @license    GNU/GPL, see LICENSE.php
* @link       http://docs.joomla.org/J3.x:Creating_a_simple_module/Developing_a_Basic_Module
* mod_helloworld is free software. This version may have been modified pursuant
* to the GNU General Public License, and as distributed it includes or
* is derivative of works licensed under the GNU General Public License or
* other free or open source software licenses.
*/

// Interdire l'accès direct !
// Vérifie que le fichier est inclus dans une application Joomla! pour éviter des injections de variables et d'autres problèmes de sécurité.
defined('_JEXEC') or die;

// Inclure la fonction qu'une seule fois.
require_once dirname(__FILE__) . '/helper.php';

$hello = modHelloWorldHelper::getHello($params);
require JModuleHelper::getLayoutPath('mod_helloworld');

Création du fichier helper.php

Le fichier helper.php contient la classe helper qui récupère les données à afficher dans le rendu du module. La classe helper contient la méthode getHello() qui va retourner le message 'Hello, World'.

Aucune règle ne contraint à nommer la classe helper mais cela facilite son identification et sa localisation. Ce format est requit pour utiliser le plugin com_ajax.

Des modules complexes peuvent inclure des requêtes de base de données ou d'autres fonctionnalités avec la méthode classe helper.

Le code pour le fichier helper.php :

<?php
/**
* Class Helper pour le module Hello World!
* 
* @package    Joomla.Tutorials
* @subpackage Modules
* @link http://docs.joomla.org/J3.x:Creating_a_simple_module/Developing_a_Basic_Module
* @license        GNU/GPL, see LICENSE.php
* mod_helloworld is free software. This version may have been modified pursuant
* to the GNU General Public License, and as distributed it includes or
* is derivative of works licensed under the GNU General Public License or
* other free or open source software licenses.
*/
class ModHelloWorldHelper
{
   /**
    * Retrieves the hello message
    *
    * @param   array  $params An object containing the module parameters
    *
    * @access public
    */    
   public static function getHello($params)
   {
       return 'Hello, World!';
   }
}

Création de tmpl/default.php

Le fichier default.php est le template qui affiche le rendu du module.

Le fichier de template a la même portée que le fichier mod_helloworld.php.

La variable $hello peut donc être définie dans le fichier mod_helloworld.php puis utilisée dans le fichier de template sans déclarations ou appels de fonctions supplémentaires.

Le code du fichier default.php :

<?php 
// No direct access
defined('_JEXEC') or die; ?>
<?php echo $hello; ?>

Création du mod_helloworld.xml

Le mod_helloworld.xml spécifie les fichiers que l'installateur doit copier et permet au gestionnaire des modules de déterminer les paramètres à utiliser pour configurer le module.

D'autres informations sur le module sont spécifiées dans ce fichier.

Le code du mod_helloworld.xml se présente ainsi :

<?xml version="1.0" encoding="utf-8"?>
<extension type="module" version="3.1.0" client="site" method="upgrade">
   <name>Hello, World!</name>
   <author>Vision du Web</author>
   <version>1.0.0</version>
   <description>Un simple module Hello World.</description>
   <files>
       <filename module="mod_helloworld">mod_helloworld.php</filename>
       <filename>index.html</filename>
       <filename>helper.php</filename>
       <folder>tmpl</folder>
   </files>
   <config>
   </config>
</extension>

Les fichiers Manifest expliquent les détails techniques des éléments utilisés dans le fichier XML : https://docs.joomla.org/Special:MyLanguage/manifest_files

Les fichiers index.html et tmpl/index.html sont inclus pour empêcher la consultation des répertoires. Ces fichiers peuvent être laissés vides ou contenir une simple ligne : <html><body bgcolor="#FFFFFF">Accès direct refusé.</body></html>

Notre module n'utilisant pas de champs de formulaire, la section config est vide : https://docs.joomla.org/Special:MyLanguage/Form_field

Pour inclure les fichiers d'un dossier, renseigner le chemin du dossier à inclure avec folder.

Dans l'exemple suivant il faut penser à ajouter le chemin vers le dossier sql.

Pas besoin, dans files, de faire appel au fichier mod_helloworld.xml.

Utiliser les JText pour paramétrer une langue

Ajouter les lignes suivantes pour charger un fichier de langue statique moins gourmand en ressources que la base de données.

Cet exemple n'explique pas comment utiliser les JText. Il n'est pas utilisé dans ce premier module.

Todo.png

<languages>
   <language tag="en-GB">language/en-GB/en-GB.mod_bitcoinfaucet.ini</language>
   <language tag="en-GB">language/en-GB/en-GB.mod_bitcoinfaucet.sys.ini</language>
   <language tag="fr-FR">languages/fr-FR/fr-FR.mod_bitcoinfaucet.ini</language>
   <language tag="fr-FR">languages/fr-FR/fr-FR.mod_bitcoinfaucet.sys.ini</language>
</languages>

L'exemple suivant va présenter la méthode avec une base de données.

Mise en application

L'ensemble des fichiers créés sont à placer dans un dossier mod_helloworld avec le fichier .xml directement accessible.

Installer le module depuis l'administration, Gérer, Installation, Transférer un paquet.

Créer un Module multilingue avec une base de données

Rappel sur JDatabase: https://docs.joomla.org/Accessing_the_database_using_JDatabase
Source du tutoriel : https://docs.joomla.org/J3.x:Creating_a_simple_module/Using_the_Database
Télécharger l'exemple de code du module dynamique : https://github.com/jimfrenette/joomla/tree/master/modules/mod_helloworld

Ajouter un choix de paramètre au module

Pour ajouter un choix de paramètre de langue depuis l'administration du module dans le backoffice de Joomla, ajouter les lignes suivantes dans mod_helloworld.xml :

Le paramètre 3 indique la langue par défaut utilisée par le module dans le Back-end.

<config>
 <fields name="params">
  <fieldset name="basic">
   <field name="lang" type="sql" default="3" label="Sélectionner la langue" query="SELECT id AS value, lang FROM #__helloworld" />
  </fieldset>
 </fields>
</config>

Création d'une table lors de l'installation

Pour créer une table lors de l'installation, ajouter les lignes suivantes dans mod_helloworld.xml :

<install>
    <sql>
        <file driver="mysql" charset="utf8">sql/mysql/install.mysql.utf8.sql</file>
        <file driver="sqlazure" charset="utf8">sql/sqlazure/install.sqlazure.utf8.sql</file>
    </sql>
</install>

<uninstall>
    <sql>
        <file driver="mysql" charset="utf8">sql/mysql/uninstall.mysql.utf8.sql</file>
        <file driver="sqlazure" charset="utf8">sql/sqlazure/uninstall.sqlazure.utf8.sql</file>
    </sql>
</uninstall>

<update> 
   <schemas>
       <schemapath type="mysql">sql/mysql/</schemapath> 
       <schemapath type="sqlazure">sql/sqlazure/</schemapath> 
   </schemas> 
</update>

Les 3 sections du code :

La balise install ajoute la table de base de données.
La balise uninstall supprime la table de base de données si le module est désinstallé. Notez que tous les modules n'utiliseront pas cette fonctionnalité, elle n'est pas obligatoire.
La balise update va mettre à jour les base de données si une base de données a besoin d'être modifiée lors de la mise à jour du module.
Spécifier le tag de la cible .sql dans la section file permet de s'assurer que les fichiers sql sont bien copiés à partir de votre pack d'installation .zip :
Nous avons à la fois des schémas pour MySQL et pour Microsoft SQL et vous pouvez choisir de personnaliser votre module pour l'un ou l'autre de ces systèmes.

Exemple pour configurer une base de données MySQL uniquement

Le fichier d'installation install.mysql.utf8.sql.

CREATE TABLE IF NOT EXISTS `#__helloworld` (
`id` int(10) NOT NULL AUTO_INCREMENT,
`hello` text NOT NULL,
`lang` varchar(25) NOT NULL,

 PRIMARY KEY (`id`)
) ENGINE=INNODB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;

INSERT INTO `#__helloworld` (`hello`, `lang`) VALUES ('Hello World', 'en-GB');
INSERT INTO `#__helloworld` (`hello`, `lang`) VALUES ('Hola Mundo', 'es-ES');
INSERT INTO `#__helloworld` (`hello`, `lang`) VALUES ('Bonjour tout le monde', 'fr-FR');

Le fichier de désinstallation uninstall.mysql.utf8.sql.

# Nous allons simplement supprimer la table.
DROP TABLE IF EXISTS `#__helloworld`

Il existe un fichier SQL pour chaque version de composant install..1.0.0 uninstall..1.0.0 update..1.0.0 (? oui ?)

Chaque nom de fichier doit correspondre à la chaîne de version du fichier de manifeste de cette version précisé ( il me semble ) dans le fichier mod_helloworld.xml avec <version>1.0.0</version>.

Joomla! utilise cette chaîne pour déterminer les fichiers SQL à exécuter et l'ordre dans lequel ils seront exécutés.

Ces fichiers sont également utilisés pour définir le numéro de version dans la table #__schemas.

Ce numéro de version doit être présent dans la version actuelle du composant pour que les nouveaux fichiers SQL soient exécutés lors de la mise à jour.

Si vous utilisez la version 1.0 et que vous mettez à jour vers la version 1.1, le fichier sql 1.1. ne sera pas exécuté s'il n'y avait pas de fichier sql 1.0 dans la version 1.0.

Une bonne pratique est d'avoir un fichier SQL de mise à jour pour chaque version, même s'il n'y a pas de modification SQL dans cette version.

Le fichier de mise à jour upgrade.mysql.utf8.sql.

# Placeholder file for database changes for version 1.0.0

Effectuer la requête dans le fichier helper.php

Suite à l'installation du module, nous devrions trouver une table helloworld définie dans notre schéma et contenant notre hello.

Afficher hello à l'utilisateur en modifiant la fonction getHello dans la dernière partie du fichier helper.php.

class ModHelloWorldHelper
{
   /**
    * Retrieves the hello message
    *
    * @param   array  $params An object containing the module parameters
    *
    * @access public
    */    
   public static function getHello($params)
   {

 	// Obtain a database connection
	$db = JFactory::getDbo();
	// Retrieve the shout - note we are now retrieving the id not the lang field.
	$query = $db->getQuery(true)
           ->select($db->quoteName('hello'))
           ->from($db->quoteName('#__helloworld'))
           ->where('id = '. $db->Quote($params));
 	// Prepare the query
	$db->setQuery($query);
	// Load the row.
	$result = $db->loadResult();
	// Return the Hello World
	return $result;
   }
}

Appel depuis tmpl/default.php

Le fichier default.php

<?php 
// Interdire l'accès direct.
defined('_JEXEC') or die; ?>
<?php echo $hello; ?>

L'utilisation de modules avec des connexions aux bases de données dans Joomla! est assez simple.

Grâce à l'utilisation des techniques décrites dans ce tutoriel, de nombreux modules peuvent être développés avec des mises à jour faciles à gérer.

Le fichier de point d'entrée mod_helloworld.php

<?php
/**
* Hello World! Module Entry Point
* 
* @package    Joomla.Tutorials
* @subpackage Modules
* @license    GNU/GPL, see LICENSE.php
* @link       http://docs.joomla.org/J3.x:Creating_a_simple_module/Developing_a_Basic_Module
* mod_helloworld is free software. This version may have been modified pursuant
* to the GNU General Public License, and as distributed it includes or
* is derivative of works licensed under the GNU General Public License or
* other free or open source software licenses.
*/

// No direct access
defined('_JEXEC') or die;
// Include the syndicate functions only once
require_once dirname(__FILE__) . '/helper.php';

/**
 * This retrieves the lang parameter we stored earlier. Note the second part
 * which states to use the default value of 1 if the parameter cannot be
 * retrieved for some reason
**/
$language = $params->get('lang', '1');
$hello    = modHelloWorldHelper::getHello( $language );

//$hello = modHelloWorldHelper::getHello($params);

require JModuleHelper::getLayoutPath('mod_helloworld');

Mise en application

L'ensemble des fichiers créés sont à placer dans un dossier mod_helloworld avec le fichier .xml directement accessible.

Installer le module depuis l'administration, Gérer, Installation, Transférer un paquet.

Un exemple avec ce module personnalisé, mod_bitcoinfaucet : https://github.com/ZerooCool/mod_bitcoinfaucet

Un exemple avec ce module personnalisé, qui contient plus de code, et, une base de données plus complexe : https://github.com/ZerooCool/mod_gestion_des_taches

Utiliser la base de données avec un module Joomla

Connexion à une base de données pour récupérer les valeurs d'une table

Connexion à la base de données :

$db =& JFactory::getDBO();

Utiliser la connexion ouverte dans votre module

Créer la requête SQL
$query = "SELECT * FROM #__tasks ORDER BY date ASC, time ASC";

Vérifier comment utiliser le préfixe de la table #__ , avec, ou, sans.

Exécuter la requête Joomla

Utiliser des données stockées dans la base de données Joomla! depuis un module.

$db->setQuery($query);
Détection d'éventuels problèmes
if ($db->getErrorNum()) {
echo $db->getErrorMsg();
mail('[email protected]', 'La requête à échouée',  $db->getErrorMsg());
exit;
}
Récupérer les données de la requête
$rows = $db->loadAssocList();
Utiliser les données dans une boucle
foreach( $rows as $row ) {
echo $row[NOM DU CHAMP DANS LA BASE];
}
Ok.png Source : http://www.actiaweb.com/activ/utiliser-la-connexion-mysql-de-joomla.html
https://docs.joomla.org/Selecting_data_using_JDatabase/fr
https://docs.joomla.org/Special:MyLanguage/Selecting_data_using_JDatabase
https://docs.joomla.org/Special:MyLanguage/Inserting,_Updating_and_Removing_data_using_JDatabase
https://docs.joomla.org/Special:MyLanguage/Using_transactions_in_Joomla
https://docs.joomla.org/Using_the_union_methods_in_database_queries

Ajouter des champs de formulaire

Source : https://docs.joomla.org/J3.x:Creating_a_simple_module/Adding_Form_Fields

Créer un Plugin

Créer un plugin de recherche pour Joomla! 3.x

Source : docs.joomla.org/J3.x:Creating_a_search_plugin

Tester et publier un Composant Module Plugin

Le site https://extensions.joomla.org permet de publier vos extensions pour les proposer à la communauté.

Utiliser JedChecker 2.0 pour valider la structure de votre extension avant de la publier : https://extensions.joomla.org/extension/jedchecker/

Supprimer un Composant Module Plugin

Dans un usage normal de Joomla! on passe par le menu de l'administration pour supprimer une extension.

Extensions==>Gestion des Extensions==>Gestion
Sélectionner les extensions à désinstaller.

Supprimer un Composant Module Plugin depuis la base de données

En cas de difficultés, d'une extension boguée par exemple, activer, désactiver ou supprimer directement l'extension depuis la base de données.

Afficher la table #_extensions depuis PHPMyAdmin.
Chercher l'extension concernée.
Dans le champ "enable", entrez la valeur "1" pour activer l'extension.
Dans le champ "enable", entrez la valeur "0" pour désactiver l'extension.
Enregistrer.

Ne pas oublier de supprimer les fichiers de l'extension concernée, en cas de suppression depuis la base de données.

Bibliographie

Ajouter votre composant, plugin, module, dans les extensions officielles pour Joomla! : https://extensions.joomla.org

Extensions Ajax pour Joomla! : http://freeajaxscripts.net/directory/ajax_joomla_scripts.html

NAVIGATION

CHERCHER UNE AUTRE PAGE SUR LE WIKI

D'autres pages du wiki peuvent correspondre à vos attentes : La liste de toutes les pages du wiki.

COMPRENDRE LA BLOCKCHAIN PAR LA PRATIQUE

Obtenir gratuitement de la cryptomonnaie sur internet : https://www.visionduweb.eu/forum/bitcoin/1597-gagner-des-bitcoins-miner-des-bitcoins

LIRE ET PARTAGER

Le wiki collaboratif du HackerSpace Vision du Web.
Les pages présentées sur le wiki évoluent tous les jours.
Certaines recherches sont peu abouties et incluent des erreurs.
La recherche interne du wiki permet de trouver le contenu qui vous intéresse.
Les informations présentes sur cette page sont issues d'une recherche personnelle.
Vous pouvez partager les liens du wiki avec l'ensemble de la communauté des internautes.
Vous pouvez améliorer le contenu du wiki et faire vos propositions depuis l'onglet discussion.

SOUTENIR VISIONDUWEB

Soutenir Vision du web avec quelques Bitcoins : 33ZsupGQr1rUmwj62HadcZ55hsGJajD9wN
Soutenir Vision du web avec quelques Bitcoins Cash : 1ATSDJeoQr71x7xNDRytxFnxQ8ckDUeDbT
Soutenir Vision du web avec quelques Blackcoins : B6MyLMPtzg8D15mHt8jYi7nVjYWEyVXJzA
Soutenir Vision du web avec quelques Dogecoins : A64jhqCgsUyrUCPte6fV3BcG2Y7daH13Ym
Soutenir Vision du web avec quelques Ethereum : 0x0E4D6B7A1F88A56A1A66bf408c72FAE3d104D632
Soutenir Vision du web avec quelques Litecoins : 3LKigW6TCS5MvXrZFGh8VMEtZf6MtE86iz
Soutenir Vision du web avec quelques Potcoins : PUYvjeJ3n2frypgD5yd95yNnwoztnZL5P3