< | >

(備忘録) EC-CUBEカスタマイズ
  • (2012-02-24 07:07:43)
EC CUBEは自分でカスタマイズすることが前提のシステム。カスタマイズしたい部分は当たりをつけてコードを書き直すしかない。PHPを知らなくともできる部分もある(2012/02/24 小平探検隊)


カスタマイズの目標:



本来のショッピングサイト(商品在庫機能とカート機能)を「作品募集」という賞イベントの会員登録と記事投稿サイトにカスタマイズ。


事前準備:ダウンロード



(Ver2.11.5):2012年2月28日 → eccube-2.11.5.zip

http://www.ec-cube.net/download/index.php


事前準備:MySQLデータベースの作成




(オリジナルサイト)
http://www.☆.com/eccube/html/


(比較用のサイト bサイト)
http://www.☆.com/eccubeb/html/




インストール:EC CUBE全ファイルをアップし、ブラウザでアクセス



(インストール)

http://www.☆.com/eccube/html/install/

(サイト)

http://www.☆.com/eccube/html/


ログイン



eccube/reg/admin/ ・・・管理者用画面ログイン

eccube/reg/mypage/login.php ・・・クライアント ログイン


ID&パスワードを忘れたとき



phpMyAdminのdtd_memberテーブルで管理者用ID&パスワードのうち最低IDはわかる。最終的には再インストール(データベースそのままで)。


仕様書はないか、あっても素人には無関係



プログラマ向けの仕様書があっても素人には役立たずだし、プログラマなら自分でコードを追っていく方が早いだろう。


管理画面からの設定:



インストールを完了すると、ページのデザインや確認メールの内容を変更するなど、すぐにいろいろな要望が出てくる。EC CUBEでは管理画面でシステム全体の設定が行える。

管理画面では「デザイン管理」「システム管理」あたりにその機能が集約されているが、行えることは限られている。むしろ、基本的は中身を自分でカスタマイズすることを前提にしたシステムと考えた方が早い。


必要なページをすべて3カラムから1カラムに変更



「デザイン管理」 → 「PC」 → 「レイアウト設定」

http://www.☆.com/eccube/html/admin/


テンプレートのルール



EC-CUBEではSmartyを使用。Smartyがよくわからないが、htmlファイルにPHPコードを埋め込むのではなく、PHPプログラムは外部に出して、それを読み出す独特のタグ(<!--{}-->で挟まれている)をhtmlに記述する方式のよう。

<!--{}-->タグのコード内に「|h」という記述が多く書かれている。htmlタグのエスケープコードらしい。おまじないとして入っているくらいに解釈。


ファイルの構造



・大きく「data」と「html」

・画像などは下記フォルダあたりに:

 eccube-2.11.5\html\user_data\packages\default\img

・テンプレートは下記フォルダあたりに:

 eccube-2.11.5\data\Smarty\templates\default

・プログラムは下記フォルダあたりに:

 eccube-2.11.5\data\class\pages

 eccube-2.11.5\data\class\helper


ヘッダー カスタマイズ



eccube-2.11.5\data\Smarty\templates\default\header.tpl

ロゴ画像

eccube-2.11.5\html\user_data\packages\default\img\common\logo.gif


<title>内容の変更



eccube-2.11.5\data\Smarty\templates\default\site_frame.tpl

上部をコメントアウトして、ベタで<title>内容を書き込む

<!-- <title><!--{$arrSiteInfo.shop_name|h}--><!--{if $tpl_subtitle|strlen >= 1}--> / <!--{$tpl_subtitle|h}--><!--{elseif $tpl_title|strlen >= 1}--> / <!--{$tpl_title|h}--><!--{/if}--></title> -->

<title>2012年 第1回 作品募集 (応募作品募集)</title>


<h1>内容の変更



「EC-CUBE発!世界中を旅して見つけた立方体グルメを立方隊長が直送!」



「作品募集」

<p id="site_description">EC-CUBE発!世界中を旅して見つけた立方体グルメを立方隊長が直送!</p>

<h1>

