プラグインの書き方

SOY CMSのプラグインは

/CMSインストールディレクトリ/common/site_include/plugin/

以下に配置されています。

https://github.com/inunosinsi/soycms/tree/master/cms/common/site_include/plugin


今回は管理画面のプラグイン管理で自作プラグインのアイコンの表示までを見ていきます。

作成するプラグインはプラグインIDがplugin_baseを作成してみます。


最初にプラグインのファイルを作成します。

/CMSインストールディレクトリ/common/site_include/plugin/plugin_base/plugin_base.php

ファイルの作成の順序はプラグインIDと同名のディレクトリを作成し、そのディレクトリに同名のPHPファイルを作成します。

作成したファイルに下記のコードを記述します。

plugin_base.php

<?php

class PluginBasePlugin{

	// プラグインIDはファイル名と同名にすると良いです
	const PLUGIN_ID = "plugin_base";

	function getId(){
		return self::PLUGIN_ID;
	}

	// プラグインの詳細
	function init(){
		CMSPlugin::addPluginMenu(self::PLUGIN_ID, array(
			// プラグイン名を記載します
			"name" => "プラグインの基本構造",
			// /CMSインストールディレクトリ/common/domain/cms/Plugin.class.phpを参考にして種別を指定します
			"type" => Plugin::TYPE_NONE,
			// プラグインの説明を記載します(任意)
			"description" => "",
			// 開発者名を記載します(任意)
			"author" => "",
			// プラグインの説明が記載されているサイトのURLを記載します(任意)
			"url" => "",
			// 開発者のメールアドレスを記載します
			"mail" => "",
			// バージョンを記載します
			"version" => "1.0"
		));
		
		// 当プラグインが有効であるかを調べる
		if(CMSPlugin::activeCheck(self::PLUGIN_ID)){
			if(defined("_SITE_ROOT_")){
				// 公開側ページの方で動作する拡張ポイントで使用したいものを追加する
			
			}else{
				// 管理画面側の方で動作する拡張ポイントで使用したいものを追加する
				
			}
		}
	}

	// CMSにプラグインを認識させるためのメソッド
	public static function register(){
		$obj = CMSPlugin::loadPluginConfig(self::PLUGIN_ID);
		if(!$obj) $obj = new PluginBasePlugin();
		CMSPlugin::addPlugin(self::PLUGIN_ID, array($obj, "init"));
	}
}

PluginBasePlugin::register();

ファイルを保存した後にSOY CMSの管理画面のプラグイン管理のページを開くと、プラグインの基本構造というプラグインのアイコンが追加されます。

プラグインを自作する際はディレクトリ名、ファイル名、クラス名(PluginBasePlugin)、プラグインIDとCMSPlugin::addPluginMenuで指定するプラグインの詳細を変更すれば良いです。


下記のURLにプラグイン開発で実際に使用できるファイルがあります。

https://github.com/inunosinsi/soycms/blob/master/cms/common/site_include/plugin/plugin_base/plugin_base.php

同じカテゴリーの記事