回答編集履歴

2

間違い訂正 紛らわしい間違いしてすみません\(;・ェ・\)

2016/05/02 12:47

投稿

退会済みユーザー
test CHANGED
@@ -102,6 +102,6 @@
102
102
 
103
103
 
104
104
 
105
- ちなみに.`dtb_products`テーブルと`dtb_category`テーブルは `dtb_products`の`maker_id`フィールドで直接紐付されていますが`dtb_category`は`dtb_products_class`で繋がってます。
105
+ ちなみに.`dtb_products`テーブルと`dtb_maker`テーブルは 双方の`maker_id`フィールドで直接紐付されていますが`dtb_category`は`dtb_products_class`で繋がってます。
106
106
 
107
107
  DBの構造は`docs`フォルダ内に`table_definition.xls`で保存されてますから確認してください。

1

追記でぇ~~っす

2016/05/02 12:47

投稿

退会済みユーザー
test CHANGED
@@ -1,3 +1,107 @@
1
1
  選抜メーカーリスト用のブロックを追加して
2
2
 
3
3
  templateに渡す前に配列をフィルタリングしたほうがいいと思います。
4
+
5
+
6
+
7
+ --------------以下 追記--------------
8
+
9
+ 私ならこうするかな?..的なところを大まかに追記しておきます
10
+
11
+
12
+
13
+ Smartyにはtemplate上で`array_unique`を実行する関数は用意されていませんので
14
+
15
+ あらかじめ 必要なデータを絞り込んで 配列を作り直す必要があると思います、
16
+
17
+
18
+
19
+ まず、EC-CUBEの管理画面→デザイン設定→ブロック設定から ブロックを新規に作成
20
+
21
+ (ここでは仮にブロック名:メーカーリスト ファイル名:maker_list.tplとします)
22
+
23
+
24
+
25
+ データベースの`dtb_bloc`テーブルに追加された`メーカーリスト`のレコード上で`php_path`フィールドにphpのパスを指定します。
26
+
27
+ (何処のディレクトリでも構いませんがここでは解かり易く仮に `frontparts/bloc/maker_list.php`とします)
28
+
29
+
30
+
31
+ EC-CUBE内のディレクトリ`html`→`frontparts`→`bloc`フォルダーにデータベースの`dtb_bloc`で指定した`maker_list.php`を設置します。
32
+
33
+
34
+
35
+ 一先ずここまでの操作で 管理画面→デザイン設定→レイアウト設定で必要なページに`メーカーリストブロック`を配置すれば`maker_list.php`の内容がサイト内に表示されるようになります。
36
+
37
+
38
+
39
+ `maker_list.php`の内容ですが..今回は登録済みのデータを抜粋して表示するだけですので、面倒なEC-CUBE独自の手順を踏んでテンプレートを介さなくても
40
+
41
+ PHPで直接データを出力してセキュリティー上、何の問題もないと思います。
42
+
43
+
44
+
45
+ ```php
46
+
47
+ <?php
48
+
49
+
50
+
51
+ if(isset($_GET['category_id'])){
52
+
53
+ ・・・・・・・・・//`$_GET['category_id']`にエスケープ処理くらいは必要
54
+
55
+ }else{
56
+
57
+ ・・・・・・・・・
58
+
59
+ }
60
+
61
+
62
+
63
+ require_once realpath(dirname(__FILE__)) . '/../../../data/config/config.php';
64
+
65
+ //(data/frontparts/bloc/からのパスを想定 EC-CUBEで登録したDB情報の定数を取得)
66
+
67
+ try {
68
+
69
+ $pdo = new PDO(DB_TYPE.':host='.DB_SERVER.';dbname='.DB_NAME.';charset=utf8',DB_USER,DB_PASSWORD,array(PDO::ATTR_EMULATE_PREPARES => false));
70
+
71
+ //これで繋がるはずです。
72
+
73
+ $pdo->query('SET NAMES utf8');
74
+
75
+ $stmt = $pdo->query("********");
76
+
77
+
78
+
79
+ ・・・・・・・・・
80
+
81
+ ・・・・・・・・・
82
+
83
+ ・・・・・・・・・
84
+
85
+ } catch (PDOException $e) {
86
+
87
+ exit($e->getMessage());
88
+
89
+ }
90
+
91
+
92
+
93
+ //あとは`foreach`なりなんなりで`echo `なり`print`なり
94
+
95
+ ```
96
+
97
+
98
+
99
+
100
+
101
+ //こんな感じで必要な処理を記述してください。
102
+
103
+
104
+
105
+ ちなみに.`dtb_products`テーブルと`dtb_category`テーブルは `dtb_products`の`maker_id`フィールドで直接紐付されていますが`dtb_category`は`dtb_products_class`で繋がってます。
106
+
107
+ DBの構造は`docs`フォルダ内に`table_definition.xls`で保存されてますから確認してください。