バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

機能要望 > フロント機能 > 新入荷商品をブロックに表示したい

フロント機能

新規スレッドを追加する

| 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
duckei
投稿日時: 2008/4/30 8:30
対応状況: −−−
半人前
登録日: 2008/3/19
居住地:
投稿: 23
Re: 新入荷商品をブロックに表示したい
ゲストさんへ
他のブロック編集ができるとなると、なんでエラーになるのかわかりません。特に問題になりそうなコードはないと思うのですが。
あと考えられるのは
LC_Page_FrontParts_Bloc_ProductFlag.phpやLC_Page_FrontParts_Bloc_ProductFlag_Ex.php、product_flag.phpのコード内にある外部ファイル呼び出しファイル名と実際に作成したファイル名が違うとか、そんなことはないですよね?
それともLC_Page_FrontParts_Bloc_ProductFlag.phpに記述されているSQL文に問題があるのかな・・・。もう少し考えてみます。

ゲストさんへ
dtb_blocへのインサートですが
ゲストさんが作成したtplファイル名はproduct_flag.tpl
ということですよね(私が記述したコードでは、productFlag.tplで作成していますので・・・)。
その他は、特に問題ないかと思います。
ゲスト
投稿日時: 2008/4/30 16:15
対応状況: −−−
Re: 新入荷商品をブロックに表示したい
2つ前に投稿したものですが、
EC-CUBE Ver2.2Beta
PostgreSQL
利用ですが、

FTPでファイルアップとインサートをしてみましたが、管理画面のブロックには追加したテンプレートは反映されましたが、レイアウトで設置してみると、僕もシステムエラーになってしまいましたね。

説明しにくいですが、レイアウトで追加した部分に、site_main.tplのサイトが自体がもうひとつできて中央にシステムエラーです。となっていますね。

いろいろためしてみます。
duckei
投稿日時: 2008/4/30 17:42
対応状況: −−−
半人前
登録日: 2008/3/19
居住地:
投稿: 23
Re: 新入荷商品をブロックに表示したい
まったくの的外れで、状況は変わらない可能性が高いのですが
EC-CUBE Ver2.2Beta+PostgreSQLで
テストができないため、その時は申し訳ありません。

LC_Page_FrontParts_Bloc_ProductFlag.phpを下記に変更した場合はどうですか?


<?php

// {{{ requires
require_once(CLASS_PATH . "pages/frontparts/bloc/LC_Page_FrontParts_Bloc.php");

/**
 * productStatus のページクラス.
 *
 * @package Page
 */
class LC_Page_FrontParts_Bloc_ProductFlag extends LC_Page_FrontParts_Bloc {

    // }}}
    // {{{ functions

    /**
     * Page を初期化する.
     *
     * @return void
     */
    function init() {
        parent::init();
        $bloc_file = 'productFlag.tpl';
        $this->setTplMainpage($bloc_file);
    }

    /**
     * Page のプロセス.
     *
     * @return void
     */
    function process() {
       
        
        $objQuery = new SC_Query();

        //検索したい商品のステータスを設定
        //NEW→1, 残りわずか→2, ポイント2倍→3, オススメ→4, 限定品→5
        $productFlag = 1;

        //検索する商品のステータスをランダムに決定し、表示させたい場合は以下のコメントを外してください。
        //$id_count = $objQuery->count(mtb_status);
        //$productFlag = rand(1,$id_count);
      
        $this->statusName =$objQuery->get("mtb_status_image", "name", "id={$productFlag}");
        
        //表示する商品の件数
        $listCount = 3;
        
        
        $ret = "";
        $arrTmp[$productFlag] = "1";
            
        for($i = 1; $i <= $productFlag; $i++) {
            if($arrTmp[$i] == "1") {
                $ret.= "1";
            } else {
                $ret.= "_";
            }
        }

        if($ret != "") {
            $ret.= "%";
        }

        $col = "dtb_products.product_id, dtb_products.name, dtb_products.main_image,
                MIN(dtb_products_class.price02) AS price02_min, MAX(dtb_products_class.price02) AS price02_max";
        $from = "dtb_products INNER JOIN dtb_products_class ON dtb_products.product_id = dtb_products_class.product_id";
        $where = "dtb_products.product_flag LIKE \"{$ret}\"";
        $groupby = "product_id";
        $this->groupby=$objQuery->setgroupby($groupby);
        //商品の表示はupdate_dateが新しい順
        $order = "dtb_products.update_date DESC";
        $this->order=$objQuery->setorder($order);

        $arrFlagList = $objQuery->select($col, $from, $where);
        

        //商品の表示をランダムに抽出する場合は以下のコメントを外してください。
        //srand((double)microtime()*1000000);  //乱数生成器を初期化
        //shuffle($arrFlagList);

        
        $this->arrFlagProducts = array_slice($arrFlagList, 0, $listCount);



        $objSubView = new SC_SiteView();
        $objSubView->assignobj($this);
        $objSubView->display($this->tpl_mainpage);
    }


