バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > フロント機能 > [EC-CUBE2.13.3]特定の商品カテゴリでヘッダーやサイドナビのデザインを変更したい

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
soc
投稿日時: 2016/3/1 20:55
対応状況: 開発中
常連
登録日: 2015/10/16
居住地:
投稿: 44
[EC-CUBE2.13.3]特定の商品カテゴリでヘッダーやサイドナビのデザインを変更したい
------------------------------------------------------------------------------------------
[EC-CUBE] 2.13.3
[レンタルサーバ] CPI
[OS] win8.1
[PHP] PHP 5.5.16
[データベース] MySQL 5.5.14
[ブラウザ] Google Chrome
[導入プラグインの有無] 複数あり
[カスタマイズの有無]
------------------------------------------------------------------------------------------

商品一覧ページ、商品詳細ページで、
特定の商品カテゴリ(第1階層)でヘッダーやサイドナビのデザインを変更したい
と考えております。


<イメージ>
カテゴリID:1
に属する以降全てのカテゴリおよび商品 のページで、
ヘッダーおよびサイドナビのデザインを変更したい

★デザインAを適用するページ
カテゴリID:1
カテゴリID:1 > カテゴリID:2 > カテゴリID:3

★デザインBを適用するページ
カテゴリID:4
カテゴリID:4 > カテゴリID:5


--------------------------------
商品一覧ページ では、やりたいことが実現できました。

以下の情報を参考にいたしました。
http://www.moco358.com/archives/2987
見出し「カスタマイズしよう」



変更内容は以下です

---------------
「LC_Page_Products_List_Ex.php」
--------
class LC_Page_Products_Detail_Ex extends LC_Page_Products_Detail
{
--------
以下に↓を追記
--------
public function doDefault($objProduct) {
parent::doDefault($objProduct);

// 第一カテゴリを取得する
$db = new SC_Helper_DB_Ex();
$this->rootCategory = $db->sfGetFirstCat($this->arrForm['category_id']);
}

---------------
「header.tpl」
--------

<!--{if $rootCategory.id == 9}-->
<!--{include file="frontparts/bloc/読み込みたいテンプレートファイル(デザインA)"}-->
<!--{else}-->

〜中略〜

デザインB の内容

<!--{/if}-->
--------

上記の変更で、
商品一覧ページでのヘッダー カテゴリID: 1〜3 はデザインAを適用することができました。


しかし、
このままでは カテゴリID: 1〜3 に属する 商品詳細ページにはデザインAが適用されませんでした。
試しに、
「LC_Page_Products_List_Ex.php」
で追記した内容を
「LC_Page_Products_Detail_Ex.php」
に追記してみましたが、何も変わりませんでした。(デザインBの表示のまま)


推測ですが、

$this->rootCategory = $db->sfGetFirstCat($this->arrForm['category_id']);


この辺りの記述を、商品詳細ページ用に書き換える必要があるのではないかと思うのです。
または商品詳細ページ関連の何かのファイルに手を加える必要があるのか。。


わずかな情報でもご提供いただけましたら幸いです。
どうぞよろしくお願いいたします。
soc
投稿日時: 2016/3/5 0:01
対応状況: 解決済
常連
登録日: 2015/10/16
居住地:
投稿: 44
解決 Re: [EC-CUBE2.13.3]特定の商品カテゴリでヘッダーやサイドナビのデザインを変更したい
こちら自己解決いたしました。

-----------------------
-----------------------
■変更内容まとめ
-----------------------

★その1


data/class_extends/page_extends/products/LC_Page_Products_List_Ex.php
--------
class LC_Page_Products_Detail_Ex extends LC_Page_Products_Detail
{
--------
以下に↓を追記
--------
public function doDefault($objProduct) {
parent::doDefault($objProduct);

// 第一カテゴリを取得する
$db = new SC_Helper_DB_Ex();
$this->rootCategory = $db->sfGetFirstCat($this->arrForm['category_id']);
}

-----------------------
-----------------------

★その2


Smarty/templates/default/header.tpl
--------
--------
<!--▼HEADER-->
<!--{strip}-->

--------
以下に↓を入力
--------

<!--{if $rootCategory.id == デザインAを適用する第1階層のカテゴリID}--><!-- 一覧ページ用 分岐条件 -->
<!--{include file="frontparts/bloc/デザインA.tpl"}--><!-- デザインA -->
<!--{elseif count($arrRelativeCat) > 0}--><!-- 詳細ページ用 分岐条件 -->
<!--{if $arrRelativeCat.0.0.category_id == デザインAを適用する第1階層のカテゴリID}--><!-- 詳細ページ用 分岐条件 -->
<!--{include file="frontparts/bloc/デザインA.tpl"}--><!-- デザインA -->
<!--{else}-->
<!--{include file="frontparts/bloc/デザインB.tpl"}--><!-- デザインB -->
<!--{/if}-->
<!--{else}--><!-- デザインAを適用する以外のページ -->
<!--{include file="frontparts/bloc/デザインB.tpl"}--><!-- デザインB -->
<!--{/if}-->

-----------------------
-----------------------

↑の詳細ページ用 分岐条件は、以下を参考にしました。
http://sudonon.hotcom-web.com/wordpress/?p=155


構造としては以下です。
-------------

●一覧ページ用の条件分岐
 分岐結果
------
 ○詳細ページ用の条件分岐
  分岐結果
------
 ○商品ページ以外のページ(トップページなど)の条件分岐(else)1回目(詳細ページ用の条件分岐以外の条件)
  分岐結果
------
●商品ページ以外のページ(トップページなど)の条件分岐(else)2回目(一覧ページ用の条件分岐以外の条件)
 分岐結果

-------------

デザインA、デザインB のテンプレートファイルを2回ずつ登場させるのがスマートではないかもしれないですが、
ひとまずこれでヘッダーは目的どおりの表示をさせることができました。

ヘッダー以外のブロックでは(サイドナビなど)はこれを応用して作成します。


ご覧いただきありがとうございました。

------------------------------
------------------------------
【 補足 】
以下のプラグインで、条件分岐を自分でかかずにやりたいことを実現できます。
「テンプレートおきにめすままプラグイン」
https://www.ec-cube.net/products/detail.php?product_id=299

しかし、以下のプラグインと競合しました。
「PGマルチペイメントサービス決済コア機能プラグイン」
https://www.ec-cube.net/products/detail.php?product_id=691


競合を起こし、クレジットカード決済が使用不可の状態になったため、
今回の条件分岐を試みました。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

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

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2313
5
umebius
2085
6
yuh
1819
7
h_tanaka
1644
8
red
1570
9
mcontact
1289
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.