flagflag  If you want to see English page, please click "English" Button at Left.
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)
     

トップ   凍結 差分 バックアップ 複製 名前変更 リロード   新規 ページ一覧 単語検索 最終更新   ヘルプ   最終更新のRSS 1.0 最終更新のRSS 2.0 最終更新のRSS Atom
Counter: 1724, today: 1, yesterday: 1
最終更新: 2021-12-28 (火) 02:58:53 (JST) (844d) by iseki

サイト内 検索

ログイン

ユーザー名:

パスワード:


パスワード紛失
新規登録

サブ メニュー

ミニカレンダー

前月2024年 4月翌月
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
<今日>

オンライン状況

75 人のユーザが現在オンラインです。 (7 人のユーザが xpwiki を参照しています。)

登録ユーザ: 0
ゲスト: 75

もっと...

アクセスカウンタ

今日 : 1354013540135401354013540
昨日 : 1169911699116991169911699
総計 : 2330087523300875233008752330087523300875233008752330087523300875
Powered by XOOPS Cube 2.1© 2001-2006 XOOPS Cube Project
Design by XoopsDesign.com