Modul FAQ
Modul Pogosta vprašanja
Section titled “Modul Pogosta vprašanja”Pogosta vprašanja in odgovori o XOOPS modulih, namestitvi in upravljanju.
Namestitev in aktivacija
Section titled “Namestitev in aktivacija”V: Kako namestim modul v XOOPS?
Section titled “V: Kako namestim modul v XOOPS?”A:
- Prenesite datoteko zip modula
- Pojdite na XOOPS Skrbnik > Moduli > Upravljanje modulov
- Kliknite »Prebrskaj« in izberite datoteko zip
- Kliknite »Naloži«
- Modul se prikaže na seznamu (običajno je deaktiviran)
- Kliknite ikono za aktiviranje, da ga omogočite
Druga možnost je, da razširite zip neposredno v /xoops_root/modules/ in se pomaknete do skrbniške plošče.
V: Nalaganje modula ne uspe z “Dovoljenje zavrnjeno”
Section titled “V: Nalaganje modula ne uspe z “Dovoljenje zavrnjeno””A: To je težava z dovoljenjem datoteke:
# 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/xoopsZa več podrobnosti glejte Napake pri namestitvi modula.
V: Zakaj po namestitvi ne vidim modula v skrbniški plošči?
Section titled “V: Zakaj po namestitvi ne vidim modula v skrbniški plošči?”A: Preverite naslednje:
- Modul ni aktiviran - kliknite ikono očesa na seznamu modulov
- Manjka skrbniška stran - Modul mora imeti
hasAdmin = 1v različici XOOPS.php - Language files missing - Need
language/english/admin.php - Predpomnilnik ni počiščen - Počistite predpomnilnik in osvežite brskalnik
# Clear XOOPS cacherm -rf /path/to/xoops/xoops_data/caches/*V: Kako odstranim modul?
Section titled “V: Kako odstranim modul?”A:
- Pojdite na XOOPS Admin > Modules > Manage Modules
- Deaktivirajte modul (kliknite ikono očesa)
- Kliknite ikono trash/delete
- Ročno izbrišite mapo modula, če želite popolno odstranitev:
rm -rf /path/to/xoops/modules/modulenameUpravljanje modulov
Section titled “Upravljanje modulov”V: Kakšna je razlika med onemogočanjem in odstranitvijo?
Section titled “V: Kakšna je razlika med onemogočanjem in odstranitvijo?”A:
- Onemogoči: Deaktivirajte modul (kliknite ikono očesa). Tabele baze podatkov ostanejo.
- Odstrani: Odstranite modul. Izbriše tabele baze podatkov in odstrani s seznama.
Če želite resnično odstraniti, izbrišite tudi mapo:
rm -rf modules/modulenameV: Kako preverim, ali je modul pravilno nameščen?
Section titled “V: Kako preverim, ali je modul pravilno nameščen?”A: Uporabite skript za odpravljanje napak:
<?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: Ali lahko izvajam več različic istega modula?
Section titled “V: Ali lahko izvajam več različic istega modula?”O: Ne, XOOPS tega izvorno ne podpira. Lahko pa:
- Ustvarite kopijo z drugim imenom imenika:
mymoduleinmymodule2 - Posodobite ime direktorija v različici XOOPS obeh modulov.php
- Ensure unique database table names
To ni priporočljivo, saj imata isto kodo.
Konfiguracija modula
Section titled “Konfiguracija modula”V: Kje lahko konfiguriram nastavitve modula?
Section titled “V: Kje lahko konfiguriram nastavitve modula?”A:
- Pojdite na XOOPS Admin > Modules
- Kliknite ikono settings/gear poleg modula
- Konfigurirajte nastavitve
Nastavitve so shranjene v tabeli xoops_config.
Dostop v kodi:
<?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: Kako definiram možnosti konfiguracije modula?
Section titled “V: Kako definiram možnosti konfiguracije modula?”A: V 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 ]];?>Funkcije modula
Section titled “Funkcije modula”V: Kako dodam skrbniško stran svojemu modulu?
Section titled “V: Kako dodam skrbniško stran svojemu modulu?”A: Ustvarite strukturo:
modules/mymodule/├── admin/│ ├── index.php│ ├── menu.php│ └── menu_en.phpV xoopsversion.php:
<?php$modversion['hasAdmin'] = 1;$modversion['adminindex'] = 'admin/index.php';?>Ustvari admin/index.php:
<?phprequire_once XOOPS_ROOT_PATH . '/kernel/admin.php';
xoops_cp_header();echo "<h1>Module Administration</h1>";xoops_cp_footer();?>V: Kako svojemu modulu dodam funkcijo iskanja?
Section titled “V: Kako svojemu modulu dodam funkcijo iskanja?”A:
- Nastavite v xoopsversion.php:
<?php$modversion['hasSearch'] = 1;$modversion['search'] = 'search.php';?>- Ustvarite
search.php:
<?phpfunction mymodule_search($queryArray, $andor, $limit, $offset) { // Search implementation $results = []; return $results;}?>V: Kako dodam obvestila svojemu modulu?
Section titled “V: Kako dodam obvestila svojemu modulu?”A:
- Nastavite v xoopsversion.php:
<?php$modversion['hasNotification'] = 1;$modversion['notification_categories'] = [ ['name' => 'item_published', 'title' => '_NOT_ITEM_PUBLISHED']];$modversion['notifications'] = [ ['name' => 'item_published', 'title' => '_NOT_ITEM_PUBLISHED']];?>- Sproži obvestilo v kodi:
<?php$notification_handler = xoops_getHandler('notification');$notification_handler->triggerEvent( 'item_published', $item_id, 'Item published', 'description');?>Dovoljenja modula
Section titled “Dovoljenja modula”V: Kako nastavim dovoljenja za modul?
Section titled “V: Kako nastavim dovoljenja za modul?”A:
- Pojdite na XOOPS Admin > Modules > Module Permissions
- Izberite modul
- Izberite user/group in raven dovoljenja
- Shrani
V kodi:
<?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');}?>Module Database
Section titled “Module Database”V: Kje so shranjene tabele baze podatkov modulov?
Section titled “V: Kje so shranjene tabele baze podatkov modulov?”A: Vse v glavni bazi podatkov XOOPS, s predpono vaše tabele (običajno 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: Kako posodobim tabele baze podatkov modulov?
Section titled “V: Kako posodobim tabele baze podatkov modulov?”A: Ustvarite posodobitveni skript v svojem modulu:
<?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;}?>Odvisnosti modula
Section titled “Odvisnosti modula”V: Kako preverim, ali so potrebni moduli nameščeni?
Section titled “V: Kako preverim, ali so potrebni moduli nameščeni?”A:
<?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: Ali so lahko moduli odvisni od drugih modulov?
Section titled “V: Ali so lahko moduli odvisni od drugih modulov?”A: Da, prijavi v xoopsversion.php:
<?php$modversion['dependencies'] = [ [ 'dirname' => 'required_module', 'version_min' => '1.0', 'version_max' => 0, // 0 = unlimited 'order' => 1 ]];?>Odpravljanje težav
Section titled “Odpravljanje težav”Q: Modul se pojavi na seznamu, vendar se ne aktivira
Section titled “Q: Modul se pojavi na seznamu, vendar se ne aktivira”A: Preverite:
- xoopsversion.php syntax - Use PHP linter:
php -l modules/mymodule/xoopsversion.php- Datoteka baze podatkov SQL:
# Check SQL syntaxgrep -n "CREATE TABLE" modules/mymodule/sql/mysql.sql- Jezikovne datoteke:
ls -la modules/mymodule/language/english/Za podrobno diagnostiko glejte Napake pri namestitvi modula.
Q: Modul je aktiviran, vendar ni prikazan na glavnem mestu
Section titled “Q: Modul je aktiviran, vendar ni prikazan na glavnem mestu”A:
- Nastavite
hasMain = 1v xoopsversion.php:
<?php$modversion['hasMain'] = 1;$modversion['main_file'] = 'index.php';?>- Ustvarite
modules/mymodule/index.php:
<?phprequire_once '../../mainfile.php';include_once XOOPS_ROOT_PATH . '/header.php';
echo "Welcome to my module";
include_once XOOPS_ROOT_PATH . '/footer.php';?>Q: Modul povzroča “bel zaslon smrti”
Section titled “Q: Modul povzroča “bel zaslon smrti””A: Omogočite odpravljanje napak, da poiščete napako:
<?php// In mainfile.phperror_reporting(E_ALL);ini_set('display_errors', '1');define('XOOPS_DEBUG_LEVEL', 2);?>Preverite dnevnik napak:
tail -100 /var/log/php/error.logtail -100 /var/log/apache2/error.logZa rešitve glejte Beli zaslon smrti.
Zmogljivost
Section titled “Zmogljivost”V: Modul je počasen, kako optimiziram?
Section titled “V: Modul je počasen, kako optimiziram?”A:
- Preverite poizvedbe po bazi podatkov - Uporabite beleženje poizvedb
- Podatki predpomnilnika - Uporabite predpomnilnik XOOPS:
<?php$cache = xoops_cache_handler::getInstance();$data = $cache->read('mykey');if ($data === false) { $data = expensive_operation(); $cache->write('mykey', $data, 3600); // 1 hour}?>- Optimizirajte predloge - Izogibajte se zankam v predlogah
- Omogoči predpomnilnik kode PHP - APCu, XDebug itd.
Glejte Zmogljivost FAQ za več podrobnosti.
Razvoj modula
Section titled “Razvoj modula”V: Kje lahko najdem dokumentacijo za razvoj modula?
Section titled “V: Kje lahko najdem dokumentacijo za razvoj modula?”A: Glej:
- Vodnik za razvoj modula
- Struktura modula
- Ustvarjanje vašega prvega modula
Povezana dokumentacija
Section titled “Povezana dokumentacija”- Napake pri namestitvi modula
- Struktura modula
- Zmogljivost FAQ
- Omogoči način za odpravljanje napak
#XOOPS #moduli #faq #troubleshooting