2010年2月10日水曜日

EC-CUBEでオススメ商品を3D回転させる!!

変更ファイル
\data\Smarty\templates\default\bloc\best5.tpl
\html\user_data\packages\default\css\index.css
追加ファイル
\html\user_data\packages\default\js\ mootools-1.2.4-core-nc.js
\html\user_data\packages\default\js\mooVRotatingMenu.js

1. mooVRotatingMenu.jsはmootoolsのプラグインで、mootools.jsが必要です。mooVRotatingMenu.jsとmootools-1.2.4-core-nc.jsをダウンロードします。

mootools.jsダウンロード
mooVRotatingMenu.jsダウン ロード

2. ダウンロードしたファイルを\html\user_data\packages\default\js\のフォルダへ追加します。

3. 次にオススメ商品のブロック(\data\Smarty\templates\default\bloc\best5.tpl)をのコードを以下のように変更します。

<!-- 画像回転用 -->
<script src="<!--{$TPL_DIR}-->js/mootools-1.2.4-core-nc.js" type="text/javascript"></script>
<script src="<!--{$TPL_DIR}-->js/mooVRotatingMenu.js" type="text/javascript"></script>
<!-- END -->
<!--{if count($arrBestProducts) > 0}-->
<div id="centerarea">
<div id="recomend_titlearea">
<h2>推荐信息</h2>
</div>
<div id="recomendarea">
<!-- 画像回転用 -->
<script type="text/javascript">
window.addEvent('domready', function(){
//menu horizontal
var myHorizontalToto = new mooVRotatingMenu($('rotatingMenu'), $$('.mooRotate'), {
maxWidth: 125,
maxHeight: 125
});
});
</script>
<!-- END -->
<ul id="rotatingMenu">
<!--{section name=cnt loop=$arrBestProducts}-->
<li class="mooRotate">
<!--{if $arrBestProducts[cnt].main_list_image != ""}-->
<!--{assign var=image_path value="`$arrBestProducts[cnt].main_list_image`"}-->
<!--{else}-->
<!--{assign var=image_path value="`$smarty.const.NO_IMAGE_DIR`"}-->
<!--{/if}-->
<a href="<!--{$smarty.const.URL_DIR}-->products/detail.php?product_id=<!--{$arrBestProducts[cnt].product_id}-->">
<img src="<!--{$smarty.const.SITE_URL}-->resize_image.php?image=<!--{$image_path
sfRmDupSlash}-->&width=125&height=125" alt="<!--{$arrBestProducts[cnt].name
escape}-->" title="<!--{$arrBestProducts[cnt].name
escape}-->
<!--{assign var=price01 value=`$arrBestProducts[cnt].price01_min`}-->
<!--{assign var=price02 value=`$arrBestProducts[cnt].price02_min`}-->
<!--{if $price02 == ""}-->
<!--{$price01
sfPreTax:$arrInfo.tax:$arrInfo.tax_rule
number_format}-->
<!--{else}-->
<!--{$price02
sfPreTax:$arrInfo.tax:$arrInfo.tax_rule
number_format}-->
<!--{/if}-->元

" />
</a>
</li>
<!--{/section}-->
</ul>
</div>
</div>
<!--{/if}-->

4. 次に\html\user_data\packages\default\css\index.cssに以下のようにスタイルを設定します。

/*お気に入り商品3D回転
----------------------------------------------- */
#rotatingMenu {
width: 550px;
height: 200px;
position: relative;
}
#rotatingMenu .mooRotate a {
display: block;
width: 125px;
height: 125px;
}
/* recomendarea
----------------------------------------------- */
div#recomendarea {
margin: 0 auto;
font-size: 80%;
float: left;
width: 550px;
height:470px;
padding: 10px 10px 10px 10px;
border-right:solid 1px #ccc;
border-left:solid 1px #ccc;
border-bottom:solid 1px #ccc;
background-image: url(../image/best5_back.jpg);
}

div#recomend_titlearea{
width: 570px;
height:auto;
background: url("../image/titleback.gif") repeat-x;
border-top: solid 1px #ccc;
border-right:solid 1px #ccc;
border-left:solid 1px #ccc;
border-bottom:solid 1px #999999;
margin-top:15px;
}
div#recomend_titlearea h2{
padding: 0 0 0 15px;
}

以上でオススメ商品が3D回転します。

2010年2月4日木曜日

我们去了中国

