moodle plugins programing manual
TRANSCRIPT
0
7/20/2014
Moodle Plugins programing Manual دليل برمجة إضافات موديل
بإشراف
د.صالح الدوه جي م.روان قرعوني
إعداد الطالب
مريم القصار ايناس السايق
محمد تحسين الشلبي محمد عبادة البوش
1 | P a g e
.مقدمة1
( خاصة بهم لاستخدامها فيBlocksهذه الفقرة دليل للمطورين الذين يرغبون في ا نشاء كتل) تحويMoodle. صدار ا ي ا صدار ا حدث( فقط.و) Moodleمن تطوير 0.2ينطبق على الا
بشكل رئيسي يستهدفالدليل . HTMLا لى تطوير كتلة متعددة الا غراض التي تعرض هذه الدليل يهدف نشاءظهار كم هو سهل ا لا و البرمجة بشكل عام ويهدف Moodleمع قليلة الخبرةالناس كتل جديدة لا
Moodle وهناك كمية صغيرة معينة من المعرفة البرمجة .PHP مطلوبةزال تلا.
. مفاهيم أساسية2
" من الصفر من ا جل ا ظهار معظم الميزات HTML( "Blockسيتم ا نشاء كتلة ) الدليل،من خلال هذا ". حيث سيتم تخزين الملفات SimpleHTMLكتلة الخاصة بنا ب "ال(. سيتم تسمية Blockكتلة )ال
، ولكن من ا جل التناسق سوف نتابع ممارسة استخدام (serverبمجلد بنفس الاسم على الخادم) لكتلة لدينا الاسم.في ا ي حال من الا حوال التي تتطلب مثل هذا simplehtml " lowercasedشكل "
"، فا نه من المهم ا ن نتذكر ا ن فقط simplehtmlوهو الاسم الذي يحتوي على " ا لى الملف كلما نشير"simplehtmlموحد وضروريوالباقي هو به؛ " جزء متروك لنا لتغيير (Moodle) .للعمل بشكل صحيح
. كيفية البداية بالناحية البرمجية3
. تذكر، في هذا المثال نقوم با نشاء كتلة PHP، نحن بحاجة ا لى ا ربعة ملفات Moodleلتعريف "كتلة" في الملفات الا ربعة كونت. يجب ا ن صة' باسم كتلتك الخاsimplehtml'، استبدال 'simplehtmlتسمى ' ، وهي كالتالي:blocks/simplehtmlالمسار في موجودة
2 | P a g e
3.3.block_simplehtml.php
دارة الكتلة الشاشة. وا ظهاره علىسيحوي هذا الملف صفوف تعريف الكتلة، وسيتم استخدامها لا
':block_simplehtml.phpنبدا من خلال ا نشاء ملف الكائن الرئيسي، '
<?php
class block_simplehtml extends block_base {
public function init() {
$this->title = get_string('simplehtml', 'block_simplehtml');
}
// The PHP tag and the curly bracket for the class definition
// will only be closed after there is another function added in the
next section.
تغييره." هو الذي يمكن simplehtml“والجزء المرفقةالسطر الا ول يجب ا ن يكون بالطريقة
البسيط سنقوم في مثالنالصف الكتلة . هو ا ساسي بكل الكتل و مهمته تهيئة المتحولات ()initالتابع في هذه الحالة تم ضبطه على قراءة الكتلة،برا س والذي سيظهر this->title$ بتحديد العنوان للكتلة
كنت تريد كتلة لعرض ا نه ا ذاا لى الا مام قليلا هنا وا قول ا ذا تخطيتالعنوان من ملف اللغة المذكورة ا دناه، بلا عنوان يجب عليك تعيين هذا ا لى ا ي قيمة تريد )ولكن لا يمكن ا ن تكون فارغة(. سنرى لاحقا كيفية
تعطيل عرض عنوان لكتلة.
3.2.db/access.php
للكتل الا ساسية. ا نها ا دخلت بحيث كان myaddinstanceو addinstance ا مكانيات Moodle 0.2 قدممكانياتكتل الفردية. وينبغي ا يضا ا ن تضاف هذه الاستخدام ب التحكممن الممكن صة بكاالخ لكتلةل الا مكانيات:ما يلي هو . blocks/simplehtml/db/access.phpفي الملف مجموعة الا
3 | P a g e
<?php
$capabilities = array(
'block/simplehtml:myaddinstance' => array(
'captype' => 'write',
'contextlevel' => CONTEXT_SYSTEM,
'archetypes' => array(
'user' => CAP_ALLOW
),
'clonepermissionsfrom' => 'moodle/my:manageblocks'
),
'block/simplehtml:addinstance' => array(
'riskbitmask' => RISK_SPAM | RISK_XSS,
'captype' => 'write',
'contextlevel' => CONTEXT_BLOCK,
'archetypes' => array(
'editingteacher' => CAP_ALLOW,
'manager' => CAP_ALLOW
),
'clonepermissionsfrom' => 'moodle/site:manageblocks'
),
);
4 | P a g e
3.3. lang/eng/block_simplehtml.php
نجليزية للكتلة الخاص بك. نجليزية، يمكنك استبدال "هذا هو ملف اللغة الا " مع enا ذا لم تكن متحدث الا من مجلد التثبيت /langرمز اللغة المناسبة الخاصة بك. جميع ملفات اللغة للكتل تذهب تحت المجلد
الكتل.
مكانيات المضافة ا علاه تحتاج لتوصيف الصفحات وينبغي ا يضا ا ن تضاف هذه ا لى ملف اللغة. الا
<?php
$string['pluginname'] = 'Simple HTML block';
$string['simplehtml'] = 'Simple HTML';
$string['simplehtml:addinstance'] = 'Add a new simple HTML block';
$string['simplehtml:myaddinstance'] = 'Add a new simple HTML block to
the My Moodle page';
3.3 .version.php
ضافة) يحويوسوف صدار للا غير المشمولة متقدمة )(، ا يضا لها تفاصيل pluginهذا الملف معلومات الا ا ذا كنت تريد المزيد من التفاصيل(. version.php راجع-هنا
<?php
$plugin->version = 2011062800; // YYYYMMDDHH (year, month, day, 24-hr
time)
$plugin->requires = 2010112400; // YYYYMMDDHH (This is the release
version for Moodle 2.0)
ضافة ا لىدلالة على رقم ا صدار كتلة، لهيحتوي هذا الملف تعريفات حقل ا صدار الحد الا دنى من بالا Moodle هنا يسمى دائما المستخدمامها. يرجى ملاحظة ا ن الكائن التي يجب ا ن يتم تثبيت من ا جل استخدplugin$ نشاء هذا نفسك داخل الملف. ب الغرض، والتي لا تحتاج لا
5 | P a g e
ا لى من التوابععلى الشاشة، نحن بحاجة ا لى ا ضافة المزيد اعرضهومن ا جل الحصول على كتلةغلاق النهائي في ملف لديناالبرمجي )صفنا (:قبل قوس الا
public function get_content() {
if ($this->content !== null) {
return $this->content;
}
$this->content = new stdClass;
$this->content->text = 'The content of our SimpleHTML
block!';
$this->content->footer = 'Footer here...';
return $this->content;
}
} // Here's the closing brac
:ا ضف كتلتك الخاصة ا لى الصفحة الرئيسية ضافة كتلة الخاص بك ا لى ل( الجدد Moodleلا ننسى )وخاصة ا ذا كنت من مستخدمي ا
فعل التعديل وا ضافة كتلتك ا لى الصفحة.الرئيسية الصفحة
ا لا ستحسبها. و Nullليست this->content$ا ن القيمة الحالية ل ار ختبابادئ ذي بدء، هناك سواء في النص ا و في HTMLسنبدا من نقطة الصفر. نا خذ في الاعتبار ا ن نتمكن من استخدام
نريد.تذييل الصفحة، ا ذا كنا للكتلة. يمكنك ا يضا ا نشاء قوائم ومن الجدير بالذكر ا ن هذه ليست النوع الوحيد من المحتويات
نتاج، مثل القوائم. هذه ا نواع والا شجار الهرمية، والتي هي ا كثر ملاءمة لا نواع معينة من الا المحتويات المختلفة يكون لها تا ثير على الكائن المحتوى وكيفية بنائه.
6 | P a g e
قم زيارة صفحة ؛ Moodleعند هذه النقطة يجب ا ن تكون لدينا كتلة قابلة للتثبيت تلقائيا في دارة لتثبيته )انقر "ا شعارات" تحت ا دارة كتلة الموقع( وبعد رؤيتها ُعد لمواصلة دليلنا الا
التعليمي. الخرج:تهيئة
صدار الحالي من الكتلة لدينا يعرض فقط رسالة ثابتة، وهي ليست مفيدة للغاية. ما نود حقا الا وضعت ا ي صفحة ا لى "وضع التحرير"، ا ذا الكتلة،القيام به هو السماح لتخصيص ما بداخل
النقر على هذا يا خذك ا لى بعد. استلاحظ ا ن كل كتلة لديها زر تحرير في شريط العنوان الخاص به .كتلةال ا عداداتنموذج
عدادات وا ضافة حقول بحيث يمكن للمستخدمين تصميم كتلة مخصصة،يمكننا توسيع نموذج الا , مع /blocks/simplehtml/edit_form.php نشا ملفا لمهمة معينة. لتوسيع النموذج
التعليمات البرمجية التالية:
<?php
class block_simplehtml_edit_form extends block_edit_form {
protected function specific_definition($mform) {
// Section header title according to language file.
$mform->addElement('header', 'configheader',
get_string('blocksettings', 'block'));
// A sample string variable with a default value.
7 | P a g e
$mform->addElement('text', 'config_text',
get_string('blockstring', 'block_simplehtml'));
$mform->setDefault('config_text', 'default value');
$mform->setType('config_text', PARAM_TEXT);
}
}
ضافة Moodle، وهذا يسمح block_edit_formالسطر الا ول يصرح عن صف برمجي يرث من لا
عدادات في صفحة برمجي لتنفيذهكود عناصر النموذج يعّرف ()specific_definitionتابع . الا من . القياسية Moodleالخاص بك، وهذه تا خذ نفس الشكل كما هو الحال مع مكتبة النماذج
وحقل المدخلات التي تقبل النص المراد العنوان ا نشا نا specific_definitionالتابع خلال استخدامه داخل الكتلة.
ل وتضيف قيمة( lang/en/block_simplehtml.phpاللغة ) توسيع ملفيجب ملاحظة:"blockstring ا علاه." المعرفة بالكود
. ”_config“كل ا سماء الحقول يجب ا ن تبدا ب هام: البرمجية:التعليمات وذلك باستخدامالمدخلات الخاصة بك وبذلك يمكن ا ظهار
if (! empty($this->config->text)) {
$this->content->text = $this->config->text;
}
()initبكل التوابع ما عدا متاح this->config$المتحول لاحظ ا ن ا لىل قح الكتلة نضيفعنوان التخصيص ولتعديل علىولمزيد من
/blocks/simplehtml/edit_form.php
8 | P a g e
// A sample string variable with a default value.
$mform->addElement('text', 'config_title', get_string('blocktitle',
'block_simplehtml'));
$mform->setDefault('config_title', 'default value');
$mform->setType('config_title', PARAM_MULTILANG);
البرمجية ا لى ونضيف التعليمات
public function specialization() {
if (!empty($this->config->title)) {
$this->title = $this->config->title;
} else {
$this->config->title = 'Default title ...';
}
if (empty($this->config->text)) {
$this->config->text = 'Default text ...';
}
}
. ()initهذا التابع يستدعى بشكل تلقائي و دائما بعد التابع