For the complete documentation index, see llms.txt. This page is also available as Markdown.

プラグインの作成

このガイドでは、Chamilo用の基本的なプラグインの作成について説明します。詳細については、プラグイン開発に関するWikiページを参照してください。

ステップ1:プラグインディレクトリの作成

public/plugin/内にディレクトリを作成します。ディレクトリ名はプラグインの識別子と一致する必要があります:

public/plugin/MyPlugin/

ステップ2:プラグインクラスの定義

src/MyPluginPlugin.phpファイルを作成します。このクラスはPluginを継承し、シングルトンパターンに従います:

<?php

class MyPluginPlugin extends Plugin
{
    protected function __construct()
    {
        $settings = [
            'tool_enable' => 'boolean',
            'api_key'     => 'text',
        ];
        parent::__construct('1.0', 'Your Name', $settings);
    }

    public static function create(): static
    {
        static $instance = null;
        return $instance ??= new static();
    }
}

利用可能な設定タイプ

タイプ
説明

boolean

オン/オフのチェックボックス

text

1行のテキスト入力

select

ドロップダウンメニュー(options配列を提供)

wysiwyg

リッチテキストエディタ

html

生のHTMLフィールド

checkbox

チェックボックス

user

ユーザーセレクター

selectタイプの設定の場合:

実行時に設定にアクセス:

ステップ3:plugin.phpファイルの作成

プラグインのルートにあるplugin.phpファイルは必須です。このファイルでは$plugin_infoを割り当てる必要があります:

ステップ4:インストールおよびアンインストールスクリプトの作成

install.php

uninstall.php

DoctrineのSchemaToolを使用して、クラス内でスキーマの作成/削除を実装します。

ステップ5:翻訳の追加

lang/内に言語ファイルを作成し、ロケールコードを使用します(例:en_US.phpfr_FR.phpes_ES.php)。フォールバックはen_US.phpです。

翻訳には$plugin->get_lang('key')を介してアクセスします。

ステップ6:表示領域を介したコンテンツの注入

プラグインは、Vueフロントエンドの18の定義済み領域にHTMLを注入できます。クラス内でrenderRegion()をオーバーライドします:

利用可能な領域には以下が含まれます:content_bottomcontent_topcourse_tool_pluginfooter_centerfooter_leftfooter_rightheader_centerheader_leftheader_mainheader_rightlogin_bottomlogin_topmain_bottommain_topmenu_administratormenu_bottommenu_toppre_footer

ステップ7:プラットフォームイベントへの反応(オプション)

プラグインは、Symfonyのイベントサブスクライバを使用してプラットフォームイベントに反応できます。src/EventSubscriber/内にEventSubscriber.phpで終わるファイルを作成すると、PluginEventSubscriberPassを介して自動的に登録されます。

利用可能なイベントの完全なリストについては、src/CoreBundle/Event/Events.phpを参照してください(ユーザー、コース、セッション、LP、演習、ポートフォリオ、認証など)。

ステップ8:ライフサイクルフック

プラットフォームのアクションに応答するために、プラグインクラス内で以下のメソッドをオーバーライドしてください:

メソッド
トリガーされるタイミング

install()

プラグインが有効化されたとき

uninstall()

プラグインが削除されたとき

performActionsAfterConfigure()

管理者が設定フォームを保存したとき

course_settings_updated(array $values)

コースレベルの設定が変更されたとき

validateCourseSetting(string $variable)

コース設定が保存されたとき(拒否する場合は false を返す)

doWhenDeletingUser(int $userId)

ユーザーが削除されたとき

doWhenDeletingCourse(int $courseId)

コースが削除されたとき

doWhenDeletingSession(int $sessionId)

セッションが削除されたとき

ステップ9:有効化

管理者としてログインし、プラグイン管理に移動して、作成したプラグインを見つけ、有効化をクリックしてください。

ヒント

  • 既存のプラグインを参考にするpublic/plugin/HelloWorld/public/plugin/TopLinks/ はシンプルな参考例として役立ちます

  • 翻訳を使用する — ユーザー向けのテキストには常に lang/ システムを利用してください

  • アンインストール時にクリーンアップする — アンインストールスクリプトでデータベーステーブルや設定を削除してください

  • 有効化状態を確認する — イベントサブスクライバーでは、常に $this->plugin->isEnabled() を呼び出してロジックを実行する前に確認してください

最終更新

役に立ちましたか?