<a href="<!--{$smarty.const.TOP_URLPATH}-->"><img src="<!--{$TPL_URLPATH}-->img/common/logo.gif" alt="EC-CUBE ONLINE SHOPPING SITE" /><span><!--{$arrSiteInfo.shop_name|h}-->/<!--{$tpl_title|h}--></span></a>

</h1>



<p id="site_description">作品募集</p>

<h1>

<a href="<!--{$smarty.const.TOP_URLPATH}-->"><img src="<!--{$TPL_URLPATH}-->img/common/logo.gif" alt="作品募集" /><span><!--{$arrSiteInfo.shop_name|h}-->/<!--{$tpl_title|h}--></span></a>

</h1>


新規会員登録ボタン → 会員規約ページをパスするカスタマイズ



eccube-2.11.5\data\Smarty\templates\default\header.tplから「kiyaku.php」を抜く

<a href="<!--{$smarty.const.ROOT_URLPATH}-->entry/kiyaku.php  →   <a href="<!--{$smarty.const.ROOT_URLPATH}-->entry/


カートボタン撤去



eccube-2.11.5\data\Smarty\templates\default\header.tplの次の部分を削除:


ヘッダーのログインボタン撤去



<a href="<!--{$smarty.const.CART_URLPATH}-->" onmouseover="chgImg('<!--{$TPL_URLPATH}-->img/common/btn_header_cart_on.jpg','cartin');" onmouseout="chgImg('<!--{$TPL_URLPATH}-->img/common/btn_header_cart.jpg','cartin');"><img src="<!--{$TPL_URLPATH}-->img/common/btn_header_cart.jpg" alt="カゴの中を見る" name="cartin" id="cartin" /></a>

</li>

<div id="headerInternalColumn">

<!--{* ▼HeaderInternal COLUMN*}-->

<!--{if $arrPageLayout.HeaderInternalNavi|@count > 0}-->

<!--{* ▼上ナビ *}-->

<!--{foreach key=HeaderInternalNaviKey item=HeaderInternalNaviItem from=$arrPageLayout.HeaderInternalNavi}-->

<!-- ▼<!--{$HeaderInternalNaviItem.bloc_name}--> -->

<!--{if $HeaderInternalNaviItem.php_path != ""}-->

<!--{include_php file=$HeaderInternalNaviItem.php_path items=$HeaderInternalNaviItem}-->

<!--{else}-->

<!--{include file=$HeaderInternalNaviItem.tpl_path items=$HeaderInternalNaviItem}-->

<!--{/if}-->

<!-- ▲<!--{$HeaderInternalNaviItem.bloc_name}--> -->

<!--{/foreach}-->

<!--{* ▲上ナビ *}-->

<!--{/if}-->

<!--{* ▲HeaderInternal COLUMN*}-->

</div>


cssファイル



eccube-2.11.5\html\user_data\packages\default\css\common.css


MYページボタン、登録ボタンの右寄せは:



下記の「float: left; → float: right;」

