今回はプラグイン毎の詳細画面へのリンクの拡張ポイントのsoyshop.info.phpを紹介します。

SOY Shopプラグインの拡張ポイントについて


soyshop.info.phpを導入することで、


soyshop_info2


管理画面の設定ページの下部にある拡張設定にプラグイン詳細用のリンクが表示されたり、


後日紹介するsoyshop.config.phpで生成された


soyshop_info


soyshop_info1


各種プラグインのプラグイン詳細ページにリンクが表示されます。


はじめにインターフェースを確認してみる。

/soyshop/webapp/src/logic/plugin/extensions/soyshop.info.php

class SOYShopInfoPageBase implements SOY2PluginAction{

	/**
	 * @return string
	 * 各種プラグインの詳細画面と設定ページの拡張設定にリンクが出力されます
	 */
	function getPage(){
		return "";
	}
}

getPageメソッドで<a href="****">*****</a>の形式の文字列を返すことで、

冒頭で紹介した箇所にリンクが出力されます。


実際のコードで書き方を見てみます。

PAY.JPクレジットカード支払いモジュール(ID:payment_pay_jp)のsoyshop.info.phpのソースコードを例にして読んでみると

/soyshop/webapp/src/module/plugins/payment_pay_jp/soyshop.info.php


class PayJpInfo extends SOYShopInfoPageBase{

	function getPage($active = false){
		if($active){
			return '<a href="'.SOY2PageController::createLink("Config.Detail?plugin=payment_pay_jp").'">PAY.JPクレジットカード支払いの設定画面へ</a>';
		}else{
			return "";
		}
	}

}
SOYShopPlugin::extension("soyshop.info", "payment_pay_jp", "PayJpInfo");

最初の行のif($active)で$activeにはモジュールがインストールされているか?のフラグであるため、PAY.JPクレジット支払いモジュールがインストールされていれば、次の行を実行します。


次の行では、<a href="****">***</a>の形で返していますが、URLの生成時に見慣れない処理が入っています。


SOY2PageController::createLink("Config.Detail?plugin=payment_pay_jp")ですが、

このコードにより後日紹介するプラグイン毎の詳細ページへのリンクを生成します。


プラグイン毎の詳細ページのURLは、

http://ドメイン/CMSインストールディレクトリ/soyshop/index.php/Config/Detail?plugin=プラグインID

になり、

SOY2PageController::createLink()では、上記のindex.php以下のパスをドット区切りで指定することで、

どのような環境でも適切なURLのパスを組み立てることができます。


SOY2PageController::createLink()は今回の拡張ポイントだけではなく、

先日紹介したsoyshop.admin.top.phpのgetLinkメソッド内でも良く使用されています。

管理画面の新着に項目を追加する拡張ポイントsoyshop.admin.top.php