PHPモジュールを自作する(SOY Shop版)

PHPモジュールはSOY Shopの公開側のページでPHPを安全に実行する為の仕組みです。

これから使用する内容はサーバにリモートアクセスして直接ファイルを作成してモジュールを構築していく方法で、管理画面からモジュールを作成する場合は共通箇所をPHPモジュールで管理する(SOY Shop)(要PHP) - SOY Shopを使ってみようを参考にしてください。


PHPモジュールは /ドキュメントルート/ショップID/.module/ 以下に作成します。

モジュールを作成する時はモジュールのコンセプトを示すディレクトリ名/モジュール名.phpの規則を満たすようなファイル名にします。


例えば、サイトパーツのテストモジュールにする場合、

/ドキュメントルート/ショップID/.module/parts/test.php

にします。


このモジュールを公開側のページで使用する場合は、

<!-- shop:module="parts.test" -->ここにモジュールで記載した内容を出力する<!-- /shop:module="parts.test" -->

になります。

shop:moduleで指定する値はディレクトリ名.拡張子なしファイル名になります。




今回は今の時間を出力するモジュールを作成してみます。


/ドキュメントルート/サイトID/.module/parts/test.php を開き、下記のコードを書きます。

<?php
function soyshop_test(string $html, HTMLPage $htmlObj){
	echo date("Y-m-d H:i:s");
}
?>

関数名は必ずsoyshop_モジュール名(今回はtest)にします。

この時、引数には$htmlと$htmlObjを指定するようにしてください。

$htmには<!-- shop:module="parts.test" -->で囲った箇所のHTMLのコードが格納され、$htmlObjにはモジュール内で使用するメソッドを持ったクラス(HTMLPageクラスを継承したクラス)が格納されています。

https://github.com/inunosinsi/SOY2/blob/master/SOY2HTML/SOY2HTMLComponents/HTMLPage.class.php


関数が作成出来たら、後は自由にPHPのコードを記述して良いです。




今回作成したモジュールが意図通りの動作になるかを確認します。

どこかしらのページのテンプレートに

<!-- shop:module="parts.test" -->ここにモジュールで記載した内容を出力する<!-- /shop:module="parts.test" -->

を記述して、表示を確認してみます。


soycms_php_module_first_step


今回のモジュールのサンプルコードは現在の時刻を出力するものでしたので、上のキャプチャのように現在の時刻が出力されればモジュールは正しく動作していることになります。

同じカテゴリーの記事