タグ別アーカイブ: Smarty

上記コードを表示させたいところに表示。

商品詳細ページのファイルは下記。


カテゴリーブロックを以下のように書き換えるだけ。


「EC-CUBEの商品の登録項目内容の追加」

商品詳細ページに入力項目を追加したいと思います。
例として今回は家具サイトの例として「サイズ(W*D*H)」を追加します。

データベース(以下、DB)にカラムを追加する

dtb_productsに1カラム追加。
カラム名「comment7」
データ型「text」

商品詳細ページの編集

管理ページのデザイン管理>ページ詳細設定>商品詳細ページを開き、サイズを表示したい部分に、

<!–{$arrProduct.comment7}–>

と記述する。

サイズ表示しないようにするには、

<!–{$arrProduct.comment7|escape}–>

と記述する

商品登録ページの編集

data/Smarty/templates/default/admin/products/product.tplのファイルを開き、メーカーサイトの項目の下あたりに、

つづく


カテゴリーブロックを以下のように書き換えるだけ。

要は元のカテゴリーブロックを下記のように修正。

上記の※印の3行を削除。


html/frontparts/bloc/product_list.php を新規作成

data/class_extends/page_extends/frontparts/bloc/LC_Page_FrontParts_Bloc_Product_List_Ex.php を新規作成

<?php

// {{{ requires
require_once(CLASS_EX_REALDIR . "page_extends/frontparts/bloc/LC_Page_FrontParts_Bloc_Product_List_Ex.php");

// }}}
// {{{ generate page

$objPage = new LC_Page_FrontParts_Bloc_Product_List_Ex();
register_shutdown_function(array($objPage, "destroy"));
$objPage->init();
$objPage->process();

?>

data/class/pages/frontparts/bloc/LC_Page_FrontParts_Bloc_Product_List.php を新規作成

<?php

// {{{ requires
require_once CLASS_REALDIR . 'pages/frontparts/bloc/LC_Page_FrontParts_Bloc.php';

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

    // }}}
    // {{{ functions

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

    /**
     * Page のプロセス.
     *
     * @return void
     */
    function process() {
        if (defined("MOBILE_SITE") && MOBILE_SITE) {
            $objView = new SC_MobileView();
        } else {
            $objView = new SC_SiteView();
        }

        $objQuery = new SC_Query_Ex();
        $objProduct = new SC_Product_Ex();

        //$objQuery->setLimitOffset(10);
        //$objQuery->setOrder("update_date desc");
        $this->arrProducts = $objProduct->lists($objQuery);

        $objView->assignobj($this);
        $objView->display($this->tpl_mainpage);
    }

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

?>

$this->arrProducts = $objProduct->lists(&$objQuery);の44行目で過去のバージョン2.11辺りのQueryだとlists(&$objQuery);の表記でしたが&無しで記述。 $this->arrProducts = $objProduct->lists($objQuery); data/Smarty/templates/default/frontparts/bloc/product_list.tpl を新規作成

<!--{if count($arrProducts) > 0}-->
    <div class="bloc_outer clearfix">
        <div id="productlist_area">
            <h2>商品一覧リスト</h2>
            <div class="bloc_body clearfix">
                <!--{foreach from=$arrProducts item=arrProduct}-->
                    <div class="product_item clearfix">
                        <div class="productImage">
                            <a href="<!--{$smarty.const.P_DETAIL_URLPATH}--><!--{$arrProduct.product_id|u}-->"><img src="<!--{$smarty.const.ROOT_URLPATH}-->resize_image.php?image=<!--{$arrProduct.main_list_image|sfNoImageMainList|h}-->&width=40&height=40" alt="<!--{$arrProduct.name|h}-->" /></a>
                        </div>
                        <div class="productContents">
                            <h3>
                                <a href="<!--{$smarty.const.P_DETAIL_URLPATH}--><!--{$arrProduct.product_id|u}-->"><!--{$arrProduct.name|h}--></a>
                            </h3>
                            <p class="sale_price">
                                <span class="price"><!--{$arrProduct.price02_min|sfCalcIncTax:$arrInfo.tax:$arrInfo.tax_rule|number_format}--> 円</span>
                            </p>
                        </div>
                    </div>
                </dl>
                <div class="clear"></div>
                <!--{/foreach}-->
            </div>
        </div>
    </div>
