スマートフォンでPCサイトを表示 [EC-CUBE 2.11.5]

data/class/SC_Display.php の 144行目をコメントアウトし DEVICE_TYPE_PC を返すよう定義する。

function detectDevice(){
$nu = new Net_UserAgent_Mobile();
$su = new SC_SmartphoneUserAgent_Ex();
$retDevice = 0;
if ($nu->isMobile()) {
return DEVICE_TYPE_MOBILE;
} elseif ($su->isSmartphone()) {
//return DEVICE_TYPE_SMARTPHONE;
return DEVICE_TYPE_PC;
} else {
return DEVICE_TYPE_PC;
}
}

全ての端末でPCサイトを表示したければ、端末による条件分岐をやめて、常にDEVICE_TYPE_PC を返せばよい。

function detectDevice(){
return DEVICE_TYPE_PC;
}

スマートフォンかどうかはどこで判断しているのか
data/module/Net/UserAgent/Mobile.php の 400行目付近にある isSmartphone。
$_SERVER[‘HTTP_USER_AGENT’] を取得して、各スマートフォン固有の文字列とマッチするかどうかを調べてる。

// }}}
// {{{ isSmartphone()

/**
* Checks whether or not the user agent is Smartphone by a given user agent string.
*
* @param string $userAgent
* @return boolean
* @since Method available since Release 0.31.0
*/
function isSmartphone($userAgent = null)
{
if (is_null($userAgent)) {
$userAgent = @$_SERVER['HTTP_USER_AGENT'];
}

$useragents = array(
'iPhone', // Apple iPhone
'iPod', // Apple iPod touch
'Android', // 1.5+ Android
'dream', // Pre 1.5 Android
'CUPCAKE', // 1.5+ Android
'blackberry9500', // Storm
'blackberry9530', // Storm
'blackberry9520', // Storm v2
'blackberry9550', // Storm v2
'blackberry9800', // Torch
'webOS', // Palm Pre Experimental
'incognito', // Other iPhone browser
'webmate' // Other iPhone browser
);

$pattern = implode("|", $useragents);
return preg_match('/'.$pattern.'/', $userAgent);
}

ECCUBE 海外サーバーのタイムゾーン対応

EC-CUBEバージョン     2.11.5
PHPバージョン     PHP 5.2.17
DBバージョン     MySQL 5.1.66-community-log

受注日時が日本時間でなく海外の時間帯(time zone)などになってしまう場合。

 

海外のサーバーなどで、権限の都合でSQLを使えない場合の対処。

 

