新規ページでヘッダーフッターが表示されない?
PHPコードを修正して新規ページを追加した場合、デフォルトテンプレートではヘッダーフッターが表示されません。
これはデフォルトテンプレートで次のようなIF文を使ってヘッダーフッターが読み込まれているからです。
{# ▼Head COLUMN #} {% if PageLayout.Head %} {# ▼上ナビ #} {{ include('block.twig', {'Blocks': PageLayout.Head}) }} {# ▲上ナビ #} {% endif %} {# ▲Head COLUMN #}
{% if PageLayout.Head %}でPageLayoutオブジェクトが登録されてない場合は、ヘッダーを読み込まないように書かれています。
PHPコードから直接FrontControllerProviderなどにURLを登録してページ作成した場合、対応するPageLayoutがDBに登録されていないないためにヘッダーフッターが表示されないということです。
ということはデータベースでdtb_page_layoutへに1行データを追加してやるとヘッダーフッターが表示されるようになります。
次のSQLを実行するとOKです。’ページ名’, ‘ページURL’, ‘テンプレート名’は実際のものに変更してください。
INSERT INTO dtb_page_layout (device_type_id, page_name, url, file_name, edit_flg, author, description, keyword, update_url, create_date, update_date, meta_robots) VALUES (10, 'ページ名', 'ページURL', 'テンプレート名', 2, null, null, null, null, NOW(), NOW(), 'noindex');
「MYページ/お届け先編集」
なおバージョン3.0.10に含まれるデフォルトテンプレートでは「MYページ/お届け先編集」のページがデータベースに登録されておらず、ヘッダーフッターが表示されないようです。
この問題を解消するには次のSQLを実行してください。
INSERT INTO dtb_page_layout (device_type_id, page_name, url, file_name, edit_flg, author, description, keyword, update_url, create_date, update_date, meta_robots) VALUES (10, 'MYページ/お届け先編集', 'mypage_delivery_edit', 'Mypage/delivery_edit', 2, null, null, null, null, NOW(), NOW(), 'noindex');
EC-CUBEに関するお問い合わせ
[重要]現在公式にセキュリティサポートが切れていないPHPは8.1以上、MySQLは8.0以上で、対応しているEC-CUBEバージョンは4.2以上です。古いEC-CUBEを使っている方は適切なタイミングでバージョンアップをご検討ください。