#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');

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 ページ一覧 検索 最終更新   ヘルプ   最終更新のRSS