/data/class/SC_Query.php 内の73行目以下 3か所に
$this->conn->query(“SET time_zone = ‘Asia/Tokyo'”);
を追加したら、受注日などが修正されました。

——————————————————————-
if ($new) {
$this->conn = MDB2::connect($dsn, $options);
$this->conn->query(“SET time_zone = ‘Asia/Tokyo'”);
} else {
$this->conn = MDB2::singleton($dsn, $options);
$this->conn->query(“SET time_zone = ‘Asia/Tokyo'”);
}
if (!PEAR::isError($this->conn)) {
$this->conn->query(“SET time_zone = ‘Asia/Tokyo'”);
$this->conn->setCharset(“utf8”);
$this->conn->setFetchMode(MDB2_FETCHMODE_ASSOC);
——————————————————————-

 

.htaccess リダイレクト

.htaccess を用いたリダイレクト

A.htmlへのアクセスをB.phpに転送する

一定の場所に.htaccessをおくだけで A.html へのアクセスが自動的に B.php に転送されます。

.htaccess でリダイレクト

RedirectPermanent URL-path URL

使用例

ブログフォルダにあるblog.htmlをサイトのトップページにする場合

RedirectPermanent /blog/blog.html http://user-domain/index.php



EC-CUBE htmlをrootにする。htmlとdata

EC-CUBEバージョン 2.4.4
PHPバージョン PHP 5.2.6
DBバージョン MySQL 5.0.51a-community-log

早速2.4.4で試してみる。

チカッパにインストールしてみた。

require.php

define.php
/** HTMLディレクトリからのDATAディレクトリの相対パス */
define(“HTML2DATA_DIR”, “/data/“);

/** DATA ディレクトリから HTML ディレクトリの相対パス */
define(“DATA_DIR2HTML”, “../“);

公開ディレクトリ以下にdataを配置したら、ブラウザからURLでdataにアクセスできないようにする。

dataに.htaccessを置く

下記の2行を書いてdataフォルダにアップ

Order deny,allow
deny from all

これでURLをたたいてもアクセス禁止になります。

チカッパレンタルサーバーEC-CUBE メール設定

チカッパレンタルサーバーEC-CUBE メール設定

EC-CUBE
バージョン
2.4.3
PHP
バージョン
PHP 5.2.6
DB
バージョン
MySQL 5.0.51a-community-log

会員登録とお客様の注文メールが届かない

管理画面の「システム設定」→「パラメータ設定」
「MAIL_BACKEND」

ここの値を「”smpt”」から「”mail”」に変える。

他のサイトを参考にしたところ、チカッパのアカウントポート番号を変更と
ありますが、必要ありませんでした。

この一箇所を修正するだけで、メール送受信が双方上手く動きました。

*sendmailでもチカッパでは使えませんでした。

株式会社TORAT

EC-CUBE 商品詳細ページ サブタイトル削除

EC-CUBEバージョン 2.4.3
PHPバージョン PHP 5.2.6
DBバージョン MySQL 5.0.51a-community-log

EC-CUBEの商品マスタ登録でサブ画像を入れてるのに

商品詳細ページに反映されない・・・・・

それは何故?

サブ画像のところのタイトルとコメントを入力しないと

反映されません(気がつかなかった・・・)

今回はデザイン上でサブコメントとサブタイトルは使いません。

ところが、詳細に写真などを入れても、サブタイトルを必ず入力しないと

商品詳細ページには反映されません。

商品登録ページでは、ちゃんと入っているのに・・・・・だから気がつかなかったのか・・・

タイトルサブコメントを入れたくないときは!!!

商品詳細ページ編集

<!–▼サブコメントここから–>
<!–{section name=cnt loop=$smarty.const.PRODUCTSUB_MAX}–>
<!–{assign var=key value=”sub_title`$smarty.section.cnt.iteration`”}–>
<!–{if $arrProduct[$key] != “”}–>

上の部分の

<!–{if $arrProduct[$key] != “”}–>

と、それに掛かる

<!–{/if}–>

<!–{/section}–>
<!–▲サブコメントここまで–>

赤の部分2箇所を削除

EC-CUBE カテゴリーを折りたたまず全て表示

EC-CUBEバージョン 2.4.3
PHPバージョン PHP 5.2.6

管理画面→デザイン管理→ブロック編集→カテゴリ(tpl)

32行目
コメントアウトの為に * で囲う
<!–{* if $arrTree[cnt].display == 1 *}

49行目
コメントアウトの為に * で囲う
<!–{* /if *}–>
———————————————————–
以上2箇所修正

EC-CUBE商品画像をlightboxで表示させる

lightboxを使って商品画像を表示する

EC-CUBE 商品詳細ページ商品画像をlightboxで表示する。
商品画像拡大表示をlightboxで表示する。

EC-CUBEバージョン 2.4.1
PHPバージョン PHP 5.2.6
DBバージョン MySQL 5.0.51a-community-log

1.lightboxをダウンロードする。
lightbox2.04.zip をダウンロード

eccube_lightbox

2.上の3つのフォルダをアップロードする。

アップロード先

html/user_data /packages/default/lightbox

*lightboxというファルダを作成する。

*index.html以外をアップロード

EC-CUBEのファイルを書き換える

data/Smarty/templates/default/detail.tpl

data/Smarty/templates/default/site_frame.tpl

1.書き換えるファイルは上記の2ファイル

data/Smarty/templates/default/detail.tpl

【修正箇所】

1,59行目付近にある

<!--{assign var=key value="main_image"}-->

の下に

<!--{assign var=keyl value="main_large_image"}-->

を追加します。

—————————————————————————————————-

2,61行目付近にある

<!–★画像★–>の下の

<a href="javascript:void(win01('./detail_image.php?product_id=
<!--{$arrProduct.product_id}-->&amp;image=main_large_image
<!--{if $smarty.get.admin == 'on'}-->&amp;admin=on<!--{/if}-->','detail_image','
<!--{$arrFile.main_large_image.width+60}-->', '
<!--{$arrFile.main_large_image.height+80}-->'))">
<img src="<!--{$arrFile[$key].filepath}-->
" width="<!--{$arrFile[$key].width}-->" height="
<!--{$arrFile[$key].height}-->" alt="<!--{$arrProduct.name|escape}-->" />
</a>

を以下に書き換えます。

<a href="<!--{$arrFile[$keyl].filepath}-->" rel="lightbox">
<img src="<!--{$arrFile[$key].filepath}-->" width="
<!--{$arrFile[$key].width}-->" height="<!--{$arrFile[$key].height}-->
" alt="<!--{$arrProduct.name|escape}-->" />
</a>

-----------------------------------------------------------------------

3,<!–★拡大する★–>の下の

<a href="javascript:void(win01('./detail_image.php?product_id=
<!--{$arrProduct.product_id}-->&amp;image=main_large_image
<!--{if $smarty.get.admin == 'on'}-->&amp;admin=on<!--{/if}-->','
detail_image','<!--{$arrFile.main_large_image.width+60}-->', '
<!--{$arrFile.main_large_image.height+80}-->'))" onmouseover="chgImg
('<!--{$TPL_DIR}-->img/products/b_expansion_on.gif','expansion01');"
onMouseOut="chgImg('<!--{$TPL_DIR}-->img/products/b_expansion.gif','expansion01');">
<img src="<!--{$TPL_DIR}-->img/products/b_expansion.gif"
 width="85" height="13" alt="画像を拡大する" name="expansion01" id="expansion01" />
</a>

を以下に書き換えます。

<a href="<!--{$arrFile[$keyl].filepath}-->" rel="lightbox"
 onmouseover="chgImg('<!--{$TPL_DIR}-->img/products/b_expansion_on.gif','
expansion01');" onMouseOut="chgImg('<!--{$TPL_DIR}-->
img/products/b_expansion.gif','expansion01');">
<img src="<!--{$TPL_DIR}-->img/products/b_expansion.gif"
 width="85" height="13" alt="画像を拡大する" name="expansion01" id="expansion01" />
</a>

data/Smarty/templates/default/site_frame.tpl

【修正箇所】

1,<head>と</head>の間に以下を追加。

<script type="text/javascript" src="<!--{$TPL_DIR}-->
lightbox/js/prototype.js"></script>
<script type="text/javascript" src="<!--{$TPL_DIR}-->
lightbox/js/scriptaculous.js?load=effects,builder"></script>
<script type="text/javascript" src="<!--{$TPL_DIR}-->
lightbox/js/lightbox.js"></script>
<script>LightboxOptions.fileLoadingImage="<!--{$TPL_DIR}-->
lightbox/images/loading.gif"; </script>
<script>LightboxOptions.fileBottomNavCloseImage="<!--{$TPL_DIR}-->
lightbox/images/closelabel.gif"; </script>
<link rel="stylesheet" href="<!--{$TPL_DIR}-->
lightbox/css/lightbox.css" type="text/css" media="screen" />