バージョン選択

フォーラム

メニュー

オンライン状況

39 人のユーザが現在オンラインです。 (28 人のユーザが フォーラム を参照しています。)
登録ユーザ: 5
ゲスト: 34
tattsu tya_one zakey kggh actact もっと...

サイト内検索

機能要望 > フロント機能 > 同一の商品IDでカテゴリーによってページのデザイン(tpl)を変えたい

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
mizuvan
投稿日時: 2014/11/21 13:42
対応状況: −−−
長老
登録日: 2013/3/26
居住地:
投稿: 253
同一の商品IDでカテゴリーによってページのデザイン(tpl)を変えたい
現時点で、カテゴリー毎にテンプレートの変更ができるようになっています。

しかし、ひとつの商品を2通りの表示をさせたいのです。

例えば、りんご を商品登録したとします

このりんごを クリスマス専用 のページと 通常ページ とで表示を分けてURLも変えたいのです。

このりんごを今後 りんごA りんごB りんごC として毎月定期的に商品追加されていくことからそれぞれに商品を複数登録する手間を省きたいと思っていました。

このようなことが可能になるのか、アイデアだけで良いのでコメントいただけると嬉しいです。

yuh
投稿日時: 2014/11/22 0:23
対応状況: −−−
登録日: 2013/1/9
居住地: 大阪
投稿: 1819
Re: 同一の商品IDでカテゴリーによってページのデザイン(tpl)を変えたい
detail.php?product_id=○○
とは別に
detail2.php?product_id=○○
見たいな形で用意するっていう感じですか?
detail.phpをコピーしてdetail2.phpを作って

LC_Page_Products_Detail_Ex.phpのinitで

    function init() {
        parent::init();
		if(strpos('detail.php',$_SERVER['REQUEST_URI']) !== FALSE){
			$this->tpl_mainpage =  'products/detail2.tpl';
		}
}

こんな感じで実装すればできそうですね。
mizuvan
投稿日時: 2014/11/22 11:30
対応状況: −−−
長老
登録日: 2013/3/26
居住地:
投稿: 253
Re: 同一の商品IDでカテゴリーによってページのデザイン(tpl)を変えたい
ありがとうございます!

教えていただいた通り?LC_Page_Products_Detail_Ex.phpへ
追記してみました。

下記のようにしています。

require_once CLASS_REALDIR . 'pages/products/LC_Page_Products_Detail.php';

/**
 * LC_Page_Products_Detail のページクラス(拡張).
 *
 * LC_Page_Products_Detail をカスタマイズする場合はこのクラスを編集する.
 *
 * @package Page
 * @author LOCKON CO.,LTD.
 * @version $Id: LC_Page_Products_Detail_Ex.php 22926 2013-06-29 16:24:23Z Seasoft $
 */
class LC_Page_Products_Detail_Ex extends LC_Page_Products_Detail
{
    /**
     * Page を初期化する.
     *
     * @return void
     */
    function init()
    {
        parent::init();
    }

    /**
     * Page のプロセス.
     *
     * @return void
     */
    function process()
    {
        parent::process();
    }
}
    function init() {
        parent::init();
		if(strpos('detail.php',$_SERVER['REQUEST_URI']) !== FALSE){
			$this->tpl_mainpage =  'products/detail2.tpl';
		}
}


他にも LC_Page_Products_Detail_Ex.phpでなくLC_Page_Products_Detail.phpへ追記したのですが

detail2.tpl

→/products/detail2.php?product_id=

の表示がされませんでした。

エラーログとしましては


引用:
[*/products/detail.php] Fatal error(E_COMPILE_ERROR): Cannot redeclare LC_Page_Products_Detail_Ex::init() on [*/data/class_extends/page_extends/products/LC_Page_Products_Detail_Ex.php(57)]
customer_id =
[*/products/detail.php] Fatal error(E_COMPILE_ERROR): Cannot redeclare LC_Page_Products_Detail::init() on [*/data/class/pages/products/LC_Page_Products_Detail.php(698)]
customer_id =


それぞれこのような感じです。



EC-CUBEバージョン:2.13.2
PHP情報:5.3.28
DB情報:MySQL 5.6.13-log
seasoft
投稿日時: 2014/11/22 12:11
対応状況: −−−
登録日: 2008/6/4
居住地:
投稿: 7367
Re: 同一の商品IDでカテゴリーによってページのデザイン(tpl)を変えたい
既存の function init() の中に書かないと駄目ですよ。


----------------
Seasoft
こちらでの投稿は、アイディア程度に留めさせていただいております。
個別案件の作業は有償で承っております。お気軽にご相談ください。

mizuvan
投稿日時: 2014/11/22 12:16
対応状況: −−−
長老
登録日: 2013/3/26
居住地:
投稿: 253
Re: 同一の商品IDでカテゴリーによってページのデザイン(tpl)を変えたい
その後、類似するような内容が旧パージョンでありましたので試してみました
http://xoops.ec-cube.net/modules/newbb/viewtopic.php?topic_id=15346&post_id=68664&order=0&viewmode=thread&pid=68658&forum=6#forumpost68664


