バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > フロント機能 > 特集ページを作りたい

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
c-fox
投稿日時: 2017/11/18 3:30
対応状況: −−−
新米
登録日: 2017/10/14
居住地:
投稿: 6
特集ページを作りたい
▼テンプレート
[EC-CUBE] 3.0.15 インストール
[レンタルサーバ] さくらのレンタルサーバ スタンダード
[OS] Windows7 64bit Ultimate SP1
[PHP] 5.6
[データベース] MySQL 5.5
[WEBサーバ]
[ブラウザ] Google Chrome
[導入プラグインの有無] なし
[カスタマイズの有無] フォルダ(ディレクトリ)の配置変更
[現象]
まず、やりたいことですが、トップページのリンクバナーから各特集ページに遷移させて、特集ページには例えばクリスマス特集だった場合、商品の検索ワードに「クリスマス」と登録されている商品全てを一覧表示させたいです。
特集ページなだけに、単に検索して表示したような形にしたくないので、新規ページを作成してヘッダー画像や特集説明の下に一覧を表示するようにしたいので、おこなったことは以下です。

① 管理画面から新規ページの作成
② 新規画面のmain部分にヘッダー画像を配置
③ デフォルトの商品一覧ページのitem_listの部分だけを②の下にコピペ
④ XmasControllerの作成
  *indexメソッド内にDBへの命令を書こうとしているがこれがわからない(Doctrin?がわからない)
⑤ FrontControllerに
  $c->match('/user_data/xmas','\Eccube\Controller\XmasController::index')->bind('user_data_xmas');
と追記

④の部分だけではないとは思いますが、わからないところだらけで初歩的な部分でつまずいています。

どうか皆様のご助力お願いいたします。
468
投稿日時: 2017/11/18 10:17
対応状況: −−−
登録日: 2008/10/26
居住地:
投稿: 3217
Re: 特集ページを作りたい
ECCUBEで新しいページを作る方法は、主に以下の2つがあると考えているのですが、
新しいページを作る作業が少し混合してしまっているように思われます。

1.管理画面のページ管理から新しいページを作る
UserControllerを介して、twigを表示する動きとなるので
簡易的なHTMLページしか作れない。
(そのままではデータベースのデータを取得したりする事ができない。)
レイアウトブロックが有効。

2.Controllerクラスを新規追加
基本何でも出来るが、
ルーティングを追加したり(symfonyの知識が必要)、
レイアウトブロックを利用したい場合、
dtb_page_layoutにレコードを追加する必要がある。

提示いただいた手順を見ていると、
1.と2.がごちゃ混ぜになっているように思えます。
(わざと後者の[dtb_page_layoutにレコードを追加する]部分を
 管理画面のページ管理から行われているのであれば、長々と申し訳ないです。
 ⑤のルーティングは問題無く、動いていますか?)

質問いただいているDBへの命令部分ですが、
商品一覧の処理が参考になると思います。

/src/Eccube/Controller/ProductController.php 83行目
$qb = $app['eccube.repository.product']->getQueryBuilderBySearchData($searchData);
※$searchDataは画面からPOSTされた検索条件の入力値です。



/src/Eccube/Repository/ProductRepository.php 97行目
function getQueryBuilderBySearchData()内で、$qbを組み立てています。
※$qbはQuertyBuilderのインスタンスを格納します。

ここの処理がDBからデータを取得する条件を組み立てる参考になると思います。



/src/Eccube/Controller/ProductController.php 95行目
$pagination = $app['paginator']()->paginate(..省略..)
※ここでページネーターを介して、
 DBよりレコードのエンティティのコレクション(配列)を取得しています。
※SQLは引数の$qbや現ページ、1ページあたりの表示件数を元に組み立てられ、実行されていると思います。

今回のご要望であれば、クリスマス用の$qbを組み立てる処理を
新たにProductRepository.php内に追加し、
それを呼び出せば解決するのではないかと思います。


----------------
株式会社シロハチ
■ECCUBE2系、3系構築カスタマイズご相談ください。
EC-CUBE3マニュアル
blog

c-fox
投稿日時: 2017/11/18 16:26
対応状況: 確認中
新米
登録日: 2017/10/14
居住地:
投稿: 6
Re: 特集ページを作りたい
シロハチ様
早々のご回答ありがとうございます。

そもそもSymfonyの知識もなく、EC-CUBE初心者でよくわからないままいくつかのサイトを見て手探りでやってみたのでごちゃ混ぜになってるようです。

ですので、⑤のルーティングが問題なく動いているかもわからないですが、ご回答いただいたようにやってみます。

またご報告させていただきます。
c-fox
投稿日時: 2017/11/18 21:59
対応状況: 解決済
新米
登録日: 2017/10/14
居住地:
投稿: 6
Re: 特集ページを作りたい
シロハチ様

お世話になります。

なんとか特集ページを出すことができました。
ただ、やはり構造が良く分かっていないので、かなり力わざとなりましたが・・・。

ありがとうございました。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

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

投稿数ランキング

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
1291
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.