    /**
     * デストラクタ.
     *
     * @return void
     */
    function destroy() {
        parent::destroy();
    }
}

?>


ゲスト
投稿日時: 2008/4/30 19:49
対応状況: −−−
Re: 新入荷商品をブロックに表示したい
とりあえず報告までですが、同じエラーでした。
ゲスト
投稿日時: 2008/5/1 4:22
対応状況: −−−
Re: 新入荷商品をブロックに表示したい
duckeiさん、度々ありがとうございます。
私もファイル名の大文字・小文字の誤りは質問する前にチェックしていたので間違ってはおりません。。
ご記入いただいた方法で出来るかどうか後で検証してまたご報告させていただきます。
お忙しい中、ありがとうございます。
ゲスト
投稿日時: 2008/5/2 13:17
対応状況: −−−
Re: 新入荷商品をブロックに表示したい
phpのエラーログを貼ってくれたらわかるかも知れません(^^
vhost使ってなかったら
/var/log/httpd/error.log
とか
/var/log/httpd/error_ssl.log
とか

環境によってまちまちですが(^^;

後、追加ソースに
echo "passed";
をあちこちに書いて、どこまで通ったかチェックとか
require_onceのパスがずれてないかとか
ソースの配備先が正しいかとか

横槍すいません_o/L
duckei
投稿日時: 2008/5/2 22:35
対応状況: −−−
半人前
登録日: 2008/3/19
居住地:
投稿: 23
Re: 新入荷商品をブロックに表示したい
EC-CUBEバージョン 2.2.0-beta
PHPバージョン PHP 5.2.5
DBバージョン PostgreSQL 8.2.4
でテストする環境を整えて、試してみたところ
皆様と同じくシステムエラーになるのを確認しました。
で、いろいろと調べてみたところ、やはりSQLに問題がありました。
以下の訂正で表示されるようになります。

LC_Page_FrontParts_Bloc_ProductFlag.phpを以下に訂正。

<?php

// {{{ requires
require_once(CLASS_PATH . "pages/frontparts/bloc/LC_Page_FrontParts_Bloc.php");

/**
 * productStatus のページクラス.
 *
 * @package Page
 */
class LC_Page_FrontParts_Bloc_ProductFlag extends LC_Page_FrontParts_Bloc {

    // }}}
    // {{{ functions

    /**
     * Page を初期化する.
     *
     * @return void
     */
    function init() {
        parent::init();
        $bloc_file = 'productFlag.tpl';
        $this->setTplMainpage($bloc_file);
    }

    /**
     * Page のプロセス.
     *
     * @return void
     */
    function process() {
       
        
        $objQuery = new SC_Query();

        //検索したい商品のステータスを設定
        //NEW→1, 残りわずか→2, ポイント2倍→3, オススメ→4, 限定品→5
        $productFlag = 1;

        //検索する商品のステータスをランダムに決定し、表示させたい場合は以下のコメントを外してください。
        //$id_count = $objQuery->count(mtb_status);
        //$productFlag = rand(1,$id_count);
      
        $this->statusName =$objQuery->get("mtb_status_image", "name", "id={$productFlag}");
        
        //表示する商品の件数
        $listCount = 3;
        
        $ret = "";
        $arrTmp[$productFlag] = "1";
            
        for($i = 1; $i <= $productFlag; $i++) {
            if($arrTmp[$i] == "1") {
                $ret.= "1";
            } else {
                $ret.= "_";
            }
        }

        if($ret != "") {
            $ret.= "%";
        }
        //$col = "dtb_products.product_id, dtb_products.name, dtb_products.main_image,
        //        MIN(dtb_products_class.price02) AS price02_min, MAX(dtb_products_class.price02) AS price02_max";
        //$from = "dtb_products INNER JOIN dtb_products_class using(product_id)";
        //$where = "product_flag LIKE \"{$ret}\"";
        //$groupby = "product_id";
        //$this->groupby=$objQuery->setgroupby($groupby);
        //商品の表示はupdate_dateが新しい順
        //$order = "dtb_products.update_date DESC";
        //$this->order=$objQuery->setorder($order);

          $col = "DISTINCT price02_min, product_id, price02_max, main_image, product_flag, name";
          $from = "vw_products_allclass AS T1";
          $where = "product_flag LIKE '{$ret}'";
          //商品の表示はproduct_id逆順
          $order = "product_id DESC";
          $this->order=$objQuery->setorder($order);

          $arrFlagList = $objQuery->select($col, $from, $where);
        
        //商品の表示をランダムに抽出する場合は以下のコメントを外してください。
        //srand((double)microtime()*1000000);  //乱数生成器を初期化
        //shuffle($arrFlagList);

        $this->arrFlagProducts = array_slice($arrFlagList, 0, $listCount);

        $objSubView = new SC_SiteView();
        $objSubView->assignobj($this);
        $objSubView->display($this->tpl_mainpage);
    }


    /**
     * デストラクタ.
     *
     * @return void
     */
    function destroy() {
        parent::destroy();
    }
}

?>


時間がなく商品登録をしてのテスト不足なんですが
問題がありましたら書き込みお願いします。
宜しくお願い致します。



ゲスト
投稿日時: 2008/5/3 1:45
対応状況: −−−
Re: 新入荷商品をブロックに表示したい
duckei様

私の環境2.1.1Betaでも表示することが出来ました。
あとはサイトにあわせて調整するだけです。
大変助かりました。
ここまで丁寧にしていただきまして御礼しか出来ませんが
ありがとうございました。
ゲスト
投稿日時: 2008/5/3 3:51
対応状況: −−−
Re: 新入荷商品をブロックに表示したい
皆様解決したようで申し訳ないですが、僕も表示はされましたが、1点画像だけがグレーアウトしてしまっています。

よろしければご教授お願いいたします。

画像URLは、

http://ドメイン名/resize_image.php?image=/var/www/vhosts/ドメイン名/httpdocs/upload/save_image//04292300_481729f3878d3.jpg&width=60&height=60

こんな感じになってしまっておりますが。。
duckei
投稿日時: 2008/5/3 8:13
対応状況: −−−
半人前
登録日: 2008/3/19
居住地:
投稿: 23
Re: 新入荷商品をブロックに表示したい
ゲストさま、申し訳ありませんでした。
productFlag.tplの

<img src="<!--{$smarty.const.SITE_URL}-->resize_image.php?image=<!--{$smarty.const.IMAGE_SAVE_DIR}-->/<!--{$arrFlagProducts[cnt].main_image|sfRmDupSlash}-->&width=60&height=60" alt="">



<img src="<!--{$smarty.const.SITE_URL}-->resize_image.php?image=<!--{$arrFlagProducts[cnt].main_image|sfRmDupSlash}-->&width=60&height=60" alt="">

に変更してください。これで画像も表示されるはずです。
« 1 2 (3) 4 5 6 ... 8 »
| 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

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

投稿数ランキング

1
seasoft
7365
2
468
3217
3
AMUAMU
2712
4
nanasess
2303
5
umebius
2085
6
yuh
1818
7
h_tanaka
1610
8
red
1568
9
mcontact
1240
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
796
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.