日本電子専門学校高度処理科での卒業制作で中国の衣服卸売販売店へショッピングサイトの提供を行い、今回はサイトの操作方法を教育するため中国・上海からユーザーの住んでいる杭州へ行ってきました。

上海は想像以上に物価が高く、町並みは綺麗でした。

上海の新天地というとこで六本木ヒルズのようなとこ

さらに、ユーザーのおもてなしに驚きました。
ホテルを予約してくれていて食事は毎回すごく高級そうな店で上海蟹やらなんやらとすごい量でした。

帰りたくなかったです・・。


印象的だったのは誰か一人がたばこを吸うときには、
そこにいる全員にたばこを配ってから吸う習慣があるようで、
10分に1本のペースぐらいで たばこを吸ってくらくらでした。

あと、一回の食事で乾杯が50回くらいあったかなぁ。

杭州の方の卸売デパート


卸売デパートの中には千店舗以上ありそうでした。


サイトを提供した店舗にて林(店舗責任者)
 
工場社長室にて左から李(工場経営者)、林(店舗経営者)、田崎、姜


1日目にユーザー教育、2日目に工場見学と充実した内容でした。
店舗経営者は結構おしゃれでMonclerの ダウンやDSQUAREDのジーンズを履いていましたが、
店舗には日本では50代向けの様なセーターがいっぱいなのでなぜか聞いたら、
『好きなものと売っ て儲かるものは別だから』と名言をいただきました。

工場の経営者も、服を染める原料の調査をしたり、工場の無駄な電気を消してたり環境について気にし ているようで中国のイメージがかなり変わりました。

NEW! EC-CUBEカスタマイズ(検索フォームの追加)

サイドナビがある状態の時はヘッダーエリアに検索ブロックを表示する

変更ファイル
  • \data\class_extends\page_extends\frontpart\bloc\LC_Page_FrontParts_Bloc_SearchProducts_Ex.php
  • \data\class\pages\LC_Page.php
  • \data\Smarty\templates\default\header.tpl
  • \html\user_data\packages\default\css\main.css

1.LC_Page_FrontParts_Bloc_SearchProducts_Ex.phpにsetSearchProductsファンクションの追加
function setSearchProducts() {
        $arrSearch = array();    // 検索項目表示用
        $objDb = new SC_Helper_DB_Ex();
        // 選択中のカテゴリIDを判定する
        $this->category_id = $objDb->sfGetCategoryId($_GET['product_id'], $_GET['category_id']);
        // カテゴリ検索用選択リスト
        $arrRet = $objDb->sfGetCategoryList('', true, ' ');
        if(is_array($arrRet)) {
            // 文字サイズを制限する
            foreach($arrRet as $key => $val) {
                $arrRet[$key] = SC_Utils_Ex::sfCutString($val, SEARCH_CATEGORY_LEN, false);
            }
        }
        $this->arrCatList = $arrRet;
}


2.LC_Page.phpにLC_Page_FrontParts_Bloc_SearchProducts_Ex.phpの呼び出しとinit()の中にコードを追加

require_once(CLASS_EX_PATH . "page_extends/frontparts/bloc/LC_Page_FrontParts_Bloc_SearchProducts_Ex.php");
function init() {
    $objSearchProducts = newLC_Page_FrontParts_Bloc_SearchProducts_Ex();
        $objSearchProducts->setSearchProducts();
    $this->category_id_header = $objSearchProducts->category_id;
    $this->arrCatList_header = $objSearchProducts->arrCatList;
}

3.header.tpl の#header内に追加

<!--▼搜索条件由此开始-->
<!--{if $arrPageLayout.LeftNavi|@count > 0}-->
    <div id="main_searcharea">
      <!--搜索框-->
        <form name="search_form" id="search_form" method="get" action="<!--{$smarty.const.URL_DIR}-->products/list.php">
        <div id="mainsearchtxt">
          <input type="hidden" name="mode" value="search" />
            <select name="category_id" class="searchcmbbox">
              <option label="从商品分类来选" value="">从商品分类来选</option>
              <!--{html_options options=$arrCatList_header selected=$category_id_header}-->
            </select>
           
            <input type="text" name="name" class="searchtxtbox" maxlength="50" value="<!--{$smarty.get.name|escape}-->" />
        </div>
            <div id="mainsearchbtn"><input type="image" onmouseover="chgImgImageSubmit('<!--{$TPL_DIR}-->image/mainsearchbtn_on.jpg',this)" onmouseout="chgImgImageSubmit('<!--{$TPL_DIR}-->image/mainsearchbtn.jpg',this)" src="<!--{$TPL_DIR}-->image/mainsearchbtn.jpg" class="mainsearchbtn" alt="搜索" name="search" />
            </div>
        </form>
    </div>
