2: 2012-04-14 (土) 09:39:30 iseki |
現: 2021-12-28 (火) 02:58:53 iseki |
| ** Moodle Programing [#ne05fea1] | | ** Moodle Programing [#ne05fea1] |
| + | - http://docs.moodle.org/dev/Main_Page |
| + | - http://docs.moodle.org/dev/Plugins |
| + | - Grade: http://docs.moodle.org/dev/Grades |
| + | #br |
| + | *** 構成 [#ae7a2d84] |
| + | - [[module>./module]] |
| + | - [[block>./block]] |
| + | #br |
| + | **** SITEID [#bb71472e] |
| + | - Network機能を使用するときに使用する識別ID.Local の場合は 1 |
| + | #br |
| + | |
| + | *** Context [#y458b451] |
| + | |
| + | **** module [#ea2a3051] |
| + | - $cm = get_coursemodule_from_instance('mdlds', $minstance->id, $course->id, false, MUST_EXIST); // コースモジュール |
| + | -- $cm = [[get_coursemodule_from_id()>./get_coursemodule_from_id]] も使用可 |
| + | |
| + | #br |
| + | - $mcontext = context_module::instance($cm->id); // モジュールコンテキスト |
| + | - $ccontext = context_course::instance($course->id); // コースコンテキスト |
| + | #br |
| + | |
| + | **** block [#d1bf2099] |
| + | - $context = context_block::instance($this->instance->id); // ブロックコンテキスト |
| + | #br |
| + | |
| + | *** POST, GET [#i893cfed] |
| + | - required_param('course', PARAM_INT); |
| + | - optional_param('mode', default, PARAM_ALPHA); |
| + | -- [[PARAM_*>./PARAM_]] |
| + | #br |
| + | *** 権限用 [#zb75d538] |
| + | - %%isadmin()%% |
| + | -- see jbxl_moodle_tools.php |
| + | - %%isteacher($course->id)%% |
| + | -- see jbxl_moodle_tools.php |
| + | - %%isguest()%% |
| + | -- isguestuser() |
| + | #br |
| + | |
| + | **** 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). |
| + | #br |
| + | #br |
| + | |
| + | *** DB [#s4f04e49] |
| + | - lib/dmllib.php |
| + | |
| + | - $DB ([[データベースアクセス>./DB]]) |
| + | |
| + | #br |
| + | |
| + | **** データベース作成 [#j28bdff8] |
| + | - XMLDB |
| + | -- http://dev.moodle.org/mod/resource/view.php?id=48 |
| + | -- blocks/mod にディレクトリを作成し,その中に dbディレクトリを作る. |
| + | -- 「サイト管理」→「その他」→「XMLDBエディタ」 でデータベース定義用の db/install.xml を作成する. |
| + | #br |
| + | |
| + | #br |
| + | |
| + | *** 大域変数, オブジェクト [#sf24d85f] |
| + | |
| + | **** $CFG [#f86d1bbe] |
| + | - $CFG->wwwroot // top url |
| + | - $CFG->prefix |
| + | #br |
| + | |
| + | **** [[$PAGE>./PAGE]] [#v32dd795] |
| + | |
| + | #br |
| + | |
| + | **** [[$USER>./USER]] [#r9aac91e] |
| + | |
| + | #br |
| + | |
| + | **** [[$OUTPUT>./OUTPUT]] [#w18e0d7c] |
| + | #br |
| + | |
| + | **** $_POST [#jf217b7d] |
| + | - ポストデータが入る |
| + | - empty($_POST) |
| + | #br |
| + | |
| + | **** [[block_base>./3.x/block_base]] [#b12b2a90] |
| + | #br |
| + | |
| + | |
| + | *** HTML出力 [#b3217a4d] |
| + | **** $OUTPUT [#ie6e5cb2] |
| + | - [[$OUTPUT>./OUTPUT]] を使う |
| + | #br |
| + | |
| + | **** ひたすら HTML を書く. [#z2ce95da] |
| + | - 自由度,無限大.または,ひたすら土方仕事. |
| + | #br |
| + | |
| + | **** new flexible_table('...') を使う. [#p0c7ce11] |
| + | - lib/tablelib.php |
| + | -- $table = new flexible_table('modulename-view-'.$courseid); |
| + | -- $data = .... |
| + | -- $table->add_data($data); |
| + | -- $table->print_html(); |
| + | #br |
| + | |
| + | **** new html_table() と html_writer::table() を使用する. [#f65c703f] |
| + | - 簡単だが,自由度が無い. |
| + | - 表のヘッダを別に定義できる. |
| + | - [[html_writer>./html_writer]] |
| + | #br |
| + | |
| + | |
| + | |
| + | *** 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)); |
| + | #br |
| + | |
| + | |
| + | |
| + | *** Form [#sfd0317f] |
| + | - [[Form 一覧>./Form]] |
| + | #br |
| + | **** Submit [#ef12e78e] |
| + | - <input type="hidden" name="sesskey" value="<?php echo sesskey(); ?>" /> |
| + | if (data_submitted()) { |
| + | if (!confirm_sesskey()) { |
| + | print_error('sesskey_error', 'mdlds', $this->action_url); |
| + | } |
| + | } |
| + | |
| + | **** $SESSION を使う [#peb48006] |
| + | - $SESSION->sample = new stdClass(); |
| + | - $SESSION->sample->XXXX = 色々セット |
| + | - submit 後に $SESSION->sample->XXXX をチェック. |
| + | #br |
| + | |
| + | *** [[File Storage Class>./File Storage]] [#ge284a6b] |
| + | #br |
| + | |
| + | *** メッセージ [#pb1c2054] |
| + | - get_string( , ) |
| + | #br |
| + | |
| + | *** settings.php [#m49c050d] |
| + | - admin_setting_configtext |
| + | - admin_setting_configcheckbox |
| + | - admin_setting_configselect |
| + | #br |
| + | *** メッセージの送信 [#y65975cb] |
| + | **** messsage_send() [#t988f73f] |
| + | $eventdata = new stdClass(); |
| + | $eventdata->name = 'processed'; |
| + | $eventdata->component = 'mod_apply'; |
| + | $eventdata->userfrom = $fuser; // id またはオブジェクト |
| + | $eventdata->userto = $user; // id またはオブジェクト |
| + | $eventdata->subject = $postsubject; |
| + | $eventdata->fullmessage = $posttext; |
| + | $eventdata->fullmessageformat = FORMAT_PLAIN; |
| + | $eventdata->fullmessagehtml = $posthtml; |
| + | $eventdata->smallmessage = ''; |
| + | $eventdata->notification = 1; |
| + | // |
| + | message_send($eventdata); |
| + | |
| + | - name の ''processed'' に対応した messageprovidersを db/messages.php に追加 |
| + | |
| + | $messageproviders = array ( |
| + | /// Submitting a apply |
| + | 'submission' => array ( |
| + | ), |
| + | |
| + | 'processed' => array ( |
| + | ) |
| + | ); |
| + | - moodle のバージョン番号を上げて,アップデート |
| + | #br |
| + | |
| + | *** Capability [#i8cec55a] |
| + | - RISK_SPAM - ユーザーがサイトに目に見えるコンテンツを追加したり,他のユーザーにメッセージを送ることができます. |
| + | - RISK_PERSONAL - 個人情報へのアクセス - 例:ユーザー詳細のバックアップ,プロフィールの非公開情報(隠しメール)等;本来は isteacher() で保護されています. |
| + | - RISK_XSS - ユーザーがクリーンアップされていないコンテンツ (アクティブなコンテンツを含む HTML と保護されていないファイルの両方) を送信することができます. |
| + | - RISK_CONFIG - ユーザーがグローバルな設定を変更できる,アクションにサニティチェックがない |
| + | - RISK_MANAGETRUST - 他ユーザーのトラストビットマスクを管理する. |
| + | - RISK_DATALOSS - 容易に復元できない大量の情報を破壊する可能性があります. |
| + | |
| + | + Capability が正常に反映されない場合は,一旦 db/access.php の設定部分をコメントアウトして,更新する(version を上げる) |
| + | + その後コメントを外して,更新する(version を上げる) |
| + | |
| + | #br |
| + | |
| + | *** ログ [#q8c98d5f] |
| + | - %%lib/moodlelib.php%% |
| + | - %%function add_to_log($courseid, $module, $action, $url='', $info='', $cm=0, $user=0)%% |
| + | |
| + | - 2.6 から add_to_log() は deprecated |
| + | - event log を使う |
| + | - see [[event log>./event log]] |
| + | #br |
| + | |
| + | **** Table of LOG Data [#h7179fc9] |
| + | - http://docs.moodle.org/dev/Migrating_log_access_in_reports |
| + | - mdl_logstore_standard_log |
| + | MariaDB [moodle_db]> show columns from mdl_logstore_standard_log; |
| + | +-------------------+--------------+------+-----+---------+----------------+ |
| + | | Field | Type | Null | Key | Default | Extra | |
| + | +-------------------+--------------+------+-----+---------+----------------+ |
| + | | id | bigint(10) | NO | PRI | NULL | auto_increment | |
| + | | eventname | varchar(255) | NO | | | | |
| + | | component | varchar(100) | NO | | | | |
| + | | action | varchar(100) | NO | | | | |
| + | | target | varchar(100) | NO | | | | |
| + | | objecttable | varchar(50) | YES | | NULL | | |
| + | | objectid | bigint(10) | YES | | NULL | | |
| + | | crud | varchar(1) | NO | | | | |
| + | | edulevel | tinyint(1) | NO | | NULL | | |
| + | | contextid | bigint(10) | NO | | NULL | | |
| + | | contextlevel | bigint(10) | NO | | NULL | | |
| + | | contextinstanceid | bigint(10) | NO | | NULL | | |
| + | | userid | bigint(10) | NO | MUL | NULL | | |
| + | | courseid | bigint(10) | YES | MUL | NULL | | |
| + | | relateduserid | bigint(10) | YES | | NULL | | |
| + | | anonymous | tinyint(1) | NO | | 0 | | |
| + | | other | longtext | YES | | NULL | | |
| + | | timecreated | bigint(10) | NO | MUL | NULL | | |
| + | | origin | varchar(10) | YES | | NULL | | |
| + | | ip | varchar(45) | YES | | NULL | | |
| + | | realuserid | bigint(10) | YES | | NULL | | |
| + | +-------------------+--------------+------+-----+---------+----------------+ |
| + | 21 rows in set (0.00 sec) |
| + | #br |
| + | |
| + | ** External Service [#t7bddd11] |
| + | *** WebService [#k3d3d384] |
| + | - db/services.php |
| + | -- db/access.php |
| + | - externallib.php |
| + | -- classes/...._webservice_handler.php |
| + | #br |
| + | |
| + | |
| + | ** Version [#g43ada84] |
| + | - [[3.x>./3.x]] |
| + | - [[2.7>./2.7]] |
| + | - [[2.4>./2.4]] |
| + | - [[2.2>./2.2]] |
| + | - [[1.x→2.x>./1.x→2.x]] |
| - [[1.9>./1.9]] | | - [[1.9>./1.9]] |
- | - [[2.x>./2.x]] | + | #br |
- | - [[1.9→2.x>./1.9→2.x]] | + | |
| + | ** Files [#m4e06bae] |
| + | *** Block [#x3645934] |
| + | - version.php |
| + | - block_XXX.php |
| + | - lib.php (Option) |
| + | - settings.php (Option) |
| + | #br |
| + | |
| + | ** List [#w6e8f55e] |
| + | #ls2 |
| #br | | #br |