Moodle Programing †[edit]
Document[edit]
Development[edit]
- $cm = get_coursemodule_from_instance('mdlds', $minstance->id, $course->id, false, MUST_EXIST); // コースモジュール
- $mcontext = context_module::instance($cm->id); // モジュールコンテキスト
- $ccontext = context_course::instance($course->id); // コースコンテキスト
- $context = context_block::instance($this->instance->id); // ブロックコンテキスト
POST, GET †[edit]
- required_param('course', PARAM_INT);
- optional_param('mode', default, PARAM_ALPHA);
isadmin()
- see jbxl_moodle_tools.php
isteacher($course->id)
- see jbxl_moodle_tools.php
isguest()
function require_login †[edit]
- ログインしているかどうかをチェックする.
- 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).
データベース作成 †[edit]
大域変数, オブジェクト †[edit]
- $CFG->wwwroot // top url
- $CFG->prefix
ひたすら HTML を書く. †[edit]
new flexible_table('...') を使う. †[edit]
- lib/tablelib.php
- $table = new flexible_table('modulename-view-'.$courseid);
- $data = ....
- $table->add_data($data);
- $table->print_html();
new html_table() と html_writer::table() を使用する. †[edit]
class moodle_url †[edit]
$base_url = new moodle_url('/mod/apply/'.$action_file);
$base_url->params(array('id'=>$id, 'courseid'=>$courseid));
$SESSION を使う †[edit]
- $SESSION->sample = new stdClass();
- $SESSION->sample->XXXX = 色々セット
- submit 後に $SESSION->sample->XXXX をチェック.
settings.php †[edit]
- admin_setting_configtext
- admin_setting_configcheckbox
- admin_setting_configselect
メッセージの送信 †[edit]
messsage_send() †[edit]
$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 のバージョン番号を上げて,アップデート
Capability †[edit]
- RISK_SPAM - ユーザーがサイトに目に見えるコンテンツを追加したり,他のユーザーにメッセージを送ることができます.
- RISK_PERSONAL - 個人情報へのアクセス - 例:ユーザー詳細のバックアップ,プロフィールの非公開情報(隠しメール)等;本来は isteacher() で保護されています.
- RISK_XSS - ユーザーがクリーンアップされていないコンテンツ (アクティブなコンテンツを含む HTML と保護されていないファイルの両方) を送信することができます.
- RISK_CONFIG - ユーザーがグローバルな設定を変更できる,アクションにサニティチェックがない
- RISK_MANAGETRUST - 他ユーザーのトラストビットマスクを管理する.
- RISK_DATALOSS - 容易に復元できない大量の情報を破壊する可能性があります.
- Capability が正常に反映されない場合は,一旦 db/access.php の設定部分をコメントアウトして,更新する(version を上げる)
- その後コメントを外して,更新する(version を上げる)
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
Table of LOG Data †[edit]
External Service †[edit]
- version.php
- block_XXX.php
- lib.php (Option)
- settings.php (Option)
- Network機能を使用するときに使用する識別ID.Local の場合は 1