カテゴリ
最近の記事
管理人
kappa-s.jpg
名前:nyatto
twitter:http://twitter.com/nyattoh
Facebook:http://www.facebook.com/nyattoh
FBレター:http://fb-letter.com/100002151358967.html
一言:

持ち前の中途半端さが全面に出ています。
あんまり突っ込まれるとぐぅの根も出ませんが、
何かあったらお気軽に書き込んでください。

コメントはスパム対策で一部ですが承認制にしてある記事があります。ご了承下さい。
ツイッター始めました。
Facebookの情報をメールでお届けします

内藤
過去ログ
リンク集
□個人的リンク
VabooLog2011
異邦人の食卓
アラフォー男子のウチのゴハン
アートルーム ヘアビジョン
Look at me.
本と文化の街 スーパー源氏
(古本・書籍検索ポータル)


■相互リンク
・「eguegu-Photo
・「詠う鯨
・「電脳生活で健康維持
・「やくにたたない?PCブログ
・「ジャパネットたかたの通販ガイド

■メーカ
NEC
SHARP
ソニースタイル
TOSHIBA
富士通
Panasonic
日立
エプソンダイレクト
Lenovo
日本hp
Dell
ソーテック
オンキヨー
ASUS Shop

■BTO・パーツ屋
グットウィル
韋駄天PC Online Shopping
エーチャージ
クレバリー
サイコム
TWOTOP
ドスパラ
ハーキュリーズ
パソコン工房
T・ZONE
VSPEC
フェイス
BLESS
フロンティア
マウスコンピューター

■中古
ソフマップ中古販売
ソフマップ・ドットコム 買取りサイト

■ショッピングモール
Amazon
楽天
【Yahoo!ショッピング】おすすめ情報
ライブドアデパート

タグクラウド
TOP  >  プログラミング  > 

2011年11月03日

EC-CUBEで会員機能を無効にする・カート機能を削除する・お名前.comサーバでメール送信できるようにする

このエントリーをはてなブックマークに追加
//
EC-CUBE 2.11.3にて。
単純な申込サイトを構築したいのですが、
定員などの設定をしたくて、
更に決済関連も必要なので
手っ取り早くEC-CUBEを改造することにしました。

1.お名前.comサーバでメールが送信できない場合


sendmailのパスを書き換えたらOKでした。

\data\class\SC_SendMail.php

/**
* メーラーバックエンドに応じたパラメーターを返す.
*
* @param string $backend Pear::Mail のバックエンド
* @return array メーラーバックエンドに応じたパラメーターの配列
*/
function getBackendParams($backend) {
switch ($backend) {
case 'mail':
$arrParams = array();
break;
case 'sendmail':
$arrParams = array('sendmail_path' => '/usr/lib/sendmail', // 修正
'sendmail_args' => '-i'
);
break;
case 'smtp':
default:
$arrParams = array(
'host' => $this->host,
'port' => $this->port
);
break;
}
return $arrParams;
}
}


2.カゴ(カート)機能を無効にする


つまり、カゴに入れずに一つずつ申し込むようにする場合。
目に見えるところはテンプレートなどでカゴの表示を削除します。
そのうえで、
(1) カゴに入れるタイミングで既にカートに入っているものを全て空にしてから
(2) カートの中身を見せる
という動作です。
継承されたCartSessionクラス(extend)をいじります。

・data\class_extends\SC_CartSession_EX.php
class SC_CartSession_Ex extends SC_CartSession {
// 追加開始
function addProduct($product_class_id, $quantity) {

$objProduct = new SC_Product_Ex();
$arrProduct = $objProduct->getProductsClass($product_class_id);
$productTypeId = $arrProduct['product_type_id'];

$this->delAllProducts($productTypeId);

parent::addProduct($product_class_id, $quantity);
}
// 追加終了
}


3.会員登録のページを飛ばす


ログインなどの表示はテンプレートで削除します。
その上で、ページ遷移のswitch振り分けをちょろっといじります。

・data\class\pages\shopping\LC_Page_Shopping.php