<!--{/if}-->

スタイルシート追記

<style type="text/css">
div#productlist_area h2 {
    background-color:#de5e17;
    text-align:center;
    color:#fff;
    padding:7px 0 7px 0;
}
div#productlist_area div.productImage {
    float:left;
    width:40px;
    padding:0 8px 0 0;
}
div#productlist_area div.productContents {
    float:left;
    width:100px;
}
div#productlist_area div.product_item {
    padding:5px 0 5px 5px;
}
</style>

データベースに新規ブロック情報を登録

insert into dtb_bloc values(10,10,'product_list','product_list.tpl','product_list',now(),now(),'frontparts/bloc/product_list.php',0);

Warningが表示されたので掲示板等参考に下記を実行。

<?php

// {{{ requires
require_once CLASS_REALDIR . 'pages/frontparts/bloc/LC_Page_FrontParts_Bloc.php';
////中略////

        $this->arrProducts = $objProduct->lists(&$objQuery);

        $objView->assignobj($this);
        $objView->display($this->tpl_mainpage);
    }

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

?>

data/class/pages/frontparts/bloc/LC_Page_FrontParts_Bloc_Product_List.phpの部分で、本文44行目(上記7行目) $this->arrProducts = $objProduct->lists(&$objQuery); $this->arrProducts = $objProduct->lists($objQuery);

としたら表示が消えました。


特定商取引法の項目追加の件 古物系(オークション)や中古家電販売をされている方は許可番号をどうしたって入力しないとなりません。
(場合によっては数県分入力せねばいけないときもありマスが。)

参考例として、項目「運営責任者」の下に項目「許可番号等」を追加する例を記載します。
今回の追加作業にはDBの操作が必要になるので、自己責任でバックアップとりましょう。

追加分カラム名を「law_no1」としました。

増やす場合は重複しなければあとは任意で好きなだけ増やしましょう。

基本MySQLしかいじったことないので以下はMySQL中心です。

1.\data\class\pages\admin\basis\LC_Page_Admin_Basis_Tradelaw.php 管理画面用の追加。

・「パラメータ情報の初期化」の「運営責任者」の下に下記を追加する。

2.\data\Smarty\templates\admin\basis\tradelaw.tpl 管理画面用テンプレ変更 ・「運営責任者」のデータ部分の下に下記を追加する。

\data\Smarty\templates\default\order\index.tpl (「利用ガイド」での「特定商取引法」ボタン押下後の表示テンプレート) ・「運営責任者」のデータ部分の下に下記を追加する。

携帯スマフォも同様に追加。 \data\Smarty\templates\sphone\order\index.tpl \data\Smarty\templates\mobile\order\index.tpl 携帯

絵文字は好きなの使いましょう。 (ネットで「絵文字コード」とかググれば一覧表が出てくるはずなので。) スマフォ

最後にデータベース追記 dtb_baseinfo の中にカラム追加。 カラム「law_no1」を追加。 (カラム形式はtext)


ECCUBEのお問い合わせフォームの増やし方eccube2.11版

3時間くらい悩んだ末に解決w
まず、contactを総べてコピペでcontact2に変更後、最後に苦戦したのが、pagelayoutのDBを追加すること。
これやんないと表示されませんでした。

●data/class/page/contact→contact2を作成。
ファイル中の2つのphpのなかでcontactもcontact2に変更。
LC_Page_Contact_Complete 44行目付近。多分これ。

LC_Page_Contact.php 44行目付近もかな??

●data/class_extends/page_extends/contact→同様にcontact2を作成。phpの作業は同上。

LC_Page_Contact_Complete 28行目付近。多分これ。

LC_Page_Contact.php 28行目付近もかな??

●data/Smarty/templates/default/contact→contact2を作成。
フォルダ中の3つのtplで指定されているcontactをcontact2に変更。
contactの文字が見当たらなかった気がするのでパスw

●html/contact→contact2を作成。フォルダ中の2つのファイルのcontactをcontact2に変更。
complete.php 26行目付近