<!--{/if}-->
<!--▲搜索条件到此为止-->

4.main.css に最後に追加

/* メイン検索main_searcharea
----------------------------------------------- */
div#main_searcharea {
    float:left;
    clear:both;
    width: 950px;
    height:50px;
    margin: 0 auto;
    background:no-repeat url("../image/mainsearchback.jpg");
    padding-top: 10px;
    padding-right: 10px;
    padding-left: 10px;
}
div#main_searcharea .searchcmbbox {
    width: 140px;
    border:inset 1px #bbbbbb;
    margin-left:80px;
}
div#main_searcharea .searchtxtbox {
    width: 360px;
    height:20px;
    border-top:2px solid #aaaaaa;
    border-right:1px solid #cccccc;
    border-left:2px solid #aaaaaa;
    border-bottom:1px solid #cccccc;
    margin-left:15px;
    background: #fff none;
}
div#main_searcharea #mainsearchtxt {
    float:left;
    width: 610px;
}
div#main_searcharea #mainsearchbtn {
    float:left;
}

2010年1月30日土曜日

オープンソースカンファレンス2010 Tokyo/Springへ出展

オープンソースカンファレンス2010 Tokyo/Springへの出展を行います。出展内容はEC-CUBEの中国語バージョンをライトニングトークと展示ブースにて発表します。

日程:2010年2月26日(金)・27日(土) 10:00-17:00


会場:明星大学日野キャンパス 26号館(多摩モノレール 「中央大学・明星大学駅」から大学まで直結。会場まで徒歩5分)
内容:オープンソースに関する最新情報の提供
・展示 - オープンソースコミュニティ、企業・団体による展示
・セミナー - オープンソースの最新情報を提供
主催オープンソースカンファレンス実行委員会

EC-CUBEで新規のテンプレート変数と値の割り当て方

初歩的な内容ですが一応。
data\class\SC_View.phpの中にテンプレートに値を割り当てるfunctionが用意されているのでこちらのfunctionを呼び出してテンプレート変数と値の割り当てを行います。
    function assign($val1, $val2) {
        $this->_smarty->assign($val1, $val2);
    }
まず、はじめに新規のテンプレート変数と値の割り当てを行いたいPHPファイルの中で以下コードを追加します。ここでは入力した名前を変数$nameに格納したものをテンプレート変数NAMEの値として割り当てています。
$objView  =  new SC_SiteView();
$name  =  “EC-CUBE”
$objView->assign("NAME", $name);
第一引数に任意の変数名、第二引数に値を指定します。
続いてテンプレートファイルに参照したい変数名を$this->tpl_mainpage = '';で指定されている Tplファイルへ追加します。   
<!--{$ NAME }-->さんこんにちは。
次のように表示されます。
EC-CUBEさんこんにちは。

EC-CUBEの商品カテゴリを全て表示

EC-CUBEのデフォルトでは商品カテゴリが折りたたまれているので常に全てが見えるように変更します。
例えば服であれば女性用、男性用をカテゴリに設定してその階層の下にTシャツのカテゴリがある場合、 女性用、男性用のみの表示になっています。男性用をクリックすると下の階層が見えるのですが、常にカテゴリ全てが見えていても邪魔にならないカテゴリの量なので変更します。

修正ファイル:\data\Smarty\templates\default\bloc\category.tpl

