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]
- $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
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 を上げる)
has_capability[edit]
- get_user_roles
SELECT ra.*, r.name, r.shortname FROM {role_assignments} ra, {role} r, {context} c WHERE ra.userid = ? AND ra.roleid = r.id AND ra.contextid = c.id AND ra.contextid = ? ORDER BY c.contextlevel DESC, r.sortorder ASC
Array ( [0] => 160 [1] => 1537 )
</pre>
*** ログ [#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]]
**** 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)
** Files [#m4e06bae]
*** Block [#x3645934]
- version.php
- block_XXX.php
- lib.php (Option)
- settings.php (Option)
** Tips
*** SITEID [#bb71472e]
- Network機能を使用するときに使用する識別ID.Local の場合は 1
** External Service [#t7bddd11]
*** WebService [#k3d3d384]
- db/services.php
-- db/access.php
- externallib.php
-- classes/...._webservice_handler.php
** List [#w6e8f55e]
#ls2
#br