Frankenstyle (Dev docs)
重要:
このページの内容は更新され、新しいMoodle Developer Resourcesに移行されました。このページに含まれる情報は、もはや最新であるとみなされるべきではありません。 このページを新サイトで閲覧する そして より多くのコンテンツを新サイトに移行するために協力する というのはいかがでしょうか! |
(このページは現在翻訳中です。)
'Frankenstyleコンポーネント名' とは、プラグインの種類とその名前からMoodleプラグインを一意に識別するために使用される命名規則のことです。これらはMoodleのコード全体で使用されます (テーマ内のcssクラス名は顕著な例外です)。
Martin Dougiamas は、Petr Škoda が考案したこの命名法を表す言葉として 'Frankenstyle' を考案しました。
フォーマット
Frankenstyleのコンポーネント名は、プレフィックス、そしてアンダースコアで区切られたフォルダ名を持っています。
- 接頭辞は、プラグインの種類によって決まります。例えば、活動モジュールの接頭辞は mod です。
- 名前は、プラグインのフォルダ名で、常に小文字です。例えば、Quiz (小テスト) の場合は quiz という名前になります。
つまり、小テストモジュールのFrankenstyleコンポーネント名は mod_quiz です。
プラグインタイプ
MoodleでサポートされているすべてのプラグインタイプとそのFrankenstyle接頭辞のリストについては、プラグインタイプページをご覧ください。
あなたのMoodle 2.xのバージョンで決定的なリストを得るには、print_object(get_plugin_types()); の小さなMoodleスクリプトを使用してください。
コアサブシステム
Moodleのサブシステムは、プラグインそのものではなく、core_xxx を使用して参照することができます。ここで、xxx は get_core_subsystems() で定義されるサブシステム名です。
これらは phpdocs の @package パラメータや、 ウェブサービスの関数名で使用されているのを確認できます。コアサブシステムは、lang/en/{subsystemname}.php に格納されたファイルによって、独自の文字列を提供できます。中には、ライブラリやオートロードされたクラスなどのリソースを備えた専用の場所があるものもあります。
コアサブシステム | Frankenstyleコンポーネント名 | 場所 |
---|---|---|
Access | core_access | |
Administration | core_admin | /admin |
Antivirus | core_antivirus | /lib/antivirus |
Authentication | core_auth | /auth |
Conditional availability | core_availability | /availability |
Backup and restore | core_backup | /backup/util/ui |
Badges | core_badges | /badges |
Blocks | core_block | /blocks |
Blogging | core_blog | /blog |
Bulk users operations | core_bulkusers | |
Caching | core_cache | /cache |
Calendar | core_calendar | /calendar |
Cohorts | core_cohort | /cohort |
Comment | core_comment | /comment |
Competency based education | core_competency | /competency |
Completion | core_completion | /completion |
Countries | core_countries | |
Course | core_course | /course |
Currencies | core_currencies | |
Database transfer | core_dbtransfer | |
Debugging | core_debug | |
Text editors | core_editor | /lib/editor |
Education fields | core_edufields | |
Enrol | core_enrol | /enrol |
Error reporting | core_error | |
Favourites | core_favourites | /favourites |
File picker | core_filepicker | |
Files management | core_files | /files |
User filtering | core_filters | |
Forms | core_form | /lib/form |
Grades | core_grades | /grade |
Advanced grading | core_grading | /grade/grading |
Groups | core_group | /group |
Help | core_help | |
Hub | core_hub | |
IMS CC | core_imscc | |
Installer | core_install | |
ISO 6392 | core_iso6392 | |
Language pack configuration | core_langconfig | |
License | core_license | |
Maths library | core_mathslib | |
Media | core_media | |
Messaging | core_message | /message |
MIME types | core_mimetypes | |
MNet | core_mnet | /mnet |
Dashboard | core_my | /my |
User notes | core_notes | /notes |
Page types | core_pagetype | |
Pictures and icons | core_pix | |
Plagiarism | core_plagiarism | /plagiarism |
Plugins management | core_plugin | |
Portfolio | core_portfolio | /portfolio |
Privacy | core_privacy | /privacy |
Course publishing | core_publish | /course/publish |
Question bank engine | core_question | /question |
Ratings | core_rating | /rating |
Site registration | core_register | /admin/registration |
Repository | core_repository | /repository |
RSS | core_rss | /rss |
Roles | core_role | /admin/roles |
Global search | core_search | /search |
Tabular data display/download (deprecated) | core_table | |
Tagging | core_tag | /tag |
Timezones | core_timezones | |
User | core_user | /user |
User key | core_userkey | |
Web service | core_webservice | /webservice |
使用方法
Frankenstyleのコンポーネント名が使用されています:
関数名
すべてのプラグイン関数は、完全な Frankenstyle のプレフィックスで始まる必要があります。後方互換性のために、モジュールはプレフィックスとして modulename_ を使用することもできます。
クラス名
- すべてのコンポーネントクラスは、クラス (自動読み込み) ディレクトリの下に置かれ、そのFrankenstyleの名前空間に属し、自然な名前を持っている必要があります。例: \mod_forum\example
- Frankenstyle接頭辞を使ったクラス名の使用は非推奨になりました (コーディングスタイル を参照)。例: mod_forum_example
定数
すべてのプラグイン定数は、MOD_FORUM_XXXXのように、大文字のFrankenstyleのプレフィックスで始まる必要があります。
テーブル名
プラグインのすべてのテーブル名は、そのFrankenstyle名 (標準的なMoodleテーブルプレフィックスの後) で始まる必要があります。
(このルールの例外は、Moodle活動で、(歴史的な理由により) プラグイン名の前にmod_がありません。)
例: mdl_local_coolreport, mdl_local_coolreport_users
プラグイン設定テーブル
config_plugins テーブルのカラム プラグイン では、Frankenstyle名が使用されます。
ケイパビリティ
プラグインのすべての機能は、_ の代わりに / が付く以外は、Frankenstyleの名前を使用します。
例: mod/quiz:viewattempt
言語ファイル
各プラグイン(活動モジュールを除く)のメイン言語ファイルは、Frankenstyleのコンポーネント名です。
例: /blocks/participants/lang/en/block_participants.php
レンダラ
モジュールサブプラグイン
基本モジュールのコードを変更することなく、モジュールを拡張することが可能です。詳しくはサブプラグインを参照してください。
その他の場所 (TODO)
- phpdocsの@package宣言は、コーディングスタイル#PHPDocを参照してください。
- ウェブサービス関数名
- Moodleプラグインデータベース
出てきたら追加してください。
テーマバリアントの命名
他のテーマの派生品であるテーマには、親テーマのアップグレードではなく、派生品であることを明確に示唆するような名前を付ける必要があります。名前の形式は、標準的なコンポーネントの命名形式に従い、それを拡張する必要があります。つまり、例えばBoost(ブースト)をベースにしたテーマで、コンポーネント名に "boost"という単語を使いたい場合は、次のような名前にする必要があります。
theme_boost_something
例えば、 theme_boost_spring、theme_boost_summer、theme_boost_shiny など。確かに、同じように名前をつけることができます。
theme_something
のように、親名称を繰り返す必要がないためです(例: theme_spring、theme_summer、theme_shiny)。例えば、theme_boost2 は公式 Boost(ブースト) テーマの新バージョンのように見え、投稿テーマの名前としてはふさわしくありません。