PHPモジュールを使って、CSSのインライン化を行ってみます。
今回の説明ではサイトIDをsiteにして話を進めます。
始めに公開側ページのテンプレートにcms:moduleのタグを追加します。
<!-- shop:module="css.inline" --><link rel="stylesheet" href="/shop/css/style.css"><!-- /shop:module="css.inline" -->
続いて、上記のモジュールのタグに該当するファイルを作成します。
/ドキュメントルート/shop/.module/css/inline.php
inline.phpのファイルに下記のコードを記述します。
<?php function soyshop_inline(string $html, HTMLPage $htmlObj){ // CSSの読み込み用の便利な関数群を読み込んでおく if(!function_exists("soyshop_compile_scss")) SOY2::import("base.func.css", ".php"); $path = _SITE_ROOT_ . "/css/style.css"; echo "<style>".soyshop_compress_css_by_filepath($path)."</style>\n"; } ?>
これでCSSのインライン化は終了です。
style.cssに記述された内容を圧縮した後に公開側ページのHTMLに挿入します。
ちなみに便利な関数群のファイルは
/ドキュメントルート/CMSインストールディレクトリ/soyshop/src/base/func/css.php