/* ヘッダーナビ

div#header_navi {

float: right;

width: 409px;

height: 38px;

}

div#header_navi ul li {

display: block;

float: left;

}


フッターのカスタマイズ



eccube-2.11.5\data\Smarty\templates\default\footer.tpl

「Copyright c 2005-2012 mydomain All rights reserved.」となっている。2005は不要で、mydomainは社名に変更

<!--{if $smarty.const.RELEASE_YEAR != $smarty.now|date_format:"%Y"}--><!--{$smarty.const.RELEASE_YEAR}-->-<!--{/if}--><!--{$smarty.now|date_format:"%Y"}--><!--{$arrSiteInfo.shop_name_eng|default:$arrSiteInfo.shop_name|h}--> All rights reserved.



<!--{$smarty.now|date_format:"%Y"}--> mydomain Inc. All rights reserved.


トップページのカスタマイズ



トップページ:

eccube-2.11.5\data\Smarty\templates\default\index.tpl

トップページのトップ画像

eccube-2.11.5\html\user_data\packages\default\img\banner\bnr_top_main.jpg

幅580px


トップページ → 商品詳細ページ



eccube-2.11.5\data\Smarty\templates\default\products\detail.tpl

商品詳細ページにて、作品募集を商品として登録する。 → 「管理画面」 → 「商品マスター」 → 「」 → 「」


商品レビュー



おそらく

eccube-2.11.5\data\class\pages\products\LC_Page_Products_Review.php


会員登録完了(本登録)の画面のカスタマイズ



ページ本文:

data/Smarty/templates/default/regist/complete.tpl

ページタイトル:

/award/data/class/pages/entry/LC_Page_Entry.php の中の「 $this->tpl_title = '登録(完了ページ)';」


会員登録の画面をカスタマイズ



data/Smarty/templates/default/entry/index.tpl

data\Smarty\templates\default\entry

会員登録フォームの上に、注意書きを入れたいとき:

<span class="attention">※</span>印は必須項目です。スムーズなコミュニケーションのためにその他の項目もなるべく記入ください。なお、記入内容は後でも変更可能です。

<table summary="会員登録フォーム">

<!--{include file="`$smarty.const.TEMPLATE_REALDIR`frontparts/form_personal_input.tpl" flgFields=3 emailMobile=false prefix=""}-->

</table>

※会員登録フォームは別ファイル(form_personal_input.tpl)を読み込んできて展開している。


会員登録の確認画面で不要な「生年月日」などを消す



data/Smarty/templates/default/shopping/confirm.tpl

不要部分をコメントアウト

<!--

<tr>

<th>生年月日</th>

<td>

<!--{if strlen($arrForm.year) > 0 && strlen($arrForm.month) > 0 && strlen($arrForm.day) > 0}-->

<!--{$arrForm.year|h}-->年<!--{$arrForm.month|h}-->月<!--{$arrForm.day|h}-->日

<!--{else}-->

未登録

<!--{/if}-->

</td>

</tr>

-->


会員登録画面に「SHOP用メモ」欄を追加する



【表示部分】会員登録のhtmlファイルに下記の「SHOP用メモ」のテーブル行を追加

eccube\data\Smarty\templates\default\frontparts\form_personal_input.tpl

<tr>

<th>SHOP用メモ</th>

<td>

<span class="attention"><!--{$arrErr.note}--></span>

<textarea name="note" maxlength="<!--{$smarty.const.LTEXT_LEN}-->" <!--{if $arrErr.note != ""}--><!--{sfSetErrorStyle}--><!--{/if}--> cols="60" rows="8" class="area60"><!--{$arrForm.note|h}--></textarea>

</td>

</tr>

【ロジック部分】

eccube-2.11.4\data\class\helper\SC_Helper_Customer.php

* 会員共通

function sfCustomerCommonParam (&$objFormParam)

* 会員登録共通

function sfCustomerRegisterParam (&$objFormParam, $isAdmin = false, $is_mypage = false)

//下記1文を追加する:

$objFormParam->addParam("SHOP用メモ", 'note', LTEXT_LEN, 'KVa', array("MAX_LENGTH_CHECK"));


必須項目の解除



/data/class/helper/SC_Helper_Customer.php

「EXIST_CHECK」をはずす。

※データベースのテーブルでも必須設定を解除する必要があると思ったが、phpMyAdminでdtb_baseinfoを見たが必須設定はないようだ。


会員登録 → 確認ページ → 完了ページ



eccube-2.11.5\data\Smarty\templates\default\entry\index.tpl

eccube\data\Smarty\templates\default\frontparts\form_personal_input.tpl


会員登録(確認ページ)



eccube-2.11.5\data\Smarty\templates\default\entry\confirm.tpl

コメントアウトするものと、SHOP用メモは追加する。

<tr>

<th>SHOP用メモ</th>

<td>

<!--{$arrForm.note|h}-->

</td>

</tr>


会員登録(完了ページ)



/☆/eccube/data/Smarty/templates/default/regist/complete.tpl

<!-- <p>今後ともよろしくお願い申し上げます。</p> -->

<div class="shop_information">

<p class="name"><!--{$arrSiteInfo.company_name|h}--></p>

<p>お問い合わせは mail@☆.com または Tel.○○8<br /></p>

</div>


会員登録(完了ページ)



(ファイル)\data\Smarty\templates\default\regist\complete.tpl

それではショッピングをお楽しみください。

今後ともご愛顧賜りますようよろしくお願い申し上げます。

TEL:<!--{$arrSiteInfo.tel01}-->-<!--{$arrSiteInfo.tel02}-->-<!--{$arrSiteInfo.tel03}--> <!--{if $arrSiteInfo.business_hour != ""}-->(受付時間/<!--{$arrSiteInfo.business_hour}-->)<!--{/if}-->


会員登録の完了メールの内容カスタマイズ



(ファイル)\data\Smarty\templates\default\mail_templates\customer_regist_mail.tpl

・名前

<!--{$arrForm.name01}--><!--{$arrForm.name02}-->

・カナ

<!--{$arrForm.kana01}--><!--{$arrForm.kana02}-->

・郵便番号

〒<!--{$arrForm.zip01}-->-<!--{$arrForm.zip02}-->

・住所

<!--{$arrPref[$arrForm.pref.value]}--><!--{$arrForm.addr01}-->

<!--{$arrForm.addr02}-->

・電話

<!--{$arrForm.tel01}-->-<!--{$arrForm.tel02}-->-<!--{$arrForm.tel03}-->

・メールアドレス

<!--{$arrForm.email}-->

<!--{$arrForm.email_mobile}-->

・職業:

<!--{$arrJob[$arrForm.job.value]}-->

・性別:

<!--{$arrForm.sex}-->

・SHOP用メモ:

<!--{$arrForm.note}-->

・パスワードを忘れた時のヒント:質問&答え

<!--{$arrForm.reminder}-->

<!--{$arrForm.reminder_answer}-->


退会会員の再登録、時間制限の解除



(SC_Helper_Customer.phpカスタマイズ)

data\class\helper\SC_Helper_Customer.php

if (count($arrRet) > 0) {

// 会員である場合

if ($arrRet[0]['del_flg'] != '1') {

// 登録済み

return 1;

} else {

// 退会した会員である場合

$leave_time = SC_Utils_Ex::sfDBDatetoTime($arrRet[0]['update_date']);

$now_time = time();

$pass_time = $now_time - $leave_time;

// 退会から何時間-経過しているか判定する。

$limit_time = ENTRY_LIMIT_HOUR * 3600;

if($pass_time < $limit_time) {

// 再登録制限期間内削除ユーザー

return 2;

}

}

}

// 登録可能

return 0;

}


退会会員の再登録、時間制限の解除



(管理画面から行う方法)

「システム設定」 → 「パラメーター設定」 → 「ENTRY_LIMIT_HOUR 再入会制限時間 (単位: 時間)」


MYページ



ログイン処理:

http://www.☆.com/eccube/html/mypage/login.php

eccube-2.11.5\html\mypage\login.php



テンプレート

eccube-2.11.5\data\Smarty\templates\default\mypage\login.tpl

ロジック

eccube-2.11.5\data\class\pages\mypage\LC_Page_Mypage_Login.php (?)


ログアウト処理



MYページ 内の 「ログイン」ブロックに含まれる

eccube-2.11.5\data\Smarty\templates\default\frontparts\bloc\login.tpl


「ログイン」ブロックの編集:ポイント表示の削除



eccube-2.11.5\data\Smarty\templates\default\frontparts\bloc


ログイン後のページ:ポイント表示の削除



「現在の所持ポイントは」のような不要なメッセージを削除

eccube-2.11.5\data\Smarty\templates\default\mypage\navi.tpl


ログイン後のページ:購入履歴



eccube-2.11.5\data\Smarty\templates\default\mypage\index.tpl


会員登録内容変更 → 会員登録内容変更(入力ページ) → 会員登録内容変更(入力ページ)



変更自体は新規登録時の form_personal_input.tpl

確認ページは

eccube-2.11.5\data\Smarty\templates\default\mypage\change_confirm.tpl






<< XP → Win7 転送ツール< | >会員登録システムを探す >>
search
layout
admin

[▲page top]