SOY CMSとSOY ShopでHTMLモジュールの見直しを行いました。
HTMLモジュールに関しては共通箇所はHTMLモジュールで管理する - SOY CMSを使ってみようをご覧ください。
HTMLモジュールはPHPで記述されたファイルを読み込み実行することで、HTMLで記述された内容を出力しますが、この時のモジュール用のPHPファイルの書き方は
<?php function soycms_sample_module(string $html, HTMLPage $htmlObj){ ob_start(); echo <<<HTML ここにHTMLのコードを書く HTML; ob_end_flush(); }
のような感じでしたが、
<?php function soycms_sample_module(string $html, HTMLPage $htmlObj){ return <<<HTML ここにHTMLのコードを書く HTML; }
のように保存して、実行もできるようにしました。
このような仕様変更で何が良くなったのか?というと、PHPモジュールで下記のようにHTMLモジュールを呼び出すことが可能になります。
<?php function soycms_sample_php_module(string $html, HTMLPage $htmlObj){ include_once(dirname(__DIR__)."/html/sample_module.php"); return sample_module("", $htmlObj); }
PHPモジュールを自作する - SOY CMSを使ってみよう
この機能により、状況に応じてHTMLモジュールを出し分けたり、複数個のHTMLモジュールをまとめて出力したり、一旦HTMLモジュールを読み込んでおいて、何らかの処理を行った後にHTMLを出力するといったことが可能になります。
今回対応分を含んだパッケージは下記のサイトからダウンロード出来ます。