新規ページでヘッダーフッターが表示されない?

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');

ECCUBE制作トップへ

EC-CUBEカスタマイズに関するお問い合わせはこちら


    [重要]現在公式にセキュリティサポートが切れていないPHPは8.1以上、MySQLは8.0以上で、対応しているEC-CUBEバージョンは4.2以上です。古いEC-CUBEを使っている方は適切なタイミングでバージョンアップをご検討ください。

    EC-CUBEバージョンアップ