バージョン選択

フォーラム

メニュー

オンライン状況

83 人のユーザが現在オンラインです。 (72 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 83
もっと...

サイト内検索

質問 > フロント機能 > 【404エラー not found】カスタマイズ レイアウト ブロック 読み込み error.twig ヘッダ フッタ リダイレクト

フロント機能

新規スレッドを追加する

フラット表示 前のトピック | 次のトピック
投稿者 スレッド
erukun
投稿日時: 2022/5/4 8:32
対応状況: 保留
一人前
登録日: 2021/2/22
居住地: 国内
投稿: 118
Re: 【404エラー not found】カスタマイズ レイアウト ブロック 読み込み error.twig ヘッダ フッタ リダイレクト
3系エラーページのカスタマイズ

3系だとDBにアクセスさせないとあります。当然DBだからリスク有るし4系もその精神を継承されているんでしょうか。。。
当然DBに頼らない設計をしようよって事なのでしょうね。


いずれにせよ、
TwigInitializeListener.php
Pageに紐づくLayoutにDeviceTypeが一致するLayoutがない場合はPCのレイアウトを探す


public function setFrontVariables(GetResponseEvent $event)
    {
        $request = $event->getRequest();
        /** @var \Symfony\Component\HttpFoundation\ParameterBag $attributes */
        $attributes = $request->attributes;
        $route = $attributes->get('_route');
        if ($route == 'user_data') {
            $routeParams = $attributes->get('_route_params', []);
            $route = isset($routeParams['route']) ? $routeParams['route'] : $attributes->get('route', '');
        }

        $type = DeviceType::DEVICE_TYPE_PC;
        if ($this->mobileDetector->isMobile()) {
            $type = DeviceType::DEVICE_TYPE_MB;
        }

        // URLからPageを取得
        /** @var Page $Page */
        $Page = $this->pageRepository->getPageByRoute($route);

        /** @var PageLayout[] $PageLayouts */
        $PageLayouts = $Page->getPageLayouts();

        // Pageに紐づくLayoutからDeviceTypeが一致するLayoutを探す
        $Layout = null;
        foreach ($PageLayouts as $PageLayout) {
            if ($PageLayout->getDeviceTypeId() == $type) {
                $Layout = $PageLayout->getLayout();
                break;
            }
        }

        // Pageに紐づくLayoutにDeviceTypeが一致するLayoutがない場合はPCのレイアウトを探す
        if (!$Layout) {
            log_info('fallback to PC layout');
            foreach ($PageLayouts as $PageLayout) {
                if ($PageLayout->getDeviceTypeId() == DeviceType::DEVICE_TYPE_PC) {
                    $Layout = $PageLayout->getLayout();
                    break;
                }
            }
        }

        // 管理者ログインしている場合にページレイアウトのプレビューが可能
        if ($request->get('preview')) {
            $is_admin = $request->getSession()->has('_security_admin');
            if ($is_admin) {
                $Layout = $this->layoutRepository->get(Layout::DEFAULT_LAYOUT_PREVIEW_PAGE);

                $this->twig->addGlobal('Layout', $Layout);
                $this->twig->addGlobal('Page', $Page);
                $this->twig->addGlobal('title', $Page->getName());

                return;
            }
        }

        if ($Layout) {
            // lazy loadを制御するため, Layoutを取得しなおす.
            $Layout = $this->layoutRepository->get($Layout->getId());
        } else {
            // Layoutのデータがない場合は空のLayoutをセット
            $Layout = new Layout();
        }



で処理落ちしDBアクセス失敗しているので


https://github.com/EC-CUBE/ec-cube/blob/4.0/src/Eccube/Controller/UserDataController.php#L63


public function index(Request $request, $route)
    {
        $Page = $this->pageRepository->findOneBy(
            [
                'url' => $route,
                'edit_type' => Page::EDIT_TYPE_USER,
            ]
        );

        if (null === $Page) {
            throw new NotFoundHttpException();
        }

        $file = sprintf('@user_data/%s.twig', $Page->getFileName());

        $event = new EventArgs(
            [
                'Page' => $Page,
                'file' => $file,
            ],
            $request
        );
        $this->eventDispatcher->dispatch(EccubeEvents::FRONT_USER_DATA_INDEX_INITIALIZE, $event);

        return $this->render($file);
    }
}




まで情報が渡っていないのかなと思いました。。。
フラット表示 前のトピック | 次のトピック


題名 投稿者 日時
   【404エラー not found】カスタマイズ レイアウト ブロック 読み込み error.twig ヘッダ フッタ リダイレクト erukun 2022/5/1 15:39
   » Re: 【404エラー not found】カスタマイズ レイアウト ブロック 読み込み error.twig ヘッダ フッタ リダイレクト erukun 2022/5/4 8:32

 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は88,858名です
総投稿数は109,996件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2313
5
umebius
2085
6
yuh
1819
7
h_tanaka
1646
8
red
1570
9
mcontact
1294
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.