امتداد:Cargo/التنزيل والتنصيب
التنزيل
يمكنك تنزيل كود Cargo البرمجي في صيغة ملف .zip: https://github.com/wikimedia/mediawiki-extensions-Cargo/archive/3.7.zip
يمكنك أيضا تنزيل الكود البرمجي مباشرة مستخدما غت من مستودع الكود المصدري لميدياويكي (طالع الوسوم المتاحة). شغل الأمر التالي من واجهة سطر الأوامر من داخل دليل الامتدادات:
git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/Cargo
كي ترى النص البرمجي على الإنترنت، شاملا تاريخ الإصدار لكل ملف، اذهب إلى التالي: عرض نص Cargo البرمجي
تنصيب
كي تنصب الامتداد، ضع دليل 'Cargo' كاملا داخل دليل 'extensions' في ميدياويكي، ومن ثم أضف السطر التالي إلى ملف 'LocalSettings.php' لديك:
wfLoadExtension( 'Cargo' );
حال الانتهاء من إعداد الكود البرمجي، سيتطلب الأمر منك إعداد جداول قاعدتي بيانات في قاعدة البيانات الرئيسية في Cargo. سوف تحتاج لإعداد قاعدتي البيانات هاتين عن طريق الذهاب إلى دليل MediaWiki's /maintenance واستدعاء التالي:
php update.php
في الختام سوف يتعين عليك أن تتأكد من أن حساب قاعدة البيانات الذي يستخدمه النص البرمجي للوصول إلى قاعدة البيانات مسموح له أن ينشئ الجداول وأن يسقطها. قد يكون هذا الحساب هو حساب قاعدة بيانات ميدياويكي القياسي أو لا؛ طالع ما يلي.
ضبط قاعدة بيانات Cargo
يستخدم Cargo تلقائيا قاعدة بيانات ميدياويكي القياسية في أغراض حفظ بياناته. (لو كنت قد أعددت عدة قواعد بيانات، لو استخدمت الإعداد $wgDBservers ، سوف تستخدم أول قاعدة بيانات من بين قواعد البيانات تلك.) يميز Cargo بين جداول قواعد بياناته وبين كافة قواعد البيانات الأخرى عن طريق بدء كافة أسماءهم مستخدما بادئة، وهي البادئة "cargo__" دون تخصيص.
يمكنك تغيير هذا الأمر كي يستخدم Cargo أي قاعدة بيانات أخرى. (رغم أن جدولي Cargo من فئة "helper"، cargo_tables و cargo_pages، سوف يظلان في قاعدة بيانات ميدياويكي الرئيسية.) يوجد سببين اثنين رئيسيين يجعلان من استخدام قاعدة بيانات منفصلة أمرا طيبا:
- ثمة احتمال أن يتعرض Cargo لحدوث تسريب أمني، أي أن استعلامات Cargo تسمح بضم أوامر SQL خبيثة تسمح للمستخدمين بالوصول إلى معلومات غير مسموح لهم بالوصول إليها أو حتى تعديل قاعدة البيانات. لا توجد تسريبات أمنية معروفة – كما أن Cargo يستعين بكم كبير من سبل الوقاية بغرض منع حدوث أي من هذه التسريبات – إلا أن هذا الأمر لا يعني بالضرورة أنه لا توجد تسريبات قائمة. إذا وجد أي من نقاط الضعف هذه، يعد وجود قاعدة بيانات منفصلة تستخدم حساب مستخدم منفصل لقاعدة البيانات يتمتع بتصاريح مقيدة خيارا آمنا.
- لو حدث تشغيل استعلامات بطيئة أو مجهدة، سواء كان ذلك دون علم أو بنية خبيثة، قد يمنع وجود قاعدة بيانات منفصلة موجودة على خادوم قاعدة بيانات مستقل مثل هذه الاستعلامات من التأثير سلبا على الأعمال المعتادة لموقع الويكي.
يقدم Cargo الإعدادات العمومية التالية التي تسمح لك بإعداد قاعدة بيانات منفصلة:
Variable | Required? | Default | Description |
---|---|---|---|
$wgCargoDBserver |
Required | required to set up the custom database | |
$wgCargoDBname |
Required | required to set up the custom database | |
$wgCargoDBuser |
Required | required to set up the custom database | |
$wgCargoDBpassword |
Required | required to set up the custom database | |
$wgCargoDBtype |
Optional | the value of $wgDBtype |
|
$wgCargoDBprefix |
Optional | "" |
|
$wgCargoDBfilePath |
Optional | مطلوب فقط في قواعد بيانات SQLite، طالع خيارات مخصصة في حالة SQLite |
تضبط هذه الإعدادات بذات الطريقة المتبعة مع مثيلاتها غير المرتبطة بالامتداد Cargo، والتي يمكن الوصول إليها من LocalSettings.php. كي تضبط قاعدة البيانات المخصصة هذه، أضف أسطر لما لا يقل عن أول أربعة متغيرات إلى LocalSettings.php.
التصاريح
The runcargoqueries
permission governs access to Special:CargoQuery and Special:Drilldown and by default is true for everyone.
This can be changed by following the instructions in Manual:User rights .
متطلبات أخرى
- لو كنت تعتزم تصدير البيانات إلى جدول بيانات إكسيل، سيتعين عليك أن تنصب مكتبة PhpSpreadsheet على خادومك. يمكن عمل ذلك عن طريق إضافة
phpoffice/phpspreadsheet
إلى composer.local.json لديك ومن ثم تشغيلcomposer update --no-dev -o
.
الترقية
لو استخدمت 'git clone' لتنصيب Cargo، يمكنك التحديث إلى آخر كود برمجي للامتداد مستخدمًا أمر بسيط. قد لا يكون هذا الإصدار مستقرًا.
من واجهة سطر الأوامر في مجلد Cargo، شغل الأمر التالي:
git pull