xoops_version.php - Manifeste du module
Le fichier xoops_version.php est le cœur de chaque module XOOPS. Il définit les métadonnées du module, les tables de base de données, les modèles, les blocs, les options de configuration et les crochets d’installation.
Structure de base
Section intitulée « Structure de base »<?php/** * Fichier manifeste du module */
$modversion = [ // Identité du module 'name' => _MI_MYMODULE_NAME, 'version' => '1.0.0', 'description' => _MI_MYMODULE_DESC, 'author' => 'Your Name', 'author_mail' => 'your@email.com', 'author_website' => 'https://yoursite.com', 'credits' => 'Contributors', 'license' => 'GPL 2.0 or later', 'license_url' => 'https://www.gnu.org/licenses/gpl-2.0.html', 'dirname' => basename(__DIR__),
// Images 'image' => 'assets/images/logo.png', 'modicons16' => 'assets/images/icons/16', 'modicons32' => 'assets/images/icons/32',
// Paramètres du système 'system_menu' => 1, 'hasAdmin' => 1, 'adminindex' => 'admin/index.php', 'adminmenu' => 'admin/menu.php', 'hasMain' => 1, 'hasSearch' => 1, 'hasComments' => 0, 'hasNotification'=> 0,];Référence complète
Section intitulée « Référence complète »Identité du module
Section intitulée « Identité du module »| Clé | Type | Description |
|---|---|---|
name | string | Nom d’affichage (utiliser la constante de langage) |
version | string | Version sémantique (MAJOR.MINOR.PATCH) |
description | string | Description du module |
author | string | Nom de l’auteur principal |
credits | string | Contributeurs supplémentaires |
license | string | Nom de la licence |
dirname | string | Nom du répertoire du module |
Tables de base de données
Section intitulée « Tables de base de données »$modversion['sqlfile']['mysql'] = 'sql/mysql.sql';
$modversion['tables'] = [ 'mymodule_items', 'mymodule_categories', 'mymodule_comments',];$modversion['templates'] = [ ['file' => 'mymodule_index.tpl', 'description' => 'Index page template'], ['file' => 'mymodule_item.tpl', 'description' => 'Single item view'], ['file' => 'mymodule_category.tpl', 'description' => 'Category listing'],];$modversion['blocks'][] = [ 'file' => 'blocks/recent.php', 'name' => _MI_MYMODULE_BLOCK_RECENT, 'description' => _MI_MYMODULE_BLOCK_RECENT_DESC, 'show_func' => 'mymodule_recent_show', 'edit_func' => 'mymodule_recent_edit', 'template' => 'mymodule_block_recent.tpl', 'options' => '10|0', // default options 'can_clone' => true,];Options de configuration
Section intitulée « Options de configuration »$modversion['config'][] = [ 'name' => 'items_per_page', 'title' => '_MI_MYMODULE_ITEMS_PER_PAGE', 'description' => '_MI_MYMODULE_ITEMS_PER_PAGE_DESC', 'formtype' => 'textbox', 'valuetype' => 'int', 'default' => 10,];
$modversion['config'][] = [ 'name' => 'enable_comments', 'title' => '_MI_MYMODULE_ENABLE_COMMENTS', 'description' => '', 'formtype' => 'yesno', 'valuetype' => 'int', 'default' => 1,];
$modversion['config'][] = [ 'name' => 'display_mode', 'title' => '_MI_MYMODULE_DISPLAY_MODE', 'description' => '', 'formtype' => 'select', 'valuetype' => 'text', 'default' => 'list', 'options' => [ _MI_MYMODULE_MODE_LIST => 'list', _MI_MYMODULE_MODE_GRID => 'grid', ],];Types de formulaire
Section intitulée « Types de formulaire »| formtype | valuetype | Description |
|---|---|---|
textbox | text/int | Entrée sur une seule ligne |
textarea | text | Entrée multi-ligne |
yesno | int | Oui/Non radio |
select | text | Sélection déroulante |
select_multi | array | Sélection multiple |
group | int | Sélecteur de groupe |
group_multi | array | Sélecteur multi-groupe |
user | int | Sélecteur d’utilisateur |
color | text | Sélecteur de couleur |
hidden | text | Champ caché |
Éléments de menu
Section intitulée « Éléments de menu »// Menu principal$modversion['sub'][] = [ 'name' => _MI_MYMODULE_SMENU_INDEX, 'url' => 'index.php',];
$modversion['sub'][] = [ 'name' => _MI_MYMODULE_SMENU_SUBMIT, 'url' => 'submit.php',];Crochets d’installation
Section intitulée « Crochets d’installation »$modversion['onInstall'] = 'include/oninstall.php';$modversion['onUpdate'] = 'include/onupdate.php';$modversion['onUninstall'] = 'include/onuninstall.php';Intégration de recherche
Section intitulée « Intégration de recherche »$modversion['hasSearch'] = 1;$modversion['search'] = [ 'file' => 'include/search.php', 'func' => 'mymodule_search',];Intégration des commentaires
Section intitulée « Intégration des commentaires »$modversion['hasComments'] = 1;$modversion['comments'] = [ 'itemName' => 'item_id', 'pageName' => 'item.php',];Notifications
Section intitulée « Notifications »$modversion['hasNotification'] = 1;$modversion['notification'] = [ 'lookup_file' => 'include/notification.php', 'lookup_func' => 'mymodule_notify_iteminfo', 'category' => [ [ 'name' => 'global', 'title' => _MI_MYMODULE_NOTIFY_GLOBAL, 'description' => '', 'subscribe_from' => 'index.php', ], [ 'name' => 'item', 'title' => _MI_MYMODULE_NOTIFY_ITEM, 'description' => '', 'subscribe_from' => 'item.php', 'item_name' => 'item_id', ], ], 'event' => [ [ 'name' => 'new_item', 'category' => 'global', 'title' => _MI_MYMODULE_NOTIFY_NEW_ITEM, 'caption' => _MI_MYMODULE_NOTIFY_NEW_ITEM_CAP, 'mail_template' => 'notify_newitem', 'mail_subject' => _MI_MYMODULE_NOTIFY_NEW_ITEM_SUBJ, ], ],];Documentation connexe
Section intitulée « Documentation connexe »- Développement-de-modules - Guide complet du module
- Structure-du-module - Structure du répertoire
- Développement-de-blocs - Création de blocs
- Opérations-de-base-de-données - Paramétrage de la base de données