
معرفی
ماژول های Activity در دایرکتوری mod/ قرار دارند.
هر ماژول در یک زیر دایرکتوری جداگانه قرار دارد و شامل تعدادی فایل های اجباری و تعدادی فایل متفرقه است که توسعه دهنده از آن ها استفاده می کند. تصویر زیر نمونه ای از ساختار فایلی ماژول های certificate ( گواهینامه -گواهی )است. لطفا توجه داشته باشید در این نوشته هر ارجاعی به <modname> باید با نام ماژول شما جایگزین شود.
در زیر یک نمونه از ساختار فایل برای پلاگین certificate ( گواهینامه -گواهی ) است.

فایل های استاندارد و عملکرد آن ها
چندین فایل وجود دارد که برای Moodle بسیار مهم هستند. این فایل ها برای نصب ماژول شما و سپس یکی کردن آن ها در سیستم Moodle استفاده می شود. هر فایل دارای یک عملکرد و تابع خاص است، بعضی از فایل ها لازم نیستند و فقط زمانی ایجاد می شوند که مایل به استفاده از قابلیت هایی که آن ها ارائه می دهد هستیم . در زیر تعدادی از رایج ترین فایل های مورد استفاده ، آورده شده است.
پوشه های Backup
این پوشه ، محلی برای قرار گرفتن فایل هایی است که مشخص می کنند ، ماژول شما زمانی که یک دوره backup یا restore انجام می شود ، چگونه عمل کند. شما ممکن است مجبور شوید مقدار زیادی اطلاعات را به پایگاه داده برای یک ماژول خاص اضافه کنید که شما نمی خواهید دوباره در زمان بازگرداندن یک دوره وارد کنید ، به همین جهت این مکان، محلی است که در آن شما تعریف می کنید چه چیزی باید در طول پشتیبان گیری ذخیره شود و چگونه پس از آن این اطلاعات از قسمت پشتیبان گیری Moodle بازگردانی شود.
برای بدست آوردن اطلاعات بیشتر در این زمینه لطفا https://docs.moodle.org/dev/Backup_2.0_for_developers و https://docs.moodle.org/dev/Restore_2.0_for_developers را مطالعه کنید.
پوشه DB
access.php
این پوشه جایی است که شما تعریف می کنید چه ویژگی هایی افزونه شما ایجاد خواهد کرد. توجه داشته باشید، اگر شما ویژگی هایی را به این فایل قبل از اینکه پلاگین شما آن ویژگی ها را ایجاد کند، اضافه کنید، باید ورژن را در فایل version.php خود (به شرح زیر) افزایش دهید تا بتوانید آنها را نصب کنید.
یک مثال از این فایل در زیر آورده شده است –
$capabilities = array(
‘mod/certificate:addinstance’ => array(
‘riskbitmask’ => RISK_XSS,
‘captype’ => ‘write’,
‘contextlevel’ => CONTEXT_COURSE,
‘archetypes’ => array(
‘editingteacher’ => CAP_ALLOW,
‘manager’ => CAP_ALLOW
),
‘clonepermissionsfrom’ => ‘moodle/course:manageactivities’
),
);
در Moodle 2.3 یک قابلیت جدید به نام add instance برای همه ماژول های اصلی اضافه شد. مودل بوسیله جستجوی برای «mod / <modname>: addinstance» این قابلیت را دنبال خواهد کرد و اگر این قابلیت ایجاد نشده بود، فرض را بر این می گذارد که کاربر این قابلیت را با یک پیام اشکال زدایی که بیان می کند این قابلیت از دست رفته است نمایش می دهد. برای جلوگیری از این وضعیت، بهتر است این قسمت را به ماژول خود اضافه کنید.
ما همچنین توصیه می کنیم که هر ماژول activity همچنین یک ویژگی “mod / <modname>: view” برای کنترل visibility ( قابل دیدن بودن ) فراهم می کند. اینجا را ببینید.
برای یکسان بودن و سهولت استفاده توصیه می شود از نمونه های اولیه با ویژگی mod/<modname>:view استفاده کنید.
برای کسب اطلاعات بیشتر در مورد اینکه هر ویژگی در آرایه ای از قابلیت ها ، چه معنی دارد، NEWMODULE_Adding_capabilities را ببینید.
events.php
تنظیمات observer (مشاهده کنندگان) برای مانیتورینگ رویداد ها
هنگامی که observer را در جای مناسب خود قرار دادیم، اکنون باید در مورد آن به Moodle اطلاعاتی را بدهیم. که ما این کار را با اضافه کردن یک ورودی در admin / tool / mylog / db / events.php انجام می دهیم.
$observers = array(
array(
‘eventname’ => ‘*’,
‘callback’ => ‘\tool_mylog\log\observer::store’,
‘internal’ => false, // This means that we get events only after transaction commit.
‘priority’ => 1000,
),
);
اطلاعات بیشتر در مورد این فایل در اینجا یافت می شود.
install.xml
این فایل در زمان نصب ماژول شما استفاده می شود که جداول پایگاه داده مرتبط را تعریف می کند. برای هر ماژول، پایگاه داده باید یک جدول اصلی با همان نام ماژول خود داشته باشد. علاوه بر این، جداول پایگاه داده دیگری نیز ممکن است تعریف شود. برای ایجاد فایل XML لطفا XMLDB_editor را ببینید. لطفا توجه داشته باشید که در فایل XML، نام جدول بدون پیشوند config.php ذکر شده است، این مورد به طور خودکار هنگام ایجاد جداول مورد استفاده قرار می گیرد و لازم نیست مشخص شود.
یک مثال از فایل تولید شده توسط XMLDB_editor در زیر آورده شده است – این نمونه شامل ساختار certificate جدول و certificate_issues است:
<?xml version=”1.0″ encoding=”UTF-8″ ?>
<XMLDB PATH=”mod/certificate/db” VERSION=”20120925″ COMMENT=”XMLDB file for Moodle mod/certificate”
xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”
xsi:noNamespaceSchemaLocation=”../../../lib/xmldb/xmldb.xsd”
>
<TABLES>
<TABLE NAME=”certificate” COMMENT=”Defines certificates”>
<FIELDS>
<FIELD NAME=”id” TYPE=”int” LENGTH=”10″ NOTNULL=”true” UNSIGNED=”true” SEQUENCE=”true”/>
<FIELD NAME=”course” TYPE=”int” LENGTH=”10″ NOTNULL=”true” UNSIGNED=”true” DEFAULT=”0″ SEQUENCE=”false” />
<FIELD NAME=”name” TYPE=”char” LENGTH=”255″ NOTNULL=”true” SEQUENCE=”false” />
<FIELD NAME=”intro” TYPE=”text” LENGTH=”small” NOTNULL=”false” SEQUENCE=”false” />
<FIELD NAME=”introformat” TYPE=”int” LENGTH=”4″ NOTNULL=”true” UNSIGNED=”true” DEFAULT=”0″ SEQUENCE=”false” />
<FIELD NAME=”emailteachers” TYPE=”int” LENGTH=”1″ NOTNULL=”true” UNSIGNED=”true” DEFAULT=”0″ SEQUENCE=”false” />
<FIELD NAME=”emailothers” TYPE=”text” LENGTH=”small” NOTNULL=”false” SEQUENCE=”false” />
<FIELD NAME=”savecert” TYPE=”int” LENGTH=”1″ NOTNULL=”true” UNSIGNED=”true” DEFAULT=”0″ SEQUENCE=”false” />
<FIELD NAME=”reportcert” TYPE=”int” LENGTH=”1″ NOTNULL=”true” UNSIGNED=”true” DEFAULT=”0″ SEQUENCE=”false” />
<FIELD NAME=”delivery” TYPE=”int” LENGTH=”3″ NOTNULL=”true” UNSIGNED=”true” DEFAULT=”0″ SEQUENCE=”false” />
<FIELD NAME=”requiredtime” TYPE=”int” LENGTH=”10″ NOTNULL=”true” UNSIGNED=”true” DEFAULT=”0″ SEQUENCE=”false” />
<FIELD NAME=”type” TYPE=”char” LENGTH=”50″ NOTNULL=”true” SEQUENCE=”false” />
<FIELD NAME=”orientation” TYPE=”char” LENGTH=”10″ NOTNULL=”true” SEQUENCE=”false” />
<FIELD NAME=”width” TYPE=”int” LENGTH=”10″ NOTNULL=”true” SEQUENCE=”false” />
<FIELD NAME=”height” TYPE=”int” LENGTH=”10″ NOTNULL=”true” SEQUENCE=”false” />
<FIELD NAME=”backgroundimage” TYPE=”char” LENGTH=”255″ NOTNULL=”true” DEFAULT=”0″ SEQUENCE=”false” />
<FIELD NAME=”timecreated” TYPE=”int” LENGTH=”10″ NOTNULL=”true” UNSIGNED=”true” DEFAULT=”0″ SEQUENCE=”false” />
<FIELD NAME=”timemodified” TYPE=”int” LENGTH=”10″ NOTNULL=”true” UNSIGNED=”true” DEFAULT=”0″ SEQUENCE=”false” />
</FIELDS>
<KEYS>
<KEY NAME=”primary” TYPE=”primary” FIELDS=”id” COMMENT=”Primary key for certificate”/>
</KEYS>
</TABLE>
<TABLE NAME=”certificate_issues” COMMENT=”Info about issued certificates”>
<FIELDS>
<FIELD NAME=”id” TYPE=”int” LENGTH=”10″ NOTNULL=”true” UNSIGNED=”true” SEQUENCE=”true” />
<FIELD NAME=”userid” TYPE=”int” LENGTH=”10″ NOTNULL=”true” UNSIGNED=”true” DEFAULT=”0″ SEQUENCE=”false” />
<FIELD NAME=”certificateid” TYPE=”int” LENGTH=”10″ NOTNULL=”true” UNSIGNED=”true” DEFAULT=”0″ SEQUENCE=”false” />
<FIELD NAME=”timecreated” TYPE=”int” LENGTH=”10″ NOTNULL=”true” UNSIGNED=”true” DEFAULT=”0″ SEQUENCE=”false” />
</FIELDS>
<KEYS>
<KEY NAME=”primary” TYPE=”primary” FIELDS=”id” COMMENT=”Primary key for certificate_issues” />
<KEY NAME=”certificate” TYPE=”foreign” FIELDS=”certificateid” REFTABLE=”certificate” REFFIELDS=”id” />
</KEYS>
</TABLE>
</TABLES>
</XMLDB>
تعدادی فیلد که هسته مودل انتظار دارد در هر جدول اصلی ماژول activity نشان داده شود (یا فقط به عنوان استاندارد اصلی) وجود دارد:
Field name | Properties | Notes |
---|---|---|
id | INT(10), auto sequence | primary key for the table (as any other table in Moodle) |
course | INT(10), foreign key to the course table | id of the course this activity is part of |
name | CHAR(255) | holds the name of the activity module instance |
timemodified | INT(10) | timestamp of when the instance was last modified |
intro | TEXT | standard field to hold the activity’s description (see FEATURE_MOD_INTRO) |
introformat | INT(4) | the format of the text in the intro field |
upgrade.php
این فایل به روز رسانی ماژول برای مطابقت با آخرین نسخه را مدیریت می کند. پس از ایجاد یک ماژول و استفاده از آن در سایت خود (و دیگران)، ممکن است شما بخواهید عملکرد ماژولتان را گسترش دهید. با استفاده از نمونه certificate ( گواهینامه – گواهی)، یک پیشنهاد مطرح شد که یک کد منحصر به فرد برای هر گواهی صادر شده ایجاد شود و اگر تنظیماتی انتخاب شده باشد نمایش داده شود. این به دو فیلد پایگاه داده جدید نیاز دارد، یکی برای ذخیره سازی اینکه آیا “به وجود آورنده یا سازنده” certificate ( گواهینامه – گواهی)،انتخاب کرده است که کد در certificate نمایش داده شود و یا نه و دیگری برای ذخیره کد واقعی برای هر دانش آموز. این جایی است که اسکریپت upgrade.php استفاده می شود. فایل install.xml فقط یک بار اجرا می شود، یعنی زمانی که ماژول شما برای اولین بار نصب می شود، بنابراین اضافه کردن این دو ستون اضافی به این فایل، ساختار پایگاه داده را برای کاربران که قبلا ماژول را نصب کرده اید، تغییر نمی دهد. بنابراین، برای انجام این ارتقا شما باید سه کار را انجام دهید.
- ستون های جدید را به فایل install.xml اضافه کنید تا هر کاربری که ماژول را بعد از این مرحله نصب می کند، ساختار جداول جدید را دریافت کند.
- دستورالعمل های مربوط به فایل upgrade.php را اضافه کنید.
- شماره ورژن را در فایل version.php خود به روز کنید.
در این مثال ما فقط دو ستون جدید را به پایگاه داده اضافه می کنیم، بنابراین می توانیم از XMLDB_editor برای تغییر فایل install.xml استفاده کنیم و مسیر ارتقاء را ایجاد کنیم.
یک نمونه از فایل upgrade.php به شرح زیر است:
function xmldb_certificate_upgrade($oldversion=0) {
if ($oldversion < 2012091800) {
// Add new fields to certificate table.
$table = new xmldb_table(‘certificate’);
$field = new xmldb_field(‘showcode’);
$field->set_attributes(XMLDB_TYPE_INTEGER, ‘1’, XMLDB_UNSIGNED, XMLDB_NOTNULL, null, ‘0’, ‘savecert’);
if (!$dbman->field_exists($table, $field)) {
$dbman->add_field($table, $field);
}
// Add new fields to certificate_issues table.
$table = new xmldb_table(‘certificate_issues’);
$field = new xmldb_field(‘code’);
$field->set_attributes(XMLDB_TYPE_CHAR, ’50’, null, null, null, null, ‘certificateid’);
if (!$dbman->field_exists($table, $field)) {
$dbman->add_field($table, $field);
}
// Certificate savepoint reached.
upgrade_mod_savepoint(true, 2012091800, ‘certificate’);
}
}
هر زمان که ورژن را در فایل version.php تغییر دهید، ماژول Moodle به دنبال مواردی می گردد که باید انجام شود. نسخه ای که در پایگاه داده ذخیره می شود به تابع xmldb_ _upgrade به عنوان متغیر oldversion$ منتقل می شود. در این مثال می توان گفت که نسخه اولیه ۲۰۱۲۰۹۱۶۰۰ بود، از آنجایی که این مقدار کمتر از ۲۰۱۲۰۹۱۸۰۰ است (مقدار جدیدی که در فایل version.php قرار داده ایم) ما کد را در عبارت if اجرا خواهیم کرد که سپس نسخه ای که در پایگاه داده ذخیره شده را به روز رسانی می کند که به این معنی است که این عبارت if هرگز دوباره اجرا نشود. برای جزئیات بیشتر در مورد این موضوع لطفا Upgrade_API را ببینید.
mobile.php
در ورژن Moodle 3.1 جدید است.
این فایل جایی است که Moodle Mobile Remote addons موجود در افزونه را تعریف می کنید.
Moodle Mobile Remote addons ورژن اپلیکیشن موبایلی از افزونه است که زمانی که کاربر به افزونه موجود در اپلیکیشن دسترسی پیدا می کند، بارگزاری می شود.
شما می توانید چندین Mobile add-ons (افزونه موبایل) اضافه کنید. برای هر افزونه شما باید یک نام منحصر به فرد مشخص کنید. (این نام باید منحصر به فرد باشد بنابراین ما توصیه نمی کنیم که از نام های عمومی استفاده کنید، بهترین راه استفاده از نام مولفه افزونه Moodle است که افزونه پشتیبانی خواهد کرد)
نام ها نباید شامل فضاهای خالی (blank spaces) شوند و ما توصیه می کنیم از حروف بزرگ استفاده نکنید.
هر افزودنی که در اینجا ارجاع داده شده است باید به عنوان یک فایل زیپ حاوی کدهای javascript / html / css در افزونه mobile/ folder باشد. نام فایل zip باید همان نام افزونه باشد.
برای مثال زیر، مسیر نام فایل: mobile / mod_certificate.zip است:
$addons = array(
“mod_certificate” => array(
“dependencies” => array(“pdfbuilder”)
),
);
فیلدهای dependencies (وابسته) اختیاری هستند، اگر چندین افزودنی در یک فایل (یا در پلاگین های مختلف) داشته باشید، می توانید وابستگی ها را در اینجا نشان دهید.
برای کسب اطلاعات بیشتر در مورد توسعه افزونه های موبایل،Moodle Mobile Remote addons را مطالعه کنید.
پوشه Lang (زبان)
این فولدر جایی است که شما هر رشته هایی را که در پلاگین خود استفاده می کنید ذخیره می کنید. هر زبان دارای یک پوشه خاص است که باید به منظور استفاده ماژول شما از آن ایجاد شود. در این مورد ما قصد داریم از زبان انگلیسی استفاده کنیم (از آنجا که متاسفانه این تنها زبانی است که من می دانم). پوشه ای با نام en در پوشه lang شما ایجاد می شود که حاوی یک فایل با نام modname> .php> است که ترجمه string های (رشته های) شما را لیست می کند. به عنوان مثال، ماژول شما ممکن است تنظیماتی به نام «تنظیمات کاربر – User preferences» داشته باشد، به جای کدگذاری سخت این اصطلاح در فرم شما، شما از placeholder ای استفاده می کنید که سپس رشته مناسب را طبق زبان مورد استفاده در سایت Moodle شما بازمی گرداند. یک placeholder اجباری برای ماژول هایی به نام pluginname وجود دارد که Moodle هنگام فهرست کردن این ماژول به عنوان یک گزینه برای اضافه کردن به یک دوره و دیگر صفحات مختلف استفاده می کند. برای حفظ استانداردهای Moodle شما باید رشته های خود را به ترتیب حروف الفبا توسط نام placeholder مرتب کنید.
$string[‘pluginname’] = ‘Certificate’;
$string[‘userpreferences’] = ‘User preferences’;
اگر می خواهید ترجمه فرانسوی را اضافه کنید، یک پوشه به نام fr ایجاد کنید و فایل modname> .php> را به آن اضافه کنید.
$string[‘pluginname’] = ‘Certificat’;
$string[‘userpreferences’] = ‘Préférences d\’utilisateur’;
در حال حاضر، هنگام استفاده از رشته “تنظیمات کاربر – User preferences” ما از تابع get-string تابع مودل استفاده خواهیم کرد که رشته مناسب را بسته به زبان مورد استفاده انتخاب می کند و برمی گرداند.
get_string(‘userpreferences’, ‘certificate’);
پوشه Pix
در اینجا شما به سادگی آیکونی را که میخواهید Moodle در کنار نام ماژول شما نشان دهد را ذخیره می کنید. نام فایل باید icon.gif باشد و با رزولوشن ۱۶ * ۱۶ نمایش داده می شود. از این پوشه برای ذخیره تصاویر دیگر که ممکن است از آنها استفاده کنید، نیز می توانید استفاده کنید.
به روز رسانی: از آنجا که فایل های ۲٫۴ SVG با تمام فعالیت های اصلی Moodle معرفی شده است. لطفا برای دیدن جزئیات بیشتر در این مورد به Moodle_icons_2.4 مراجعه کنید.
lib.php
لیست توابعی که ممکن است در lib.php بیش از اندازه استفاده شوند، در NEWMODULE_Documentation # lib.php لیست شده است . موارد ضروری دیگر در زیر ذکر شده است:
function certificate_add_instance($certificate);
function certificate_update_instance($certificate);
function certificate_delete_instance($id);
تابع modname> _add_instance> متغیرها را از فایل mod_form.php (بعدا مورد بحث) به عنوان یک شیء ، زمانی که ابتدا یک فعالیت را ایجاد کردید، و دکمه ارسال را کلیک کردید ، عبور می دهد. این فایل جایی است که شما می توانید این داده ها را بگیرید، هرکاری را که می خواهید با آن انجام دهید و سپس اگر می خواهید آن را به پایگاه داده وارد کنید. این فقط یک بار زمانی که نمونه ماژول برای اولین بار ایجاد می شود، فراخوانی می شود، بنابراین این جا، جایی است که شما باید برای اضافه کردن فعالیت ها منطقی فکر کنید.
تابع modname> _update_instance> متغیرها را از فایل mod_form.php به عنوان یک شیء منتقل می کند هر زمان که شما یک فعالیت را به روز کنید و یا دکمه ارسال را کلیک کنید. شناسه (Id) نمونه ای که در حال ویرایش آن هستید به عنوان ویژگی (attribute) نمونه منتقل می شود که می تواند برای ویرایش هر مقدار موجود در پایگاه داده برای آن مورد استفاده شود.
تابع modname> _delete_instance > شناسه (Id) ماژول شما را منتقل می کند که می توانید از آن برای حذف تمام جداول پایگاه داده مرتبط با آن استفاده کنید. برای مثال، در ماژول certificate (گواهینامه – گواهی) ، Id (شناسه) در جدول certificate منتقل می شود، و سپس برای حذف certificate از پایگاه داده، هر گونه مسائل مربوط به این certificate و هر فایل مرتبط با آن در سیستم فایل استفاده می شود.
mod_form.php
این فایل زمان افزودن / ویرایش یک ماژول به یک دوره استفاده می شود. این فایل شامل مولفه هایی است که در قالب مسئول ایجاد / نصب یک نمونه از ماژول شما نمایش داده می شود. کلاس در فایل باید به شکل mod_ <modname> _mod_form نامیده شود.
if (!defined(‘MOODLE_INTERNAL’)) {
die(‘Direct access to this script is forbidden.’); /// It must be included from a Moodle page
}
require_once($CFG->dirroot.’/course/moodleform_mod.php’);
require_once($CFG->dirroot.’/mod/certificate/lib.php’);
class mod_certificate_mod_form extends moodleform_mod {
function definition() {
global $CFG, $DB, $OUTPUT;
$mform =& $this->_form;
$mform->addElement(‘text’, ‘name’, get_string(‘certificatename’, ‘certificate’), array(‘size’=>’64’));
$mform->setType(‘name’, PARAM_TEXT);
$mform->addRule(‘name’, null, ‘required’, null, ‘client’);
$ynoptions = array(0 => get_string(‘no’),
۱ => get_string(‘yes’));
$mform->addElement(‘select’, ‘usecode’, get_string(‘usecode’, ‘certificate’), $ynoptions);
$mform->setDefault(‘usecode’, 0);
$mform->addHelpButton(‘usecode’, ‘usecode’, ‘certificate’);
$this->standard_coursemodule_elements();
$this->add_action_buttons();
}
}
مثال بالا شامل فایل کامل نیست، فقط به اندازه ای که ایده شما را فراهم کند، کافی است. ابتدا ما یک عنصر متنی با نام «Name» ایجاد می کنیم که مورد نیاز است، بدیهی است که این نام، نام نمونه است. سپس من یک مولفه دیگر ایجاد کردم که این مورد را ذخیره می کند که آیا کاربر می خواهد کد منحصر به فرد صادر شده برای یک کاربر را هنگامی که certificate را دریافت می کند نمایش دهد یا نه، به همراه مقدار پیش فرض ۰ و یک دکمه راهنما که توضیح دهد که این تنظیمات چه کاری انجام می دهد. تابع standard_coursemodule_elements عناصر مشترک برای همه ماژول ها، مانند فیلدهای شرطی را اضافه می کند. تابع add_action_buttons دکمه ارسال و لغو را به فرم اضافه می کند. این داده ها بسته به اینکه آیا شما یک نمونه جدید اضافه کرده اید یا یک مورد جاری را به روز می کنید به modname> _add_instance> یا modname> _update_instance> منتقل می شود . درست مثل هر فرم دیگر در Moodle، شما می توانید اعتبار سنجی (validation) را به این فرم اضافه کنید. برای اطلاعات بیشتر در مورد چگونگی ایجاد اشکال در مودل ، From_API را ببینید.
index.php
این فایل توسط Moodle زمانیکه تمام نمونه های ماژول شما که در یک دوره خاص قرار دارند، با شناسه درس به این اسکریپت منتقل می شود ، لیست می شوند ،مورد استفاده قرار می گیرد. آغاز صفحه باید حاوی موارد زیر باشد –
require_once(‘../../config.php’);
$id = required_param(‘id’, PARAM_INT); // Course ID
// Ensure that the course specified is valid
if (!$course = $DB->get_record(‘course’, array(‘id’=> $id))) {
print_error(‘Course ID is incorrect’);
}
پس از آن شما می توانید لیستی از موارد را که مایل هستید نمایش دهید.
view.php
وقتی یک course طرح بندی صفحات و فعالیت هایش را ارائه می دهد، لینک ها را برای نمایش آنها با استفاده از اسکریپت view.php ایجاد می کند، بنابراین لینک ها مانند <wwwrootofyoursite> / mod / <modname> /view.php؟id=4 خواهد شد، که در آن ۴ شناسه ماژول درس است .برای مثال certificate ، ابتدای صفحه view.php باید مانند زیر باشد-
require_once(‘../../config.php’);
require_once(‘lib.php’);
$id = required_param(‘id’, PARAM_INT); // Course Module ID
if (!$cm = get_coursemodule_from_id(‘certificate’, $id)) {
print_error(‘Course Module ID was incorrect’); // NOTE this is invalid use of print_error, must be a lang string id
}
if (!$course = $DB->get_record(‘course’, array(‘id’=> $cm->course))) {
print_error(‘course is misconfigured’); // NOTE As above
}
if (!$certificate = $DB->get_record(‘certificate’, array(‘id’=> $cm->instance))) {
print_error(‘course module is incorrect’); // NOTE As above
}
شناسه ماژول course به این اسکریپت منتقل می شود و به عنوان id$ تنظیم می شود که سپس برای بازیابی داده های درس و اطلاعات از جدول certificate استفاده می شود که ما می توانیم بعدا به آن بپردازیم.
اگر از Moodle 2.8 و بالاتر استفاده می کنید، راهی بهتری برای رسیدن به این کار با استفاده از یک تابع جدید وجود دارد:
require(‘../../config.php’);
require_once(‘lib.php’);
$id = required_param(‘id’, PARAM_INT);
list ($course, $cm) = get_course_and_cm_from_cmid($id, ‘certificate’);
$certificate = $DB->get_record(‘certificate’, array(‘id’=> $cm->instance), ‘*’, MUST_EXIST);
version.php
فایل version.php مسیر نسخه ی ماژول شما و سایر ویژگی ها مانند اینکه چه نسخه ای از Moodle مورد نیاز است را نگه می دارد. برای دیدن لیست کامل از ویژگی ها لطفا version.php را ببینید.
منبع : سایت رسمی مودل