Přeskočit na obsah

xoops_version.php - Manifest modulu

Soubor xoops_version.php je srdcem každého modulu XOOPS. Definuje metadata modulu, databázové tabulky, šablony, bloky, možnosti konfigurace a instalační háčky.

<?php
/**
* Module manifest file
*/
$modversion = [
// Module identity
'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',
// System settings
'system_menu' => 1,
'hasAdmin' => 1,
'adminindex' => 'admin/index.php',
'adminmenu' => 'admin/menu.php',
'hasMain' => 1,
'hasSearch' => 1,
'hasComments' => 0,
'hasNotification'=> 0,
];
KlíčTypPopis
nameřetězecZobrazovaný název (použijte jazykovou konstantu)
versionřetězecSémantická verze (MAJOR.MINOR.PATCH)
descriptionřetězecPopis modulu
authorřetězecJméno primárního autora
creditsřetězecDalší přispěvatelé
licenseřetězecLicenční název
dirnameřetězecNázev adresáře modulu
$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,
];
$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',
],
];
typ formulářetyp hodnotyPopis
textboxtext/intJednořádkový vstup
textareatextVíceřádkový vstup
yesnointRádio Yes/No
selecttextRozbalovací výběr
select_multiarrayVícenásobný výběr
groupintVolič skupiny
group_multiarrayVíceskupinový volič
userintVolič uživatele
colortextVýběr barvy
hiddentextSkryté pole
// Main menu
$modversion['sub'][] = [
'name' => _MI_MYMODULE_SMENU_INDEX,
'url' => 'index.php',
];
$modversion['sub'][] = [
'name' => _MI_MYMODULE_SMENU_SUBMIT,
'url' => 'submit.php',
];
$modversion['onInstall'] = 'include/oninstall.php';
$modversion['onUpdate'] = 'include/onupdate.php';
$modversion['onUninstall'] = 'include/onuninstall.php';

Integrace vyhledávání

Sekce “Integrace vyhledávání”
$modversion['hasSearch'] = 1;
$modversion['search'] = [
'file' => 'include/search.php',
'func' => 'mymodule_search',
];
$modversion['hasComments'] = 1;
$modversion['comments'] = [
'itemName' => 'item_id',
'pageName' => 'item.php',
];
$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,
],
],
];

Související dokumentace

Sekce “Související dokumentace”
  • Module-Development - Kompletní průvodce modulem
  • Module-Structure - Struktura adresářů
  • Block-Development - Vytváření bloků
  • Operace databáze - Nastavení databáze