Intégrer une fonction à l'installation du module
Ce tutoriel vous expliquera les différentes étapes nécessaires pour que XOOPS puisse utiliser une fonction lors de la première installation de votre module.
Pour accéder à la totalité des pages (), vous devez être membre du site.
L'inscription est donc obligatoire mais gratuite !
Création des dossiers
Comme indiqué dans l'introduction, il est possible de créer des dossiers dans le dossier uploads de XOOPS.
Ces dossiers sont utiles dans le cas ou votre module permet de stocker des fichiers, des images, etc.
J'utilise cette fonction pour tous mes modules car ils ont tous au minimum un système de catégories avec un logo, il est donc nécessaire de stocker ce logo.
J'utilie pour cela le code suivant pour le module xmtutorial :
function xoops_module_install_xmtutorial()
{
$namemodule = 'xmtutorial';
//Creation ".$namemodule."/
$dir = XOOPS_ROOT_PATH . '/uploads/' . $namemodule . '';
if (!is_dir($dir)) {
mkdir($dir, 0777);
}
chmod($dir, 0777);
//Creation ".$namemodule."/images/
$dir = XOOPS_ROOT_PATH . '/uploads/' . $namemodule . '/images';
if (!is_dir($dir)) {
mkdir($dir, 0777);
}
chmod($dir, 0777);
//Creation ".$namemodule."/images/category
$dir = XOOPS_ROOT_PATH . '/uploads/' . $namemodule . '/images/category';
if (!is_dir($dir)) {
mkdir($dir, 0777);
}
chmod($dir, 0777);
//Creation ".$namemodule."/images/tutorial
$dir = XOOPS_ROOT_PATH . '/uploads/' . $namemodule . '/images/tutorial';
if (!is_dir($dir)) {
mkdir($dir, 0777);
}
chmod($dir, 0777);
//Copy index.php
$indexFile = XOOPS_ROOT_PATH . '/modules/' . $namemodule . '/include/index.php';
copy($indexFile, XOOPS_ROOT_PATH . '/uploads/' . $namemodule . '/index.php');
copy($indexFile, XOOPS_ROOT_PATH . '/uploads/' . $namemodule . '/images/index.php');
copy($indexFile, XOOPS_ROOT_PATH . '/uploads/' . $namemodule . '/images/category/index.php');
copy($indexFile, XOOPS_ROOT_PATH . '/uploads/' . $namemodule . '/images/tutorial/index.php');
//Copy no-image.png
$blankFile = XOOPS_ROOT_PATH . '/modules/' . $namemodule . '/assets/images/no-image.png';
copy($blankFile, XOOPS_ROOT_PATH . '/uploads/' . $namemodule . '/images/no-image.png');
return true;
}
Cette fonction génère plusieurs actions :
- Création de dossiers
- Copie du fichier index.php (avant on utilisait index.html, depuis XOOPS 2.5.11 on utilise un fichier php pour sécuriser l'accès non désiré aux répertoires)
- Copie une image (par exemple une image par défaut)