index.php 25行目付近

tpl作成まではこれで完了。

とここまでなら簡単にできましたが。
dbの追加が問題w
どこなのかわからなくて苦労しましたがw

phpMyAdminでみると、dtb_pagelayoutで挿入しました。

device_type_id =10(PC用)
page_id =29(デフォルトで行くとこのページレイアウトナンバー)
url =contact2/index.php(コピペした場所)
filename =contact2/index(拡張子なし)
あとはそのままでOKで実行ボタン押しました。
これをcompleteページ分も追加で表示されるようになりました。

URLはhttp://ドメイン/contact2/index.php

DBいじるので自己責任で加工願います、とくにやる前はDBのバックアップを。
挿入するところ間違えて削除ボタン押してDB復旧させましたよ・・・・w

で、つぎは加工しないとただのコピーで終わってしまうので、それはまたあしたやろーっとw
(一応アンケートフォームにしようかと思ってますw)

出来れば添付ファイルもつけれるといいなぁw


<!--{$TPL_URLPATH}-->
/html/user_data/packages/XXXX(使用中のテンプレ)

<!--{$smarty.const.USER_TEMPLATE_REALDIR}-->
html/user_data/packages/

<!--{$smarty.const.TOP_URLPATH}-->
/html/

<!--{$smarty.const.ROOT_URLPATH}-->
/html/

<!--{$smarty.const.HTML_REALDIR}-->
/html/

<!--{$smarty.const.HTTPS_URL}-->
https://ドメイン

<!--{$smarty.const.P_DETAIL_URLPATH}-->
/html/products/detail.php?product_id=

<!--{$smarty.const.IMAGE_SAVE_URLPATH}-->
/html/upload/save_image/

<!--{$smarty.const.DATA_REALDIR}-->
/data/

<!--{$smarty.const.CLASS_REALDIR}-->
/data/class/

<!--{$smarty.const.CLASS_EX_REALDIR}-->
/data/class_extends/

<!--{$smarty.const.TEMPLATE_REALDIR}-->
/data/Smarty/templates/default/

<!--{$smarty.const.TEMPLATE_ADMIN_REALDIR}-->
data/Smarty/templates/admin/

<!--{$smarty.const.TEMPLATE_TEMP_REALDIR}-->
html/upload/temp_template/

<!--{$smarty.const.GRAPH_URLPATH}-->
/html/upload/graph_image/

<!--{$smarty.const.IMAGE_TEMP_URLPATH}-->
/html/upload/temp_image/

<!--{$smarty.const.CART_URLPATH}-->
/html/cart/

<!--{$smarty.const.ADMIN_LOGIN_URLPATH}-->
/html/shopmng/

<!--{$smarty.const.ADMIN_SYSTEM_URLPATH}-->
/html/shopmng/system/

<!--{$smarty.const.ADMIN_PRODUCTS_URLPATH}-->
/html/shopmng/products/

<!--{$smarty.const.ADMIN_ORDER_URLPATH}-->
/html/shopmng/order/

<!--{$smarty.const.MOBILE_IMAGE_URLPATH}-->
/html/upload/mobile_image/

<!--{$smarty.const.MOBILE_TOP_URLPATH}-->
/html/

<!--{$smarty.const.MOBILE_CART_URLPATH}-->
/html/cart/

<!--{$smarty.const.MOBILE_P_DETAIL_URLPATH}-->
/html/products/detail.php?product_id=



まず管理画面にログインして、デザイン管理>PC>レイアウト設定 から、ページを新規入力します。
URLは review_list.php として、以下のコードを貼り付けて保存します。

次に、html/user_data/review_list.php を開いて、次のように修正します。

data/Smarty/templates/default/user_data/review_list.tpl を以下のように変更します。

以上。

ブロック化は以下。

デザイン管理>PC>ブロックの設定新規ブロックで下記を作成。
ブロック名:お客様の声一覧
ファイル名:review_list_bloc

トップページのブロックで表示する場合、html直下のindex.php下記のような感じで書き換え。

基本的には同じ作業。
画像とかは適当にかえましょう。
(レビュー自体未投稿だと空欄なので適当に用意しておきましょう。)