Intégrer une fonction à l'installation du module

Auteur
Gregory
Publication
18-12-2020
18-12-2020
Mise à jour
19-12-2020
Note
0.0 (0 vote)
Niveau
Avancé
Intégrer une fonction à l'installation du module

Intégrer une fonction à l'installation du module Apprenez à intégrer une fonction à l'installation d'un Module XOOPS.

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.



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($dir0777);
    }
    
chmod($dir0777);

    
//Creation ".$namemodule."/images/
    
$dir XOOPS_ROOT_PATH '/uploads/' $namemodule '/images';
    if (!
is_dir($dir)) {
        
mkdir($dir0777);
    }
    
chmod($dir0777);

    
//Creation ".$namemodule."/images/category
    
$dir XOOPS_ROOT_PATH '/uploads/' $namemodule '/images/category';
    if (!
is_dir($dir)) {
        
mkdir($dir0777);
    }
    
chmod($dir0777);

    
//Creation ".$namemodule."/images/tutorial
    
$dir XOOPS_ROOT_PATH '/uploads/' $namemodule '/images/tutorial';
    if (!
is_dir($dir)) {
        
mkdir($dir0777);
    }
    
chmod($dir0777);

    
//Copy index.php
    
$indexFile XOOPS_ROOT_PATH '/modules/' $namemodule '/include/index.php';
    
copy($indexFileXOOPS_ROOT_PATH '/uploads/' $namemodule '/index.php');
    
copy($indexFileXOOPS_ROOT_PATH '/uploads/' $namemodule '/images/index.php');
    
copy($indexFileXOOPS_ROOT_PATH '/uploads/' $namemodule '/images/category/index.php');
    
copy($indexFileXOOPS_ROOT_PATH '/uploads/' $namemodule '/images/tutorial/index.php');
    
    
//Copy no-image.png
    
$blankFile XOOPS_ROOT_PATH '/modules/' $namemodule '/assets/images/no-image.png';
    
copy($blankFileXOOPS_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)