الأسئلة الشائعة حول الوحدات
الأسئلة الشائعة حول الوحدات
Section titled “الأسئلة الشائعة حول الوحدات”أسئلة وإجابات شائعة حول وحدات XOOPS والتثبيت والإدارة.
التثبيت والتفعيل
Section titled “التثبيت والتفعيل”س: كيفية تثبيت وحدة في XOOPS؟
Section titled “س: كيفية تثبيت وحدة في XOOPS؟”ج:
- حمّل ملف الوحدة المضغوط
- انتقل إلى XOOPS Admin > Modules > Manage Modules
- انقر “Browse” واختر الملف المضغوط
- انقر “Upload”
- تظهر الوحدة في القائمة (عادة معطلة)
- انقر أيقونة التفعيل
أو استخرج الملف مباشرة في /xoops_root/modules/ والدخول إلى لوحة التحكم.
س: تحميل الوحدة يفشل بخطأ “الإذن مرفوض”
Section titled “س: تحميل الوحدة يفشل بخطأ “الإذن مرفوض””ج: مشكلة أذونات الملفات:
# 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/xoopsإدارة الوحدات
Section titled “إدارة الوحدات”س: الفرق بين التعطيل والحذف؟
Section titled “س: الفرق بين التعطيل والحذف؟”ج:
- التعطيل: إيقاف الوحدة (جداول قاعدة البيانات تبقى)
- الحذف: إزالة الوحدة (حذف جداول قاعدة البيانات)
للحذف الكامل:
rm -rf modules/modulenameس: كيفية التحقق من تثبيت الوحدة بشكل صحيح؟
Section titled “س: كيفية التحقق من تثبيت الوحدة بشكل صحيح؟”ج: استخدم برنامج التصحيح:
<?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>";}?>تكوين الوحدة
Section titled “تكوين الوحدة”س: أين يتم تكوين إعدادات الوحدة؟
Section titled “س: أين يتم تكوين إعدادات الوحدة؟”ج:
- انتقل إلى XOOPS Admin > Modules
- انقر أيقونة الإعدادات بجانب الوحدة
- قم بتكوين التفضيلات
الإعدادات مخزنة في جدول xoops_config.
الوصول في الكود:
<?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');}?>ميزات الوحدة
Section titled “ميزات الوحدة”س: كيفية إضافة صلاحيات للوحدة؟
Section titled “س: كيفية إضافة صلاحيات للوحدة؟”ج:
- انتقل إلى XOOPS Admin > Modules > Module Permissions
- اختر الوحدة
- اختر المستخدم/المجموعة ومستوى الإذن
- احفظ
في الكود:
<?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');}?>قاعدة بيانات الوحدة
Section titled “قاعدة بيانات الوحدة”س: أين يتم تخزين جداول قاعدة بيانات الوحدة؟
Section titled “س: أين يتم تخزين جداول قاعدة بيانات الوحدة؟”ج: جميعها في قاعدة بيانات XOOPS الرئيسية بادئة بـ 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);}?>استكشاف الأخطاء
Section titled “استكشاف الأخطاء”س: الوحدة تظهر في القائمة لكن لن تُفعّل
Section titled “س: الوحدة تظهر في القائمة لكن لن تُفعّل”ج: تحقق من:
- بناء جملة xoopsversion.php - استخدم PHP linter:
php -l modules/mymodule/xoopsversion.php- ملف SQL:
grep -n "CREATE TABLE" modules/mymodule/sql/mysql.sql- ملفات اللغة:
ls -la modules/mymodule/language/english/س: الوحدة تفعّلت لكن لا تظهر في الموقع
Section titled “س: الوحدة تفعّلت لكن لا تظهر في الموقع”ج:
- عيّن
hasMain = 1في xoopsversion.php:
<?php$modversion['hasMain'] = 1;$modversion['main_file'] = 'index.php';?>- أنشئ
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';?>الأداء
Section titled “الأداء”س: الوحدة بطيئة، كيفية تحسينها؟
Section titled “س: الوحدة بطيئة، كيفية تحسينها؟”ج:
- تحقق من استعلامات قاعدة البيانات - استخدم تسجيل الاستعلامات
- خزّن البيانات - استخدم كاش XOOPS:
<?php$cache = xoops_cache_handler::getInstance();$data = $cache->read('mykey');if ($data === false) { $data = expensive_operation(); $cache->write('mykey', $data, 3600); // 1 hour}?>- حسّن النماذج - تجنب الحلقات في النماذج
- فعّل opcode cache - APCu, XDebug, إلخ.
الوثائق ذات الصلة
Section titled “الوثائق ذات الصلة”- Module Installation Failures
- Module Structure
- Performance FAQ
- Enable Debug Mode
#xoops #modules #faq #troubleshooting