Module FAQ
Module Veelgestelde vragen
Section titled “Module Veelgestelde vragen”Veelgestelde vragen en antwoorden over XOOPS-modules, installatie en beheer.
Installatie en activering
Section titled “Installatie en activering”V: Hoe installeer ik een module in XOOPS?
Section titled “V: Hoe installeer ik een module in XOOPS?”EEN:
- Download het zipbestand van de module
- Ga naar XOOPS Beheerder > Modules > Modules beheren
- Klik op “Bladeren” en selecteer het zipbestand
- Klik op ‘Uploaden’
- De module verschijnt in de lijst (meestal gedeactiveerd)
- Klik op het activeringspictogram om dit in te schakelen
U kunt de zip ook rechtstreeks uitpakken in /xoops_root/modules/ en naar het beheerderspaneel gaan.
V: Module-upload mislukt met ‘Toestemming geweigerd’
Section titled “V: Module-upload mislukt met ‘Toestemming geweigerd’”A: Dit is een probleem met bestandsrechten:
# Fix module directory permissionschmod 755 /path/to/xoops/modules
# Fix upload directory (if uploading)chmod 777 /path/to/xoops/uploads
# Fix ownership if neededchown -R www-data:www-data /path/to/xoopsZie Module-installatiefouten voor meer details.
V: Waarom kan ik de module na installatie niet zien in het beheerderspaneel?
Section titled “V: Waarom kan ik de module na installatie niet zien in het beheerderspaneel?”A: Controleer het volgende:
- Module niet geactiveerd - Klik op het oogpictogram in de Modulelijst
- Ontbrekende beheerderspagina - Module moet
hasAdmin = 1bevatten in xoopsversion.php - Taalbestanden ontbreken -
language/english/admin.phpnodig - Cache niet gewist - Wis de cache en vernieuw de browser
# Clear XOOPS cacherm -rf /path/to/xoops/xoops_data/caches/*V: Hoe verwijder ik een module?
Section titled “V: Hoe verwijder ik een module?”EEN:
- Ga naar XOOPS Beheerder > Modules > Modules beheren
- Deactiveer de module (klik op het oogpictogram)
- Klik op het prullenbak-/verwijderpictogram
- Verwijder de modulemap handmatig als u volledige verwijdering wilt:
rm -rf /path/to/xoops/modules/modulenameModulebeheer
Section titled “Modulebeheer”V: Wat is het verschil tussen uitschakelen en verwijderen?
Section titled “V: Wat is het verschil tussen uitschakelen en verwijderen?”EEN:
- Uitschakelen: deactiveer de module (klik op het oogpictogram). Databasetabellen blijven bestaan.
- Verwijderen: verwijder de module. Verwijdert databasetabellen en verwijdert uit de lijst.
Om echt te verwijderen, verwijdert u ook de map:
rm -rf modules/modulenameV: Hoe controleer ik of een module correct is geïnstalleerd?
Section titled “V: Hoe controleer ik of een module correct is geïnstalleerd?”A: Gebruik het foutopsporingsscript:
<?php// Create admin/debug_modules.phprequire_once XOOPS_ROOT_PATH . '/mainfile.php';
if (!is_object($xoopsUser) || !$xoopsUser->isAdmin()) { exit('Admin only');}
echo "<h1>Module Debug</h1>";
// List all modules$module_handler = xoops_getHandler('module');$modules = $module_handler->getObjects();
foreach ($modules as $module) { echo "<h2>" . $module->getVar('name') . "</h2>"; echo "Status: " . ($module->getVar('isactive') ? "Active" : "Inactive") . "<br>"; echo "Directory: " . $module->getVar('dirname') . "<br>"; echo "Mid: " . $module->getVar('mid') . "<br>"; echo "Version: " . $module->getVar('version') . "<br>";}?>V: Kan ik meerdere versies van dezelfde module gebruiken?
Section titled “V: Kan ik meerdere versies van dezelfde module gebruiken?”A: Nee, XOOPS ondersteunt dit niet standaard. U kunt echter:
- Maak een kopie met een andere mapnaam:
mymoduleenmymodule2 - Update de mapnaam in xoopsversion.php van beide modules
- Zorg voor unieke databasetabelnamen
Dit wordt niet aanbevolen omdat ze dezelfde code delen.
Moduleconfiguratie
Section titled “Moduleconfiguratie”V: Waar configureer ik de module-instellingen?
Section titled “V: Waar configureer ik de module-instellingen?”EEN:
- Ga naar XOOPS Beheerder > Modules
- Klik op het instellingen/tandwielpictogram naast de module
- Configureer voorkeuren
Instellingen worden opgeslagen in de tabel xoops_config.
Toegang in code:
<?php$module_handler = xoops_getHandler('module');$module = $module_handler->getByDirname('modulename');$config_handler = xoops_getHandler('config');$settings = $config_handler->getConfigsByCat(0, $module->mid());
foreach ($settings as $setting) { echo $setting->getVar('conf_name') . ": " . $setting->getVar('conf_value');}?>V: Hoe definieer ik moduleconfiguratieopties?
Section titled “V: Hoe definieer ik moduleconfiguratieopties?”A: In xoopsversion.php:
<?php$modversion['config'] = [ [ 'name' => 'items_per_page', 'title' => '_AM_MYMODULE_ITEMS_PER_PAGE', 'description' => '_AM_MYMODULE_ITEMS_PER_PAGE_DESC', 'formtype' => 'text', 'valuetype' => 'int', 'default' => 10 ], [ 'name' => 'enable_feature', 'title' => '_AM_MYMODULE_ENABLE_FEATURE', 'description' => '_AM_MYMODULE_ENABLE_FEATURE_DESC', 'formtype' => 'yesno', 'valuetype' => 'bool', 'default' => 1 ]];?>Modulefuncties
Section titled “Modulefuncties”V: Hoe voeg ik een beheerderspagina toe aan mijn module?
Section titled “V: Hoe voeg ik een beheerderspagina toe aan mijn module?”A: Maak de structuur:
modules/mymodule/├── admin/│ ├── index.php│ ├── menu.php│ └── menu_en.phpIn xoopsversion.php:
<?php$modversion['hasAdmin'] = 1;$modversion['adminindex'] = 'admin/index.php';?>admin/index.php aanmaken:
<?phprequire_once XOOPS_ROOT_PATH . '/kernel/admin.php';
xoops_cp_header();echo "<h1>Module Administration</h1>";xoops_cp_footer();?>V: Hoe voeg ik zoekfunctionaliteit toe aan mijn module?
Section titled “V: Hoe voeg ik zoekfunctionaliteit toe aan mijn module?”EEN:
- Stel in xoopsversion.php in:
<?php$modversion['hasSearch'] = 1;$modversion['search'] = 'search.php';?>search.phpaanmaken:
<?phpfunction mymodule_search($queryArray, $andor, $limit, $offset) { // Search implementation $results = []; return $results;}?>V: Hoe voeg ik meldingen toe aan mijn module?
Section titled “V: Hoe voeg ik meldingen toe aan mijn module?”EEN:
- Stel in xoopsversion.php in:
<?php$modversion['hasNotification'] = 1;$modversion['notification_categories'] = [ ['name' => 'item_published', 'title' => '_NOT_ITEM_PUBLISHED']];$modversion['notifications'] = [ ['name' => 'item_published', 'title' => '_NOT_ITEM_PUBLISHED']];?>- Melding activeren in code:
<?php$notification_handler = xoops_getHandler('notification');$notification_handler->triggerEvent( 'item_published', $item_id, 'Item published', 'description');?>Modulerechten
Section titled “Modulerechten”V: Hoe stel ik modulerechten in?
Section titled “V: Hoe stel ik modulerechten in?”EEN:
- Ga naar XOOPS Beheerder > Modules > Modulemachtigingen
- Selecteer de module
- Kies gebruiker/groep en machtigingsniveau
- Opslaan
In code:
<?php// Check if user can access moduleif (!xoops_isUser()) { exit('Login required');}
// Check specific permission$mperm_handler = xoops_getHandler('member_permission');$module_handler = xoops_getHandler('module');$module = $module_handler->getByDirname('mymodule');
if (!$mperm_handler->userCanAccess($module->mid())) { exit('Access denied');}?>Moduledatabase
Section titled “Moduledatabase”V: Waar worden moduledatabasetabellen opgeslagen?
Section titled “V: Waar worden moduledatabasetabellen opgeslagen?”A: Alles in de hoofddatabase XOOPS, voorafgegaan door uw tabelvoorvoegsel (meestal xoops_):
# List all module tablesmysql> SHOW TABLES LIKE 'xoops_mymodule_%';
# Or in PHP<?php$result = $GLOBALS['xoopsDB']->query( "SHOW TABLES LIKE '" . XOOPS_DB_PREFIX . "mymodule_%'");while ($row = $result->fetch_assoc()) { print_r($row);}?>V: Hoe update ik moduledatabasetabellen?
Section titled “V: Hoe update ik moduledatabasetabellen?”A: Maak een updatescript in uw module:
<?phprequire_once '../../mainfile.php';
if (!is_object($xoopsUser) || !$xoopsUser->isAdmin()) { exit('Admin only');}
// Add new column$sql = "ALTER TABLE `" . XOOPS_DB_PREFIX . "mymodule_items` ADD COLUMN `new_field` VARCHAR(255)";
if ($GLOBALS['xoopsDB']->query($sql)) { echo "✓ Updated successfully";} else { echo "✗ Error: " . $GLOBALS['xoopsDB']->error;}?>Moduleafhankelijkheden
Section titled “Moduleafhankelijkheden”V: Hoe controleer ik of de vereiste modules zijn geïnstalleerd?
Section titled “V: Hoe controleer ik of de vereiste modules zijn geïnstalleerd?”EEN:
<?php$module_handler = xoops_getHandler('module');
// Check if a module exists$module = $module_handler->getByDirname('required_module');
if (!$module || !$module->getVar('isactive')) { die('Error: required_module is not installed or active');}?>V: Kunnen modules afhankelijk zijn van andere modules?
Section titled “V: Kunnen modules afhankelijk zijn van andere modules?”A: Ja, declareer in xoopsversion.php:
<?php$modversion['dependencies'] = [ [ 'dirname' => 'required_module', 'version_min' => '1.0', 'version_max' => 0, // 0 = unlimited 'order' => 1 ]];?>Problemen oplossen
Section titled “Problemen oplossen”V: Module verschijnt in de lijst, maar kan niet worden geactiveerdA: Controleer:
Section titled “V: Module verschijnt in de lijst, maar kan niet worden geactiveerdA: Controleer:”- xoopsversion.php-syntaxis - Gebruik PHP-linter:
php -l modules/mymodule/xoopsversion.php- Database SQL-bestand:
# Check SQL syntaxgrep -n "CREATE TABLE" modules/mymodule/sql/mysql.sql- Taalbestanden:
ls -la modules/mymodule/language/english/Zie Module-installatiefouten voor gedetailleerde diagnostiek.
V: Module geactiveerd maar wordt niet weergegeven op de hoofdsite
Section titled “V: Module geactiveerd maar wordt niet weergegeven op de hoofdsite”EEN:
- Stel
hasMain = 1in xoopsversion.php in:
<?php$modversion['hasMain'] = 1;$modversion['main_file'] = 'index.php';?>- Maak
modules/mymodule/index.phpaan:
<?phprequire_once '../../mainfile.php';include_once XOOPS_ROOT_PATH . '/header.php';
echo "Welcome to my module";
include_once XOOPS_ROOT_PATH . '/footer.php';?>V: Module veroorzaakt “wit scherm van de dood”
Section titled “V: Module veroorzaakt “wit scherm van de dood””A: Schakel foutopsporing in om de fout te vinden:
<?php// In mainfile.phperror_reporting(E_ALL);ini_set('display_errors', '1');define('XOOPS_DEBUG_LEVEL', 2);?>Controleer het foutenlogboek:
tail -100 /var/log/php/error.logtail -100 /var/log/apache2/error.logZie White Screen of Death voor oplossingen.
Prestaties
Section titled “Prestaties”V: Module is traag, hoe kan ik optimaliseren?
Section titled “V: Module is traag, hoe kan ik optimaliseren?”EEN:
- Controleer databasequery’s - Gebruik querylogboekregistratie
- Cachegegevens - Gebruik XOOPS-cache:
<?php$cache = xoops_cache_handler::getInstance();$data = $cache->read('mykey');if ($data === false) { $data = expensive_operation(); $cache->write('mykey', $data, 3600); // 1 hour}?>- Sjablonen optimaliseren - Vermijd lussen in sjablonen
- Zaak PHP opcode cache in - APCu, XDebug, enz.
Zie Prestaties FAQ voor meer details.
Moduleontwikkeling
Section titled “Moduleontwikkeling”V: Waar kan ik documentatie voor moduleontwikkeling vinden?
Section titled “V: Waar kan ik documentatie voor moduleontwikkeling vinden?”A: Zie:
- Module-ontwikkelingsgids
- Modulestructuur
- Uw eerste module maken
Gerelateerde documentatie
Section titled “Gerelateerde documentatie”- Module-installatiefouten
- Modulestructuur
- Prestaties FAQ
- Schakel de foutopsporingsmodus in
#xoops #modules #faq #probleemoplossing