switch ($this->getMode()) {

// 前のページに戻る
case 'return':
SC_Response_Ex::sendRedirect(CART_URLPATH);
exit;
break;

// 複数配送ページへ遷移
case 'multiple':
$this->lfInitParam($objFormParam);
$objFormParam->setParam($_POST);
$this->arrErr = $this->lfCheckError($objFormParam);

if (SC_Utils_Ex::isBlank($this->arrErr)) {
$this->lfRegistData($this->tpl_uniqid, $objPurchase,
$objCustomer, $objFormParam, true);

$objSiteSess->setRegistFlag();
SC_Response_Ex::sendRedirect(MULTIPLE_URLPATH);
exit;
}
$this->tpl_mainpage = $nonmember_mainpage;
$this->tpl_title = $nonmember_title;
break;

// ログイン実行
case 'login':
// $this->lfInitLoginFormParam($objFormParam);
// $objFormParam->setParam($_POST);
// $objFormParam->trimParam();
// $objFormParam->convParam();
// $objFormParam->toLower('login_email');
// $this->arrErr = $objFormParam->checkError();
//
// // ログイン判定
// if (SC_Utils_Ex::isBlank($this->arrErr)
// && $this->doLogin($objCustomer,
// $objFormParam->getValue('login_email'),
// $objFormParam->getValue('login_pass'))) {
//
// // モバイルサイトで携帯アドレスの登録が無い場合、携帯アドレス登録ページへ遷移
// if(SC_Display_Ex::detectDevice() == DEVICE_TYPE_MOBILE) {
// if($this->hasEmailMobile($objCustomer) == false) {
// SC_Response_Ex::sendRedirectFromUrlPath('entry/email_mobile.php');
// exit;
// }
// }
// // スマートフォンの場合はログイン成功を返す
// elseif (SC_Display_Ex::detectDevice() === DEVICE_TYPE_SMARTPHONE) {
// echo SC_Utils_Ex::jsonEncode(array('success' =>
// $this->getNextLocation($this->cartKey, $this->tpl_uniqid,
// $objCustomer, $objPurchase,
// $objSiteSess)));
// exit;
// } else {
// SC_Response_Ex::sendRedirect(
// $this->getNextLocation($this->cartKey, $this->tpl_uniqid,
// $objCustomer, $objPurchase,
// $objSiteSess));
// }
// exit;
// }
// // ログインに失敗した場合
// else {
// // 仮登録の場合
// if($this->checkTempCustomer($objFormParam->getValue('login_email'))) {
// if (SC_Display_Ex::detectDevice() === DEVICE_TYPE_SMARTPHONE) {
// echo $this->lfGetErrorMessage(TEMP_LOGIN_ERROR);
// exit;
// } else {
// SC_Utils_Ex::sfDispSiteError(TEMP_LOGIN_ERROR);
// exit;
// }
// } else {
// if (SC_Display_Ex::detectDevice() === DEVICE_TYPE_SMARTPHONE) {
// echo $this->lfGetErrorMessage(SITE_LOGIN_ERROR);
// exit;
// } else {
// SC_Utils_Ex::sfDispSiteError(SITE_LOGIN_ERROR);
// exit;
// }
// }
// }
// break;
//
// // お客様情報登録
case 'nonmember_confirm':
$this->tpl_mainpage = $nonmember_mainpage;
$this->tpl_title = $nonmember_title;
$this->lfInitParam($objFormParam);
$objFormParam->setParam($_POST);
$this->arrErr = $this->lfCheckError($objFormParam);

if (SC_Utils_Ex::isBlank($this->arrErr)) {

$this->lfRegistData($this->tpl_uniqid, $objPurchase,
$objCustomer, $objFormParam);

$objSiteSess->setRegistFlag();
SC_Response_Ex::sendRedirect(SHOPPING_PAYMENT_URLPATH);
exit;
}
break;

// お客様情報入力ページの表示
case 'nonmember':
$this->tpl_mainpage = $nonmember_mainpage;
$this->tpl_title = $nonmember_title;
$this->lfInitParam($objFormParam);
// ※breakなし

default:
// 前のページから戻ってきた場合は, お客様情報入力ページ
if (isset($_GET['from']) && $_GET['from'] == 'nonmember') {
$this->tpl_mainpage = $nonmember_mainpage;
$this->tpl_title = $nonmember_title;
$this->lfInitParam($objFormParam);
}
// 通常はログインページ
// else {
// $this->lfInitLoginFormParam($objFormParam);
// }

$this->setFormParams($objFormParam, $objPurchase, $this->tpl_uniqid);
$objPurchase->unsetShippingTemp();
}

// 記憶したメールアドレスを取得
$this->tpl_login_email = $objCookie->getCookie('login_email');
if (!SC_Utils_Ex::isBlank($this->tpl_login_email)) {
$this->tpl_login_memory = "1";
}

// 入力値の取得
$this->arrForm = $objFormParam->getFormParamList();

// 携帯端末IDが一致する会員が存在するかどうかをチェックする。
if (SC_Display_Ex::detectDevice() === DEVICE_TYPE_MOBILE) {
$this->tpl_valid_phone_id = $objCustomer->checkMobilePhoneId();
}
}


つまり、ログインの遷移でも、breakをはずしてnonmenberの処理に落としてしまうのです。
上記ソースはcaseの順番が元の順番と違いますので注意。

■入力項目追加について
データベースとソースをいじりました。
それは次回に回します。

にほんブログ村 PC家電ブログ パソコン・周辺機器へ
posted at 23:04 | このブログの読者になる -| 更新情報をチェックする | Comment(1) | TrackBack(0) | プログラミング
この記事へのコメント
助かりました!有難うございます!!!
Posted by at 2013年06月22日 15:05
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
この記事へのトラックバックURL
http://blog.seesaa.jp/tb/233445003

この記事へのトラックバック
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。