module FAQ
module Sıkça Sorulan Sorular
Section titled “module Sıkça Sorulan Sorular”XOOPS modülleri, kurulumu ve yönetimi hakkında sık sorulan sorular ve yanıtlar.
Kurulum ve Etkinleştirme
Section titled “Kurulum ve Etkinleştirme”S: XOOPS’ye nasıl module yüklerim?
Section titled “S: XOOPS’ye nasıl module yüklerim?”C:
- module zip dosyasını indirin
- XOOPS Yönetici > modules > Modülleri Yönet’e gidin
- “Gözat”a tıklayın ve zip dosyasını seçin
- “Yükle”ye tıklayın
- module listede görünür (genellikle devre dışıdır)
- Etkinleştirmek için etkinleştirme simgesine tıklayın
Alternatif olarak, zip dosyasını doğrudan /xoops_root/modules/’ye çıkartın ve yönetici paneline gidin.
S: module yükleme işlemi “İzin reddedildi” ile başarısız oluyor
Section titled “S: module yükleme işlemi “İzin reddedildi” ile başarısız oluyor”C: Bu bir dosya izni sorunudur:
# 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/xoopsDaha fazla ayrıntı için bkz. module Kurulum Hataları.
S: Kurulumdan sonra modülü neden yönetici panelinde göremiyorum?
Section titled “S: Kurulumdan sonra modülü neden yönetici panelinde göremiyorum?”C: Aşağıdakileri kontrol edin:
- module etkinleştirilmedi - modules listesinde göz simgesine tıklayın
- Yönetici sayfası eksik - Modülde xoopsversion.php dosyasında
hasAdmin = 1bulunmalıdır - Dil dosyaları eksik -
language/english/admin.phpgerekiyor - cache temizlenmedi - Önbelleği temizleyin ve tarayıcıyı yenileyin
# Clear XOOPS cacherm -rf /path/to/xoops/xoops_data/caches/*S: Bir modülü nasıl kaldırabilirim?
Section titled “S: Bir modülü nasıl kaldırabilirim?”C:
- XOOPS Yönetici > modules > Modülleri Yönet’e gidin
- Modülü devre dışı bırakın (göz simgesine tıklayın)
- trash/delete simgesine tıklayın
- Tamamen kaldırmak istiyorsanız module klasörünü manuel olarak silin:
rm -rf /path/to/xoops/modules/modulenamemodule Yönetimi
Section titled “module Yönetimi”S: Devre dışı bırakma ile kaldırma arasındaki fark nedir?
Section titled “S: Devre dışı bırakma ile kaldırma arasındaki fark nedir?”C:
- Devre Dışı Bırak: Modülü devre dışı bırakın (göz simgesine tıklayın). database tabloları kalır.
- Kaldırma: Modülü çıkarın. database tablolarını siler ve listeden kaldırır.
Gerçekten kaldırmak için klasörü de silin:
rm -rf modules/modulenameS: Bir modülün düzgün şekilde kurulup kurulmadığını nasıl kontrol ederim?
Section titled “S: Bir modülün düzgün şekilde kurulup kurulmadığını nasıl kontrol ederim?”C: Hata ayıklama komut dosyasını kullanın:
<?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>";}?>S: Aynı modülün birden fazla sürümünü çalıştırabilir miyim?
Section titled “S: Aynı modülün birden fazla sürümünü çalıştırabilir miyim?”C: Hayır, XOOPS bunu yerel olarak desteklemiyor. Ancak şunları yapabilirsiniz:
- Farklı bir dizin adıyla bir kopya oluşturun:
mymodulevemymodule2 - Her iki modülün xoopsversion.php dosyasındaki dizin adını güncelleyin
- Ensure unique database table names
Aynı kodu paylaştıklarından bu önerilmez.
module Yapılandırması
Section titled “module Yapılandırması”Q: Where do I configure module settings?
Section titled “Q: Where do I configure module settings?”C:
- Go to XOOPS Admin > Modules
- Modülün yanındaki settings/gear simgesine tıklayın
- Tercihleri yapılandırın
Ayarlar xoops_config tablosunda saklanır.
Kodla erişim:
<?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');}?>S: module yapılandırma seçeneklerini nasıl tanımlarım?
Section titled “S: module yapılandırma seçeneklerini nasıl tanımlarım?”A: xoopsversion.php’de:
<?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 ]];?>module Özellikleri
Section titled “module Özellikleri”S: Modülüme nasıl yönetici sayfası eklerim?
Section titled “S: Modülüme nasıl yönetici sayfası eklerim?”A: Yapıyı oluşturun:
modules/mymodule/├── admin/│ ├── index.php│ ├── menu.php│ └── menu_en.phpxoopsversion.php’de:
<?php$modversion['hasAdmin'] = 1;$modversion['adminindex'] = 'admin/index.php';?>admin/index.php oluşturun:
<?phprequire_once XOOPS_ROOT_PATH . '/kernel/admin.php';
xoops_cp_header();echo "<h1>Module Administration</h1>";xoops_cp_footer();?>S: Modülüme arama işlevini nasıl eklerim?
Section titled “S: Modülüme arama işlevini nasıl eklerim?”C:
- xoopsversion.php dosyasında ayarlayın:
<?php$modversion['hasSearch'] = 1;$modversion['search'] = 'search.php';?>search.phpoluşturun:
<?phpfunction mymodule_search($queryArray, $andor, $limit, $offset) { // Search implementation $results = []; return $results;}?>S: Modülüme nasıl bildirim eklerim?
Section titled “S: Modülüme nasıl bildirim eklerim?”C:
- xoopsversion.php dosyasında ayarlayın:
<?php$modversion['hasNotification'] = 1;$modversion['notification_categories'] = [ ['name' => 'item_published', 'title' => '_NOT_ITEM_PUBLISHED']];$modversion['notifications'] = [ ['name' => 'item_published', 'title' => '_NOT_ITEM_PUBLISHED']];?>- Kodda bildirimi tetikleyin:
<?php$notification_handler = xoops_getHandler('notification');$notification_handler->triggerEvent( 'item_published', $item_id, 'Item published', 'description');?>module İzinleri
Section titled “module İzinleri”S: module izinlerini nasıl ayarlarım?
Section titled “S: module izinlerini nasıl ayarlarım?”C:
- XOOPS Yönetici > modules > module İzinleri’ne gidin
- Modülü seçin
- user/group’yi ve izin düzeyini seçin
- Kaydet
Kodda:
<?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”S: module database tabloları nerede saklanıyor?
Section titled “S: module database tabloları nerede saklanıyor?”A: Hepsi ana XOOPS veritabanında, tablo ön ekinizle başlar (genellikle 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);}?>S: module database tablolarını nasıl güncellerim?
Section titled “S: module database tablolarını nasıl güncellerim?”C: Modülünüzde bir güncelleme komut dosyası oluşturun:
<?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;}?>module Bağımlılıkları
Section titled “module Bağımlılıkları”S: Gerekli modüllerin kurulu olup olmadığını nasıl kontrol edebilirim?
Section titled “S: Gerekli modüllerin kurulu olup olmadığını nasıl kontrol edebilirim?”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');}?>S: modules diğer modüllere bağlı olabilir mi?
Section titled “S: modules diğer modüllere bağlı olabilir mi?”C: Evet, xoopsversion.php’de şunu bildirin:
<?php$modversion['dependencies'] = [ [ 'dirname' => 'required_module', 'version_min' => '1.0', 'version_max' => 0, // 0 = unlimited 'order' => 1 ]];?>Sorun Giderme
Section titled “Sorun Giderme”S: module listede görünüyor ancak etkinleştirilmiyor
Section titled “S: module listede görünüyor ancak etkinleştirilmiyor”C: Kontrol edin:
- xoopsversion.php söz dizimi - PHP linter’ı kullanın:
php -l modules/mymodule/xoopsversion.php- database SQL dosyası:
# Check SQL syntaxgrep -n "CREATE TABLE" modules/mymodule/sql/mysql.sql- Dil dosyaları:
ls -la modules/mymodule/language/english/Ayrıntılı tanılama için module Kurulum Hataları bölümüne bakın.
S: module etkinleştirildi ancak ana sitede görünmüyor
Section titled “S: module etkinleştirildi ancak ana sitede görünmüyor”C:
- xoopsversion.php dosyasında
hasMain = 1değerini ayarlayın:
<?php$modversion['hasMain'] = 1;$modversion['main_file'] = 'index.php';?>modules/mymodule/index.phpoluşturun:
<?phprequire_once '../../mainfile.php';include_once XOOPS_ROOT_PATH . '/header.php';
echo "Welcome to my module";
include_once XOOPS_ROOT_PATH . '/footer.php';?>S: module “beyaz ölüm ekranına” neden oluyor
Section titled “S: module “beyaz ölüm ekranına” neden oluyor”A: Hatayı bulmak için hata ayıklamayı etkinleştirin:
<?php// In mainfile.phperror_reporting(E_ALL);ini_set('display_errors', '1');define('XOOPS_DEBUG_LEVEL', 2);?>Hata günlüğünü kontrol edin:
tail -100 /var/log/php/error.logtail -100 /var/log/apache2/error.logÇözümler için Ölümün Beyaz Ekranına bakın.
Performans
Section titled “Performans”S: module yavaş, nasıl optimize edebilirim?
Section titled “S: module yavaş, nasıl optimize edebilirim?”C:
- database sorgularını kontrol edin - Sorgu günlüğünü kullanın
- Verileri önbelleğe al - XOOPS önbelleğini kullanın:
<?php$cache = xoops_cache_handler::getInstance();$data = $cache->read('mykey');if ($data === false) { $data = expensive_operation(); $cache->write('mykey', $data, 3600); // 1 hour}?>- Şablonları optimize edin - Şablonlardaki döngülerden kaçının
- PHP opcode önbelleğini etkinleştirin - APCu, XDebug, vb.
Daha fazla ayrıntı için Performans FAQ’ye bakın.
module Geliştirme
Section titled “module Geliştirme”S: module geliştirme belgelerini nerede bulabilirim?
Section titled “S: module geliştirme belgelerini nerede bulabilirim?”C: Bakınız:
- module Geliştirme Kılavuzu
- module Yapısı
- İlk Modülünüzü Oluşturma
İlgili Belgeler
Section titled “İlgili Belgeler”- module Kurulum Hataları
- module Yapısı
- Performans FAQ
- Hata Ayıklama Modunu Etkinleştir
#xoops #modules #sss #sorun giderme