ページ内コンテンツ
Moodle Programing
構成
- module
- block
module
- $cm = get_coursemodule_from_instance('mdlds', $minstance->id, $course->id, false, MUST_EXIST); // コースモジュール
- $cm = get_coursemodule_from_id() も使用可
- $mcontext = context_module::instance($cm->id); // モジュールコンテキスト
- $ccontext = context_course::instance($course->id); // コースコンテキスト
権限用
isadmin()- see jbxl_moodle_tools.php
isteacher($course->id)- see jbxl_moodle_tools.php
isguest()- isguestuser()
- isguestuser()
function require_login
- ログインしているかどうかをチェックする.
- 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).
- contextlevel が CONTEXT_MODULE の場合,管理ブロック(settings) にモジュールの管理メニューが dock される (lib/navigationlib.php).
データベース作成
- XMLDB
- http://dev.moodle.org/mod/resource/view.php?id=48
- blocks/mod にディレクトリを作成し,その中に dbディレクトリを作る.
- 「サイト管理」→「その他」→「XMLDBエディタ」 でデータベース定義用の db/install.xml を作成する.
$OUTPUT
- $OUTPUT を使う
new flexible_table('...') を使う.
- lib/tablelib.php
- $table = new flexible_table('modulename-view-'.$courseid);
- $data = ....
- $table->add_data($data);
- $table->print_html();
new html_table() と html_writer::table() を使用する.
- 簡単だが,自由度が無い.
- 表のヘッダを別に定義できる.
- html_writer
class moodle_url
- lib/weblib.php
$base_url = new moodle_url('/mod/apply/'.$action_file); $base_url->params(array('id'=>$id, 'courseid'=>$courseid));
Submit
- <input type="hidden" name="sesskey" value="<?php echo sesskey(); ?>" />
if (data_submitted()) { if (!confirm_sesskey()) { print_error('sesskey_error', 'mdlds', $this->action_url); } }
$SESSION を使う
- $SESSION->sample = new stdClass();
- $SESSION->sample->XXXX = 色々セット
- submit 後に $SESSION->sample->XXXX をチェック.
messsage_send()
$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
- RISK_SPAM - ユーザーがサイトに目に見えるコンテンツを追加したり,他のユーザーにメッセージを送ることができます.
- RISK_PERSONAL - 個人情報へのアクセス - 例:ユーザー詳細のバックアップ,プロフィールの非公開情報(隠しメール)等;本来は isteacher() で保護されています.
- RISK_XSS - ユーザーがクリーンアップされていないコンテンツ (アクティブなコンテンツを含む HTML と保護されていないファイルの両方) を送信することができます.
- RISK_CONFIG - ユーザーがグローバルな設定を変更できる,アクションにサニティチェックがない
- RISK_MANAGETRUST - 他ユーザーのトラストビットマスクを管理する.
- RISK_DATALOSS - 容易に復元できない大量の情報を破壊する可能性があります.
- Capability が正常に反映されない場合は,一旦 db/access.php の設定部分をコメントアウトして,更新する(version を上げる)
- その後コメントを外して,更新する(version を上げる)
ログ
lib/moodlelib.phpfunction 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
- 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)
List
- Moodle/Programming/1.9
- Moodle/Programming/1.x→2.x
- Moodle/Programming/2.2
- Moodle/Programming/2.4
- Moodle/Programming/2.7
- Moodle/Programming/3.x
- Moodle/Programming/3.x/block_base
- Moodle/Programming/DB
- Moodle/Programming/event log
- Moodle/Programming/File Storage
- Moodle/Programming/Form
- Moodle/Programming/get_coursemodule_from_id
- Moodle/Programming/html_writer
- Moodle/Programming/module
- Moodle/Programming/OUTPUT
- Moodle/Programming/PAGE
- Moodle/Programming/PARAM_
- Moodle/Programming/USER
Counter: 1811,
today: 3,
yesterday: 1
最終更新: 2021-12-28 (火) 02:58:53 (JST) (986d) by iseki