‘EC CUBE – カスタマイズ’ カテゴリーのアーカイブ

EC CUBEのヘッダーやテンプレートにログインや買物カゴのブロックを設定する

2009 年 9 月 15 日 火曜日

EC CUBEでログインや買い物カゴは、ヘッダーや商品一覧、詳細ページの中では使用できないが、下記のような形で、phpを呼び出すと、使用する事が出来る。

ログインを表示
<!–{include_php file=`$smarty.const.HTML_PATH`frontparts/bloc/login.php}–>

かごの中を表示
<!–{include_php file=`$smarty.const.HTML_PATH`frontparts/bloc/cart.php}–>

このエントリーを含むはてなブックマーク

EC CUBEでカテゴリーの最大階層を増やす

2009 年 4 月 21 日 火曜日

EC CUBEはデフォルトでカテゴリーの最大階層が5に指定されている。これを増やすにはパラメーター設定のLEVEL_MAXの数値を変更すれば良い。
カテゴリーを細分化したい場合、特にSEO対策などを念頭におく場合には数値の変更。

このエントリーを含むはてなブックマーク

EC CUBEにパンくずナビを設置する

2009 年 4 月 21 日 火曜日

ソースそのものを以下のサイトを参考

www.gnnk.net
web book movie
[EC-CUBE]パンくずリスト

バージョンが古いのか、上記サイトの指示に従ってソースを埋めても動作しなかったので、以下覚書。
なお、以下の行数はEC CUBE version 2.3.4

/data/class_extends/helper_extends/SC_Helper_DB_Ex.php
37行目に以下を追加

function sfGetTopicPath($category_id){
// 商品が属するカテゴリIDを縦に取得
$objQuery = new SC_Query();
$arrCatID = $this->sfGetParents($objQuery, “dtb_category”, “parent_category_id”, “category_id”, $category_id);
$TopicPath = ” > “;

// カテゴリー名称を取得する
foreach($arrCatID as $key => $val){
$sql = “SELECT category_name FROM dtb_category WHERE category_id = ?”;
$arrVal = array($val);
$CatName = $objQuery->getOne($sql,$arrVal);
if( $val != $category_id){
$TopicPath .= ‘<a href=”./list.php?category_id=’ .$val . ‘”>’ . $CatName . ‘</a> > ‘;
}else{
$TopicPath .= $CatName;
}
}

return $TopicPath;
}
function sfGetTopicPath2($category_id){
// 商品が属するカテゴリIDを縦に取得
$objQuery = new SC_Query();
$arrCatID = $this->sfGetParents($objQuery, “dtb_category”, “parent_category_id”, “category_id”, $category_id);
$TopicPath = ” > “;

// カテゴリー名称を取得する
foreach($arrCatID as $key => $val){
$sql = “SELECT category_name FROM dtb_category WHERE category_id = ?”;
$arrVal = array($val);
$CatName = $objQuery->getOne($sql,$arrVal);
$TopicPath .= ‘<a href=”./list.php?category_id=’ .$val . ‘”>’ . $CatName . ‘</a> > ‘;
}
return $TopicPath;
}

これは指定通りに、{}の中に埋め込む。

/data/class/pages/products/LC_Page_Products_List.php
107行目に以下を追加
$TopicPath = $objDb->sfGetTopicPath($arrCategory_id[0]);
$this->tpl_topicpath = $TopicPath;

こちらは107行目ではなく113行目

/data/class/pages/products/LC_Page_Products_Detail.php
211行目に以下を追加

$arrTopicPath = $objDb->sfGetTopicPath2($arrCategory_id[0]);
$this->tpl_topicpath = $arrTopicPath;

これは211行目ではなく231行目

/data/Smarty/templates/default/site_main.tpl
37行目に以下を追加

<!–{if $tpl_topicpath != “”}–>
<a href=”<!–{$smarty.const.SITE_URL}–>index.php”>TopPage</a>
<!–{$tpl_topicpath}–>
<!–{$arrProduct.name|escape}–>
<!–{/if}–>

これは、設置した場所であれば、指定以外(detail.phpやlist.php)でも可。
ただし、URLを静的化している場合でも、発行されるURLは動的(list.php?category=***の形)になる。

このエントリーを含むはてなブックマーク

EC CUBEのタイトルをトップページ・商品一覧ページ・商品詳細ページで分ける

2009 年 4 月 21 日 火曜日

EC CUBEはデフォルトではタイトルまわりが、SEO的にもユーザービリティ的も良くは感じない。