/products/detail.php
detail2.phpを作成し、下記を修正
require_once CLASS_EX_REALDIR . 'page_extends/products/LC_Page_Products_Detail_Ex.php'; → require_once CLASS_EX_REALDIR . 'page_extends/products/LC_Page_Products_Detail2_Ex.php';
下記を修正
$objPage = new LC_Page_Products_Detail_Ex(); → $objPage = new LC_Page_Products_Detail_Ex2();

/data/class_extends/page_extends/products/LC_Page_Products_Detail_Ex.php
下記を修正
require_once CLASS_REALDIR . 'pages/products/LC_Page_Products_Detail.php'; → require_once CLASS_REALDIR . 'pages/products/LC_Page_Products_Detail2.php';
下記を修正
class LC_Page_Products_Detail_Ex extends LC_Page_Products_Detail → class LC_Page_Products_Detail2_Ex extends LC_Page_Products_Detail2

/data/class/pages/products/LC_Page_Products_Detail.php
最終行辺りの
$this->tpl_mainpage = 'products/detail.tpl'; → $this->tpl_mainpage = 'products/detail2.tpl';

/data/Smarty/templates/default/detail.tpl
detail2.tpl作成、内容の修正はなし


これもまた表示されませんでした。

エラーログは下記の通りです。
引用:

(日時) [*/products/detail2.php] Fatal error(E_ERROR): Class 'LC_Page_Products_Detail2' not found on [*/data/class_extends/page_extends/products/LC_Page_Products_Detail2_Ex.php(36)] from (IP アドレス)
customer_id =
mizuvan
投稿日時: 2014/11/22 12:23
対応状況: −−−
長老
登録日: 2013/3/26
居住地:
投稿: 253
Re: 同一の商品IDでカテゴリーによってページのデザイン(tpl)を変えたい
seasoft様

ありがとうございます。

ということは、こういうことでしょうか


require_once CLASS_REALDIR . 'pages/products/LC_Page_Products_Detail.php';

/**
 * LC_Page_Products_Detail のページクラス(拡張).
 *
 * LC_Page_Products_Detail をカスタマイズする場合はこのクラスを編集する.
 *
 * @package Page
 * @author LOCKON CO.,LTD.
 * @version $Id: LC_Page_Products_Detail_Ex.php 22926 2013-06-29 16:24:23Z Seasoft $
 */
class LC_Page_Products_Detail_Ex extends LC_Page_Products_Detail
{
    /**
     * Page を初期化する.
     *
     * @return void
     */
    function init()
    {
        parent::init();
		if(strpos('detail.php',$_SERVER['REQUEST_URI']) !== FALSE){
			$this->tpl_mainpage =  'products/detail2.tpl';
    }

    /**
     * Page のプロセス.
     *
     * @return void
     */
    function process()
    {
        parent::process();
    }
}


このように修正はしてみましたがdetail2.tplは表示されませんでした。
yuh
投稿日時: 2014/11/23 13:26
対応状況: −−−
登録日: 2013/1/9
居住地: 大阪
投稿: 1819
Re: 同一の商品IDでカテゴリーによってページのデザイン(tpl)を変えたい

		if(strpos($_SERVER['REQUEST_URI'],'detail2.php') !== FALSE){
			$this->tpl_mainpage =  'products/detail2.tpl';
	    }

すいません、strposの引数反対ですねw
mizuvan
投稿日時: 2014/11/23 18:12
対応状況: 解決済
長老
登録日: 2013/3/26
居住地:
投稿: 253
Re: 同一の商品IDでカテゴリーによってページのデザイン(tpl)を変えたい
いつもありがとうございます!

無事表示できました!!

修正箇所もこれほど少なくて

このようなカスタマイズができるという点が嬉しい限りです

yuh
投稿日時: 2014/11/23 19:40
対応状況: −−−
登録日: 2013/1/9
居住地: 大阪
投稿: 1819
Re: 同一の商品IDでカテゴリーによってページのデザイン(tpl)を変えたい
一応忘れずにdtb_pagelayoutに追加しといたほうがいいと思いますよー
mizuvan
投稿日時: 2014/11/27 11:29
対応状況: 解決済
長老
登録日: 2013/3/26
居住地:
投稿: 253
Re: 同一の商品IDでカテゴリーによってページのデザイン(tpl)を変えたい
なるほど、ありがとうございます!

SQLで追加完了です!
INSERT INTO `(データベース名)`.`dtb_pagelayout` (`device_type_id`, `page_id`, `page_name`, `url`, `filename`, `header_chk`, `footer_chk`, `edit_flg`, `author`, `description`, `keyword`, `update_url`, `create_date`, `update_date`, `meta_robots`) VALUES ('1', '26', '商品詳細ページ', 'products/detail2.php', 'products/detail2', '1', '1', '2', NULL, NULL, NULL, NULL, '2014-10-10 10:10:10.000000', NOW(), NULL)
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

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

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2311
5
umebius
2085
6
yuh
1819
7
h_tanaka
1633
8
red
1569
9
mcontact
1260
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.