#author("2023-08-29T03:34:11+00:00","default:iseki","iseki")
** Functions [#k7ec9430]
*** Permission [#s588d5f8]
**** function require_login [#h9bd199e]
- ログインしているかどうかをチェックする.
- lib/moodlelib.php
require_login($courseorid=NULL, $autologinguest=true, $cm=NULL, $setwantsurltome=true, $preventredirect=false)
- この関数を呼ばない場合,contextlevel は CONTEXT_SYSTEM (10) になる.
- $cm が NULL の場合, contextlevel は CONTEXT_COURSE (50) になる.
- $cm が NULL でない場合,contextlevel は CONTEXT_MODULE (70) になる.
-- contextlevel が CONTEXT_MODULE の場合,管理ブロック(settings) にモジュールの管理メニューが dock される (lib/navigationlib.php).
*** 管理ブロック(settings) [#m88701a1]
**** feedback_extend_settings_navigation [#w74f7953]
- lib.php に記述.
- 管理ブロック(settings) にメニューを追加する.(see feedback モジュール)
- モジュール名_supports() 関数で,メニューを制御可能
*** Log [#f845c3e7]
**** function add_to_log [#oa0bd9a5]
- lib/moodlelib.php
function add_to_log($courseid, $module, $action, $url='', $info='', $cm=0, $user=0)
*** Course [#p086fc72]
**** function get_coursemodule_from_id [#ta601390]
- get_coursemodule_from_id($dbname, $id)
-- $dbname : モジュール名
-- $id : モジュールのインスタンスID
$cm = get_coursemodule_from_id('altwiki', 60);
print_r($cm);
[id] => 60 モジュールオブジェクトのインスタンスID (Moodle全体で一意的)
[course] => 2 コースID
[module] => 56 モジュールID
[instance] => 2 そのモジュール内でのインスタンスID (モジュール内で一意的.データベースのID)
[section] => 2
[idnumber] =>
[added] => 1371440189
[score] => 0
[indent] => 0
[visible] => 1
[visibleold] => 1
[groupmode] => 0
[groupingid] => 0
[groupmembersonly] => 0
[completion] => 0
[completiongradeitemnumber] =>
[completionview] => 0
[completionexpected] => 0
[availablefrom] => 0
[availableuntil] => 0
[showavailability] => 0
[showdescription] => 0
[name] => ALT2
[modname] => altwiki
** Classes [#l3c965cb]
*** File Storage Class [#d0e8dc19]
**** class file_storage [#yd2cad53]
- lib/filestorage/file_storage.php
- array get_area_files($contextid, $component, $filearea, $itemid=false, $sort="itemid, filepath, filename", $includedirs=true);
- bool delete_area_files($contextid, $component = false, $filearea = false, $itemid = false);
**** get_file_storage() [#jea0bc0f]
- lib/moodlelib.php
- file_storage クラスのインスタンスを生成
$fs = get_file_storage();
**** $fs->get_area_files() [#k38d2a71]
- 格納ディレクトリの情報オブジェクトの配列を得る.
-- ディレクトリが A/B/C/D/ の場合.通常 A はコンテキストID.
$files = $fs->get_area_files(A, B, C, D);
-- 使用例
$files = $fs->get_area_files($context->id, 'mod_altwiki', 'attachments', $resourceid);
- 格納ファイルの名前を得る.ただし,カレントディレクトリ '.' を含む.
foreach ($files as $file) {
echo $file->get_name();
}
*** URL [#s7dee984]
**** class moodle_url [#w114432f]
- lib/weblib.php
$base_url = new moodle_url('/mod/apply/'.$action_file);
$base_url->params(array('id'=>$id, 'courseid'=>$courseid));
*** Table [#nde5260c]
**** class flexible_table [#v0568220]
- lib/tablelib.php
** 大域変数 [#re854caf]
*** OUTPUT [#zcacb98a]
- http://docs.moodle.org/dev/Output_renderers
- lib/outputrenderers.php
**** $OUTPUT->single_button [#c4cb52dd]
/**
* Returns a form with a single button.
*
* @param string|moodle_url $url
* @param string $label button text
* @param string $method get or post submit method
* @param array $options associative array {disabled, title, etc.}
* @return string HTML fragment
*/
public function single_button($url, $label, $method='post', array $options=null);
**** $OUTPUT->action_link($url, $icon_url, new popup_action('click', $url)); [#v320cb14]
*** DB [#z14aa49f]
- lib/dml/moodle_database.php
**** $DB->insert_record [#ua6949a2]
- record_id insert_record($table, $dataobject, $returnid=true, $bulk=false);
$apply_id = $DB->insert_record('apply', $apply);
**** $DB->update_record [#h3d4dcda]
- bool update_record($table, $dataobject, $bulk=false);
update_record('apply', $apply);
**** $DB->delete_records [#kbebef5f]
- bool delete_records($table, array $conditions=null)
$ret = $DB->delete_records('event', array('modulename'=>'apply', 'instance'=>$apply_id));
**** $DB->get_record [#ddb2fca9]
- object get_record($table, array $conditions, $fields='*', $strictness=IGNORE_MISSING)
$item = $DB->get_record('apply_item', array('id'=>$apply_id));
$name = $item->name;
**** $DB->get_records [#d0deebeb]
- array(object) get_records($table, array $conditions=null, $sort='', $fields='*', $limitfrom=0, $limitnum=0)
$params = array('apply_id'=>$item->apply_id);
$items = $DB->get_records('apply_item', $params, 'position');
foreach ($items as $item) {
$name = $item->name;
......
**** $DB->get_records_select [#w11aa7e9]
- array(object) get_records_select($table, $select, array $params=null, $sort='', $fields='*', $limitfrom=0, $limitnum=0)
- $select の ''?'' に 配列 $params の要素が対応(並び順)
- $select 中の '':変数名'' に $params の各要素が対応
- name が結果の配列のキーになる(重複があるとワーニング)
$templates = $DB->get_records_select('apply_template', 'course=? OR ispublic=1', array($course->id), 'name');
**** $DB->get_records_sql [#kb220662]
- array(object) get_records_sql($sql, array $params=null, $limitfrom=0, $limitnum=0)
- $sql の ''?'' に 配列 $params の要素が対応(並び順)
- $sql 中の '':変数名'' に $params の各要素が対応
$where = 'WHERE as.id=av.submit_id AND av.version=0 AND as.apply_id=:apply_id AND ai.id=av.item_id ';
$sql = 'SELECT MAX(ai.position) FROM {apply_submit} as, {apply_value} av, {apply_item} ai '.$where;
$params = array();
$params['apply_id'] = $apply_id;
$lastpos = $DB->get_field_sql($sql, $params);
**** $DB->execute [#lb197e37]
- array(object) execute($sql, array $params=null)
- $sql の ''?'' に 配列 $params の要素が対応(並び順)
- $sql 中の '':変数名'' に $params の各要素が対応
** Block [#p1b83bad]
** Module [#n7884dd2]
*** 構成 [#pf5c4303]
- version.php
- mod_form.php
-- form の定義, definition():設定画面, BDと名前を合わせる?
- lib.php
-- ライブラリ
- index.php
- view.php オプション
- setting.php オプション
**** SITEID [#bb71472e]
- Network機能を使用するときに使用する識別ID.Local の場合は 1
*** Memo [#dd0cfac2]
mod_form.php: a form to setup/update a module instance
version.php: defines some meta-info and provides upgrading code
pix/icon.gif: a 16x16 icon for the module
db/install.xml: an SQL dump of all the required db tables and data
index.php: a page to list all instances in a course
view.php: a page to view a particular instance
lib.php: any/all functions defined by the module should be in here.
constants should be defined using MODULENAME_xxxxxx
functions should be defined using modulename_xxxxxx
There are a number of standard functions:
modulename_add_instance()
modulename_update_instance()
modulename_delete_instance()
modulename_user_complete()
modulename_user_outline()
modulename_cron()
modulename_print_recent_activity()
- $loginfo = "$attsid,$prvmethod,$method,$prvstate,$state";
** Form [#w899e9f2]
- MoodleQuickForm::registerElementType('advcheckbox', "$CFG->libdir/form/advcheckbox.php", 'MoodleQuickForm_advcheckbox');
- MoodleQuickForm::registerElementType('button', "$CFG->libdir/form/button.php", 'MoodleQuickForm_button');
- MoodleQuickForm::registerElementType('cancel', "$CFG->libdir/form/cancel.php", 'MoodleQuickForm_cancel');
- MoodleQuickForm::registerElementType('searchableselector', "$CFG->libdir/form/searchableselector.php", 'MoodleQuickForm_searchableselector');
- MoodleQuickForm::registerElementType('checkbox', "$CFG->libdir/form/checkbox.php", 'MoodleQuickForm_checkbox');
- MoodleQuickForm::registerElementType('date_selector', "$CFG->libdir/form/dateselector.php", 'MoodleQuickForm_date_selector');
- MoodleQuickForm::registerElementType('date_time_selector', "$CFG->libdir/form/datetimeselector.php", 'MoodleQuickForm_date_time_selector');
- MoodleQuickForm::registerElementType('duration', "$CFG->libdir/form/duration.php", 'MoodleQuickForm_duration');
- MoodleQuickForm::registerElementType('editor', "$CFG->libdir/form/editor.php", 'MoodleQuickForm_editor');
- MoodleQuickForm::registerElementType('filemanager', "$CFG->libdir/form/filemanager.php", 'MoodleQuickForm_filemanager');
- MoodleQuickForm::registerElementType('filepicker', "$CFG->libdir/form/filepicker.php", 'MoodleQuickForm_filepicker');
- MoodleQuickForm::registerElementType('grading', "$CFG->libdir/form/grading.php", 'MoodleQuickForm_grading');
- MoodleQuickForm::registerElementType('group', "$CFG->libdir/form/group.php", 'MoodleQuickForm_group');
- MoodleQuickForm::registerElementType('header', "$CFG->libdir/form/header.php", 'MoodleQuickForm_header');
- MoodleQuickForm::registerElementType('hidden', "$CFG->libdir/form/hidden.php", 'MoodleQuickForm_hidden');
- MoodleQuickForm::registerElementType('htmleditor', "$CFG->libdir/form/htmleditor.php", 'MoodleQuickForm_htmleditor');
- MoodleQuickForm::registerElementType('modgrade', "$CFG->libdir/form/modgrade.php", 'MoodleQuickForm_modgrade');
- MoodleQuickForm::registerElementType('modvisible', "$CFG->libdir/form/modvisible.php", 'MoodleQuickForm_modvisible');
- MoodleQuickForm::registerElementType('password', "$CFG->libdir/form/password.php", 'MoodleQuickForm_password');
- MoodleQuickForm::registerElementType('passwordunmask', "$CFG->libdir/form/passwordunmask.php", 'MoodleQuickForm_passwordunmask');
- MoodleQuickForm::registerElementType('questioncategory', "$CFG->libdir/form/questioncategory.php", 'MoodleQuickForm_questioncategory');
- MoodleQuickForm::registerElementType('radio', "$CFG->libdir/form/radio.php", 'MoodleQuickForm_radio');
- MoodleQuickForm::registerElementType('recaptcha', "$CFG->libdir/form/recaptcha.php", 'MoodleQuickForm_recaptcha');
- MoodleQuickForm::registerElementType('select', "$CFG->libdir/form/select.php", 'MoodleQuickForm_select');
- MoodleQuickForm::registerElementType('selectgroups', "$CFG->libdir/form/selectgroups.php", 'MoodleQuickForm_selectgroups');
- MoodleQuickForm::registerElementType('selectwithlink', "$CFG->libdir/form/selectwithlink.php", 'MoodleQuickForm_selectwithlink');
- MoodleQuickForm::registerElementType('selectyesno', "$CFG->libdir/form/selectyesno.php", 'MoodleQuickForm_selectyesno');
- MoodleQuickForm::registerElementType('static', "$CFG->libdir/form/static.php", 'MoodleQuickForm_static');
- MoodleQuickForm::registerElementType('submit', "$CFG->libdir/form/submit.php", 'MoodleQuickForm_submit');
- MoodleQuickForm::registerElementType('submitlink', "$CFG->libdir/form/submitlink.php", 'MoodleQuickForm_submitlink');
- MoodleQuickForm::registerElementType('tags', "$CFG->libdir/form/tags.php", 'MoodleQuickForm_tags');
- MoodleQuickForm::registerElementType('text', "$CFG->libdir/form/text.php", 'MoodleQuickForm_text');
- MoodleQuickForm::registerElementType('textarea', "$CFG->libdir/form/textarea.php", 'MoodleQuickForm_textarea');
- MoodleQuickForm::registerElementType('url', "$CFG->libdir/form/url.php", 'MoodleQuickForm_url');
- MoodleQuickForm::registerElementType('warning', "$CFG->libdir/form/warning.php", 'MoodleQuickForm_warning');