site_frame.tplを以下のように変更

<!–{assign var=index  value=”`$smarty.const.URL_DIR`index.php”}–>

<!–{if $smarty.server.PHP_SELF==$index}–>
<title><!–{$arrSiteInfo.shop_name}–></title>

<!–{elseif $tpl_title == “商品一覧ページ”}–>
<title><!–{$tpl_subtitle|escape}–> : <!–{$arrSiteInfo.shop_name}–></title>

<!–{else}–>

<title><!–{$tpl_title|escape}–> : <!–{$arrSiteInfo.shop_name}–></title>
<!–{/if}–>

商品一覧ページでは最上階のカテゴリを表示

このエントリーを含むはてなブックマーク

EC CUBEの商品詳細ページでタイトルなどに商品詳細を出力しない方法

2009 年 4 月 21 日 火曜日

EC CUBEの><!–{$tpl_title|escape}–>は商品詳細ページに 商品詳細 タイトル と出力するので、SEO対策にとっても、ユーザ-にとっても邪魔な存在。
そこでclass/pages/products/LC_Page_Products_Detail.phpの中の254行目を以下のように変更する。

$this->tpl_title = “商品詳細 “. $this->arrProduct["name"];

$this->tpl_title = $this->arrProduct["name"];

これで<!–{$tpl_title|escape}–>を用いても、商品詳細の文字は出力されなくなる。

このエントリーを含むはてなブックマーク

EC CUBE新着情報の日付のフォーマットを変更する

2009 年 3 月 5 日 木曜日

