EC-CUBE4:ページ限定スタイルシートの記載方法

EC-CUBE4:ページ限定スタイルシートの記載方法

EC-CUBE4でスタイルシートを書く方法

基本のスタイルシートはここにあります。

 /EC-CUBEフォルダ/html/template/default/assets/css/style.css

style.css を変更してしまうとページ全体が変わってしまいますが、このページだけ採用したいstyleってありますよね。

プライバシーポリシーでは<style>が書けない

この備忘録を記載しようと思ったきっかけがプライバシーポリシーに<style>を書いたら出たエラー。

エラー Twigのフォーマットが正しくありません。A template that extends another one cannot include content outside Twig blocks. Did you forget to put the content inside a {% block %} tag at line 11?

プライバシーポリシーの行間が狭かったため、ここだけ広げたく思いスタイルシートを埋め込もうと思ったのですが、出来ないと言われるのです。

【コンテンツ管理>ページ管理】の各スクリプトでは同様にエラーで更新できない状態。

【コンテンツ管理>ブロック管理】の各スクリプトでは問題なく<style>を受け入れてくれます。

コンテンツ管理>ページ管理 ではスタイルシートの宣言が必要

結論を言うとブロックの明記が必要の様で、htmlをはじめスクリプトは全て{% block %} {% endblock %}の中に記載する必要があります。スタイルシートも{% block main %} {% endblock %}の中に記載すれば問題なく更新できます。

上記エラーが出たのは整理整頓をしようと私が{% block main %}の中に書かなかったからの様です。

以下の記載方法をすると整理整頓しながらエラーも返りません。

  • スタイルシート:{% block stylesheet %} <style>hogehoge</style> {% endblock %}
  • javaスクリプト:{% block javascript %} <script>hogehoge</script> {% endblock %}
  • HTML本体:{% block main %} hogehoge {% endblock %}

ブロック内に <?PHP でPHPを差し込めるか実験したところ、こちらの動作は×でした。

まとめ

ブロック内に記載すればスタイルシートもJAVAも受け入れるとなると、カスタマイズ性は高いと言えます。

調べたところ、ちゃんと勉強すればPHPも差しもめる様子。※参考記事参照
そこまで出来る様になれば、集計や抽出をPHPに任せられるので夢は広がりますよね。

参考記事A:[PHP] EC-CUBEでテンプレート内からPHPを呼び、Smartyの変数を参照する方法。
参考記事B:[PHP]Twigテンプレートの実践的な構成と作り方