Création d'un module simple - Ajouter un fichier script d'installation et de désinstallation
From Joomla! Documentation
< J3.x:Creating a simple module
Ceci est une série de plusieurs articles expliquant la façon de développer un module pour Joomla! Version . Vous pouvez naviguer dans les articles de cette série à l'aide du menu déroulant.
Commencez par l'Introduction puis naviguez dans les articles de cette série en utilisant soit les boutons de navigation situés en bas des articles, soit le menu droit (Les articles de cette série).
Introduction
L'installation, la mise à jour et la désinstallation d'un module peuvent nécessiter des opérations qui ne peuvent être réalisées par les opérations de base décrites dans le fichier XML principal. Joomla! propose une nouvelle approche pour résoudre ce problème. Elle consiste en l'utilisation d'un fichier de script php contenant une classe, en utilisant cinq méthodes :
- preflight, est exécuté avant install et update
- install
- update
- uninstall
- postflight, exécuté après install et update
Création du fichier script d'extension
L'écriture d'un script d'extension consiste à déclarer une classe dont le nom est mod_ModuleNameInstallerScript avec ces 5 méthodes.
script.php
<?php
// No direct access to this file
defined('_JEXEC') or die;
/**
* Script file of HelloWorld module
*/
class mod_helloWorldInstallerScript
{
/**
* Method to install the extension
* $parent is the class calling this method
*
* @return void
*/
function install($parent)
{
echo '<p>The module has been installed.</p>';
}
/**
* Method to uninstall the extension
* $parent is the class calling this method
*
* @return void
*/
function uninstall($parent)
{
echo '<p>The module has been uninstalled.</p>';
}
/**
* Method to update the extension
* $parent is the class calling this method
*
* @return void
*/
function update($parent)
{
echo '<p>The module has been updated to version' . $parent->get('manifest')->version . '.</p>';
}
/**
* Method to run before an install/update/uninstall method
* $parent is the class calling this method
* $type is the type of change (install, update or discover_install)
*
* @return void
*/
function preflight($type, $parent)
{
echo '<p>Anything here happens before the installation/update/uninstallation of the module.</p>';
}
/**
* Method to run after an install/update/uninstall method
* $parent is the class calling this method
* $type is the type of change (install, update or discover_install)
*
* @return void
*/
function postflight($type, $parent)
{
echo '<p>Anything here happens after the installation/update/uninstallation of the module.</p>';
}
}
Dans la méthode de mise à jour, nous affichons la nouvelle version grâce à l'utilisation de $parent->get('manifest')->version
. Vous pouvez également rediriger vers une page de choix grâce à $parent->getParent()->setRedirectURL('index.php?option=com_modules');
.
Maintenant, vous devez ajouter un appel à votre fichier script.php dans le fichier XML du module :
<scriptfile>script.php</scriptfile>