PHPモジュールでCSSのインライン化(SOY Shop版)

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

になります。

同じカテゴリーの記事