変更前:
<!--{if $arrTree[cnt].display == 1}-->
<!--{assign var=level value=`$arrTree[cnt].level`}-->
<!--{assign var=levdiff value=`$level-$preLev`}-->
<!--{if $levdiff > 0}-->
<ul>
<!--{elseif $levdiff == 0 && $firstdone == 1}-->
</li>
<!--{elseif $levdiff < 0}-->
<!--{section name=d loop=`$levdiff*-1`}-->
</li>
</ul>
<!--{/section}-->
</li>
<!--{/if}-->
<li class="level<!--{$level}--><!--{if in_array($arrTree[cnt].category_id, $tpl_category_id) }--> onmark<!--{/if}-->"><a href="<!--{$smarty.const.URL_DIR}-->products/list.php?category_id=<!--{$arrTree[cnt].category_id}-->"<!--{if in_array($arrTree[cnt].category_id, $tpl_category_id) }--> class="onlink"<!--{/if}-->><!--{$arrTree[cnt].category_name|escape}-->(<!--{$arrTree[cnt].product_count|default:0}-->)</a>
<!--{if $firstdone == 0}--><!--{assign var=firstdone value=1}--><!--{/if}-->
<!--{assign var=preLev value=`$level`}-->
<!--{/if}-->

 変更後:
    <!--{assign var=level value=`$arrTree[cnt].level`}-->
    <!--{assign var=levdiff value=`$level-$preLev`}-->
      <!--{if $levdiff > 0}-->
          <ul>
      <!--{elseif $levdiff == 0 && $firstdone == 1}-->
          </li>
      <!--{elseif $levdiff < 0}-->
        <!--{section name=d loop=`$levdiff*-1`}-->
            </li>
          </ul>
        <!--{/section}-->
        </li>
      <!--{/if}-->
    <li class="level<!--{$level}--><!--{if in_array($arrTree[cnt].category_id, $tpl_category_id) }--> onmark<!--{/if}-->"><a href="<!--{$smarty.const.URL_DIR}-->products/list.php?category_id=<!--{$arrTree[cnt].category_id}-->"<!--{if in_array($arrTree[cnt].category_id, $tpl_category_id) }--> class="onlink"<!--{/if}-->><!--{$arrTree[cnt].category_name|escape}-->(<!--{$arrTree[cnt].product_count|default:0}-->)</a>
    <!--{if $firstdone == 0}--><!--{assign var=firstdone value=1}--><!--{/if}-->
    <!--{assign var=preLev value=`$level`}-->

2009年12月22日火曜日

日本人と韓国人、中国人を見分ける秘訣とは?

 中国人ブロガーが「西洋人には中国人と日本人、韓国人を見分けることが出来ないそうだが、私には見分ける秘訣がある」とする文章を掲載した。

 たとえば、空港に10人からなる観光客団体がいたとしよう。そのうち、1人だけが喋り、ほかの人たちが耳を傾けているとすれば、それは日本人である。10人中8、9人が騒いでいるとすれば、それは韓国人である。そして、10人中5、6人が話をしていて、ほかの人は話を聞きながらきょろきょろしている人がいれば、それは中国人だ。

 続けて日本人の性質について触れ、「日本は集団主義であり、日本人は個人よりも集団を優先するため、集団の代表である人間が話しをしていたら、残りの人間は耳を傾けるというわけだ」と綴る。

 次に韓国人の性質について触れ、「韓国人は集団を代表する人間が話しをしていても、各々が自らの意見を主張する。誰か一人が話せば良い状況下であっても、皆が大声で自らの意見を主張するため、とてもやかましい。日本人の集団主義とは正反対の個人主義であり、韓国人は個人の主張を優先するきらいがある」と綴る。

 次に中国人の性質について、「中国人も個人主義であり、自分を主張する点においては韓国人と遜色ない。しかし、韓国人と比べれば、中国人は自らの感情をコントロールできるだろう。中国人は保身術として、何も知らないふりをしながらも、自らの状況、位置を考え続けている。だからこそ、5,6人が話をしているとき、ほかの人々は話に参加しているふりをしながらも周りの状況を観察しているのである」と語った。

 つづけて、「問題は中国人のきょろきょろする行為だ。中国人はこの長年の習慣を改めることが出来ず、異国の地でもきょろきょろしている」と語り、「日本の地下鉄では、日本人は皆が無表情で黙り込んでいるが、一人だけ視点を定めずにきょろきょろしている人がいれば、それは間違いなく中国人だ。韓国人は日本人ほど無表情ではなく、むしろ表情は豊かであり、中国人ほどきょろきょろしていない。これが中国人を見分ける秘訣だ」と語った。

 以上の話に認めますが、ちょっと補充すると、日本はアジアのファッションをリードする国だから、中国で見たこともない服を日本の若者がよく着てる。また、髪型、眉毛形などからも日本人と中国人が結構ちがう。最近中国国内にも日本のファッションが好きな若者が多くなってきて、「日系美少年」、「日系美少女」などの言葉も若者を褒めるためによく使われてる。

作成者:姜豊