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" -->
を記述して、表示を確認してみます。
今回のモジュールのサンプルコードは現在の時刻を出力するものでしたので、上のキャプチャのように現在の時刻が出力されればモジュールは正しく動作していることになります。