flagflag  
Page Top

構成 anchor.png

Page Top
SITEID anchor.png
  • Network機能を使用するときに使用する識別ID.Local の場合は 1
     
Page Top

Context anchor.png

Page Top
module anchor.png
  • $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); // コースコンテキスト
     
Page Top
block anchor.png
  • $context = context_block::instance($this->instance-​​>id); // ブロックコンテキスト
     
Page Top

POST, GET anchor.png

  • required_param('course', PARAM_INT);
  • optional_param('mode', default, PARAM_ALPHA);
Page Top

権限用 anchor.png

  • isadmin()
    • see jbxl_moodle_tools.php
  • isteacher($course->id)
    • see jbxl_moodle_tools.php
  • isguest()
    • isguestuser()
       
Page Top
function require_login anchor.png
  • ログインしているかどうかをチェックする.
  • 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).
       
       
Page Top

DB anchor.png

  • lib/dmllib.php
 
Page Top
データベース作成 anchor.png
  • XMLDB
    • http://dev.moodle.org/mod/resource/view.​php?id=48
    • blocks/mod にディレクトリを作成し,その中に dbディレクトリを作る.
    • 「サイト管理」→「その他」→「XMLDBエディタ」 でデータベース定義用の db/install.xml を作成する.
       
 
Page Top

大域変数, オブジェクト anchor.png

Page Top
$CFG anchor.png
  • $CFG->wwwroot // top url
  • $CFG->prefix
     
Page Top
$PAGE anchor.png
 
Page Top
$USER anchor.png
 
Page Top
$OUTPUT anchor.png
 
Page Top
$_POST anchor.png
  • ポストデータが入る
  • empty($_POST)
     
Page Top

HTML出力 anchor.png

Page Top
$OUTPUT anchor.png
Page Top
ひたすら HTML を書く. anchor.png
  • 自由度,無限大.または,ひたすら土方仕事.
     
Page Top
new flexible_table('...') を使う. anchor.png
  • lib/tablelib.php
    • $table = new flexible_table('modulename-view-'.$cours​eid);
    • $data = ....
    • $table->add_data($data);
    • $table->print_html();
       
Page Top
new html_table() と html_writer::table() を使用する. anchor.png
  • 簡単だが,自由度が無い.
  • 表のヘッダを別に定義できる.
  • html_writer
     
Page Top

URL anchor.png

Page Top
class moodle_url anchor.png
  • lib/weblib.php
$base_url = new moodle_url('/mod/apply/'.$action_file);
$base_url->params(array('id'=>$id, 'courseid'=>$courseid));
 
Page Top

Form anchor.png

Page Top
Submit anchor.png
  • <input type="hidden" name="sesskey" value="<?php echo sesskey(); ?>" />
          if (data_submitted()) {
               if (!confirm_sesskey()) {
                   print_error('sesskey_error', 'mdlds', $this->action_url);
               }
           }
Page Top
$SESSION を使う anchor.png
  • $SESSION->sample = new stdClass();
  • $SESSION->sample->XXXX = 色々セット
  • submit 後に $SESSION->sample->XXXX をチェック.
     
Page Top

メッセージ anchor.png

  • get_string( , )
     
Page Top

settings.php anchor.png

  • admin_setting_configtext
  • admin_setting_configcheckbox
  • admin_setting_configselect
     
Page Top

メッセージの送信 anchor.png

Page Top
messsage_send() anchor.png
   $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 のバージョン番号を上げて,アップデート
     
Page Top

Capability anchor.png

  • RISK_SPAM - ユーザーがサイトに目に見えるコンテンツを追加したり,他のユーザーにメッセージを送ることができます.
  • RISK_PERSONAL - 個人情報へのアクセス - 例:ユーザー詳細のバックアップ,プロフィールの非公開情報(隠しメール)等;本来は isteacher() で保護されています.
  • RISK_XSS - ユーザーがクリーンアップされていないコンテンツ (アクティブなコンテンツを含む HTML と保護されていないファイルの両方) を送信することができます.
  • RISK_CONFIG - ユーザーがグローバルな設定を変更できる,アクションにサニティチェックがない
  • RISK_MANAGETRUST - 他ユーザーのトラストビットマスクを管理する.
  • RISK_DATALOSS - 容易に復元できない大量の情報を破壊する可能性があります.
  1. Capability が正常に反映されない場合は,一旦 db/access.php の設定部分をコメントアウトして,更新する(version を上げる)
  2. その後コメントを外して,更新する(version を上げる)
 
Page Top

ログ anchor.png

  • 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
     
Page Top
Table of LOG Data anchor.png
  • 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)
     
Page Top

External Service anchor.png

Page Top

WebService anchor.png

  • db/services.php
    • db/access.php
  • externallib.php
    • classes/...._webservice_handler.php
       
Page Top

Version anchor.png

Page Top

Files anchor.png

Page Top

Block anchor.png

  • version.php
  • block_XXX.php
  • lib.php (Option)
  • settings.php (Option)
     

Front page   Freeze Diff Backup Copy Rename Reload   New List of Pages Search Recent changes   Help   RSS of recent changes (RSS 1.0) RSS of recent changes (RSS 2.0) RSS of recent changes (RSS Atom)
Counter: 1733, today: 2, yesterday: 0
Last-modified: 2021-12-28 (Tue) 02:58:53 (JST) (858d) by iseki

Site Search

Login

Username:

Password:


Lost Password?
Register now!!

Sub Menu

mini Calendar

Last MonthMay 2024Next Month
Su Mo Tu We Th Fr Sa
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Today

Who's Online

96 user(s) are online (9 user(s) are browsing xpwiki)

Members: 0
Guests: 96

more...

Access Counter

Today : 5101510151015101
Yesterday : 1753317533175331753317533
Total : 2346824423468244234682442346824423468244234682442346824423468244
Powered by XOOPS Cube 2.1© 2001-2006 XOOPS Cube Project
Design by XoopsDesign.com