質問 > フロント機能 > トップページをランディングページとして使いたい |
フロント機能
フラット表示 | 前のトピック | 次のトピック |
投稿者 | スレッド |
---|---|
468 |
投稿日時: 2019/2/11 12:10
対応状況: −−−
|
神 登録日: 2008/10/26 居住地: 投稿: 3217 |
Re: トップページをランディングページとして使いたい まず、ECCUBEの仕様として、
商品詳細ページのURLを見ていただくと https://******/products/detail/2 のように「/2」の部分で商品を特定して、DBから情報を取り出し 商品詳細ページを表示しております。 さらにセキュリティの関連でカート投入時に、 DBから取り出し→表示→表示を行ったページからのカート投入かどうかとチェックする仕組みが存在しています。 (<input type="hidden" id="_token" name="_token" value="ランダムな文字列" />の記述がポイントになります) 見知らぬ外部からの攻撃を防ぐ仕組みなのですが、 この仕組みが原因でtwigをコピーするだけでは、商品一覧や商品詳細ページ以外から、 カート投入を行う事が出来ません。 (PHP側の処理も追加する必要があります) /src/Eccube/Controller/ProductController.php 261行目以降の記述を参考に /src/Eccube/Controller/TopController.php function index() に移植されててみては如何でしょうか? ただ商品詳細ページでは商品情報をDBから取得する処理は、アノテーションで指定しているようですので、 トップページではリポジトリクラスを利用して商品情報を取得すれば良いかと思います。 $Product = $this->productRepository->findWithSortedClassCategories($productId←ここには対象の商品IDを指定); あと、TopController.phpにはコンストラクタが記述されていないので ProductController.phpのfunction __construct()を 参考に$this->productRepositoryにProductRepositoryクラスが格納されるように追記する必要があるかと思います。 弊社で、ECCUBE3用にその辺りを簡単に実現できるプラグインをリリースしているのですが、4系版は現在準備中です。
|
フラット表示 | 前のトピック | 次のトピック |
題名 | 投稿者 | 日時 |
---|---|---|
トップページをランディングページとして使いたい | yamatanien | 2019/2/10 22:24 |
» Re: トップページをランディングページとして使いたい | 468 | 2019/2/11 12:10 |