全ページがシステムエラーになった

Glass を適用している間は起きません。 レイアウトに置いたブロックの twig が欠けても、その部分が出ないだけで、ページは表示されます。

起きるのは、Glass 以外のテンプレートを適用しているときです。ブロックとレイアウトはデータベース側のデータなので、テンプレートを切り替えても残ります。いっぽうブロックの twig はテンプレートのフォルダの中にあるため、切り替えた先に同じファイルが無いと、本体がそこで止まります。

元のテンプレートに戻したあと、トップページ以外がエラーになるとき。 ログに Unable to find template "Block/recommend_product_block.twig" と出ていれば、おすすめ商品管理プラグインが原因です。このプラグインは有効化のとき、自分のブロックの twig をそのとき適用していたテンプレートのフォルダ にだけコピーします。Glass を使っている間に有効化すると、戻した先(標準テンプレート)には同じファイルがありません。トップページだけ無事なのは、このブロックが下層ページ用レイアウトにだけ置かれているからです。

直し方は 3 つあります。

  • おすすめ商品ブロックを使わないなら、[レイアウト管理] で外す
  • 使うなら、標準テンプレートを適用した状態でプラグインを無効化 → 有効化する(コピー処理がそのテンプレートに対して走ります)
  • ファイルを手でコピーする
cp app/Plugin/Recommend42/Resource/template/Block/recommend_product_block.twig app/template/default/Block/recommend_product_block.twig

コピーしたあとはキャッシュを削除してください。