デフォルト:9999年12月31日
<dt><!–{$arrNews[data].news_date_disp|date_format:”%Y&#24180;%m&#26376;%d&#26085;”}–></dt>

変更したい形式:9999.12.31
<dt><!–{$arrNews[data].news_date_disp|date_format:”%Y.%m.%.”}–></dt>

このエントリーを含むはてなブックマーク

EC CUBEをSSHでインストールする方法(手順)

2009 年 2 月 17 日 火曜日

※2.3.3の部分はversionが上がった場合には適時変更。
※操作を誤った場合はrm ***, rm -r ***でファイル又はフォルダを削除

以下SSHで接続完了後の手順
・wget http://downloads.ec-cube.net/src/eccube-2.3.3.tar.gz
・lsコマンドでeccube-2.3.3.tar.gzがダウンロードできているかを確認
・tar xvf eccube-2.3.3.tar.gz -pで解凍
 ※tar xvf eccube-2.3.3.tar.gz でも問題ないが、パーミッションの変更の必要がない
・mv eccube-2.3.3/data/ ./でdataフォルダの階層を直下に配置
 ※mkdirでdataフォルダを作成しておいてもよいが省略
・mv eccube-2.3.3/html/* ./でhtml以下のファイル群を直下に配置
・rm -r eccube-2.3.3で展開フォルダを削除
・rm -r eccube-2.3.3.tar.gzで圧縮フォルダを削除
・lsで確認してabouts, data, forgot, install, …等のファイル・フォルダ群が展開されていれば完了
 ※この時、.htaccessが展開されていない可能場合があるので、その時はローカルで解凍した.htaccessを設置する
・vi define.phpでdefine.phpで開く
・define(“HTML2DATA_DIR”, “../data/”);をdefine(“HTML2DATA_DIR”, “/data/”);に変換。
・ZZでファイルを保存してviを終了
 ※コマンドモードと入力モードは『i』『Esc』の各キーで切り替え
 ※cat define.phpで書き換えられたからを確認。

以上で、/html/を除いた状態(ドメイン直下)でアクセスが可能。

以下、CORESERVERの場合のみ追加処理
※以下はftpでもsshでも可

1.phpMyAdminのみが文字化けする問題
DBをUNICODEで作成し、問題なくインストールしてもphpMyAdminのDBのみが文字化けする(運用上は問題ないが、管理画面以外からのカスタマイズに問題が発生する場合)

eccube/data/class/SC_DbConn.phpを編集
64行目以下に$this->conn->query(“SET NAMES utf8″);を追加

$this->conn = $objDbConn
$this->error_mail_to = DB_ERROR_MAIL_TO;

$this->conn = $objDbConn
$this->conn->query(“SET NAMES utf8″);
$this->error_mail_to = DB_ERROR_MAIL_TO;

※上記の行でエラーを起こした場合には、一度$this->conn->query(“SET NAMES utf8″);をコメントアウトした上で、EC CUBEのインストールを行い、上記行を追加し、インストール画面で既存のDBを削除した上で再インストールを行う。

2.php safemode(PHP セーフモード)の解除
.htaccessに以下2行を追加

AddHandler application/x-httpd-php5cgi .php
php_flag magic_quotes_gpc off

※これを行わないとセーフティーモードが解除されず、インストールが完了しても画面が真っ白になる。

3.php.iniの作成
以下の内容を記載したphp.iniを作成

AddHandler application/x-httpd-php5cgi .php
mbstring.language Japanese
output_handler mb_output_handler
mbstring.encoding_translation 1
magic_quotes_gpc = off
#php_flag session.use_cookies 0
#php_flag session.use_trans_sid 1

mbstring.internal_encoding UTF-8

upload_max_filesize 5M

作成したphp.iniファイルを以下フォルダに配置

data/
admin/
admin/basis
admin/contents
admin/css
admin/customer
admin/design
admin/mail
admin/order
admin/ownersstore
admin/products
admin/system
admin/total

このエントリーを含むはてなブックマーク

EC CUBEでコメント欄を設けるタグ

2009 年 1 月 31 日 土曜日

  <!–この商品に対するお客様の声–>
  <div id=”customervoicearea”>
    <h2><img src=”<!–{$TPL_DIR}–>img/products/title_voice.jpg” width=”580″ height=”30″ alt=”この商品に対するお客様の声” /></h2>

    <!–{if count($arrReview) < $smarty.const.REVIEW_REGIST_MAX}–>
    <!–★新規コメントを書き込む★–>
      <a href=”./review.php”
         onclick=”win02(‘./review.php?product_id=<!–{$arrProduct.product_id}–>’,'review’,’580′,’580′); return false;”
         onmouseover=”chgImg(‘<!–{$TPL_DIR}–>img/products/b_comment_on.gif’,'review’);”
         onmouseout=”chgImg(‘<!–{$TPL_DIR}–>img/products/b_comment.gif’,'review’);” target=”_blank”>
        <img src=”<!–{$TPL_DIR}–>img/products/b_comment.gif” width=”150″ height=”22″ alt=”新規コメントを書き込む” name=”review” id=”review” />
      </a>
    <!–{/if}–>

    <!–{if count($arrReview) > 0}–>
    <ul>
    <!–{section name=cnt loop=$arrReview}–>
      <li>
        <p class=”voicedate”><!–{$arrReview[cnt].create_date|sfDispDBDate:false}–> 投稿者:<!–{if $arrReview[cnt].reviewer_url}–><a href=”<!–{$arrReview[cnt].reviewer_url}–>” target=”_blank”><!–{$arrReview[cnt].reviewer_name|escape}–></a><!–{else}–><!–{$arrReview[cnt].reviewer_name|escape}–><!–{/if}–> おすすめレベル:<span class=”price”><!–{assign var=level value=$arrReview[cnt].recommend_level}–><!–{$arrRECOMMEND[$level]|escape}–></span></p>
        <p class=”voicetitle”><!–{$arrReview[cnt].title|escape}–></p>
        <p class=”voicecomment”><!–{$arrReview[cnt].comment|escape|nl2br}–></p>
      </li>
    <!–{/section}–>
    </ul>
    <!–{/if}–>
  </div>
  <!–お客様の声ここまで–>

このエントリーを含むはてなブックマーク

EC CUBEのタイトル改変:文字位置とタグ構成

2009 年 1 月 30 日 金曜日

siteframe.tplにある、siteframe.tpl

<!–{assign var=index  value=”`$smarty.const.URL_DIR`index.php”}–>
<!–{if $smarty.server.PHP_SELF==$index}–>
<title><!–{$arrSiteInfo.shop_name}–></title>
<!–{else}–>
<title><!–{$tpl_title|escape}–>:<!–{$arrSiteInfo.shop_name|escape}–></title>

このエントリーを含むはてなブックマーク

EC CUBEのタイトルを改変:デフォルト文字を変更する

2009 年 1 月 30 日 金曜日

<!–{assign var=index  value=”`$smarty.const.URL_DIR`index.php”}–>
<!–{if $smarty.server.PHP_SELF==$index}–>
<title><!–{$arrSiteInfo.shop_name}–></title>
<!–{else}–>
<title><!–{$tpl_title|escape}–>:<!–{$arrSiteInfo.shop_name}–></title>
<!–{/if}–>

このエントリーを含むはてなブックマーク