みつばらぼ

Web制作に関する自分用メモ

一定期間更新がないため広告を表示しています

| 2016.09.10 | - | - | - | |

カラーミーショップでは、GMOバナーが強制的にヘッダー上に挿入されるのですが、OSがwindows10の場合は表示されません。

windows10であれば、ブラウザは関係なく生じる不具合のようです。

(帯の表示条件は、カラメルに出店した場合だったような気がする…)

 

windows10とそれ以外の環境では背景に設定した画像にズレが生じてしまい、画面最上部にラインを入れたようなデザインだと辛い…。

 

で、簡単ですがjQueryで対策してみました。スタイルシートは変更していません。

使用OSがwindows10だったら、背景の位置を上に30ピクセルずらす例です。ご利用のデザインにより数値を変えて調節してみてください。

 

<script type="text/javascript">
$(function() {
var os, ua = navigator.userAgent;
if (ua.match(/Win(dows )?NT 10¥.0/)) {
    $('body').css('background-position', '0 -30px');
}
});
</script>

| 2016.09.10 | - | comments(0) | trackbacks(0) | |
最近、WordPressに手を出しております。
まだまだ勉強中!(`・ω・´)

デバッグモード時に管理者権限以外でログインした時に下のようなエラーが出るのが気になっていました。
 
PHP Notice:  Undefined index: hook_suffix
in /hogehoge/wp-admin/includes/screen.php on line 388

デバッグモードOFFにすれば良いのは分かっていても、気になるものは気になる。

この時点でいくつかプラグインをインストールしていたため、1つずつ無効化しながら確認して行ったところ、「WP-DB-Backup」を無効化するとエラーが出なくなるのが分かりました。
WP-DB-Backup」は、WordPressデータベースのバックアップを取ってくれる便利なプラグインなので、何とかしたい。

対策を探すと、本家のフォーラムにズバリな記事がありました


wp-db-backup.phpの619行目あたりに次のコードがあります。
 
$_page_hook = add_management_page(__('Backup','wp-db-backup'),
__('Backup','wp-db-backup'), 'import', $this->basename, 
array(&$this, 'backup_menu'));

この行の下に、1行追加で解決です。
 
if( !$_page_hook ) return;
| 2014.10.20 | WordPress | comments(0) | trackbacks(0) | |

TOPページと下位ページに違うスタイルシートを適用する事になって、どう書けば良いのかちょっと迷ってしまいました。

 

これでOK。

 

site_frame.tplなどに記述





| 2013.08.28 | EC-CUBE2.11〜2.12系でサイト構築 | comments(0) | trackbacks(0) | |
諸事情で、XAMPP環境をLAN内サーバへ設置することになりました。
グーグル先生を半日ほど質問攻めにして、ようやくEC-CUBEのインストールまで完了しました。
次回また迷いそうなので、手順をメモ。


1.XAMPPをインストール
今回は、最新版のXAMPP1.8.2をインストールしました。

XAMPPダウンロード→XAMPP for Windows

「http://localhost/xampp」へアクセスしてXAMPPトップの「おめでとうございます:システム上にXAMPPが正しくインストールされました!」が表示されていたら、ひとまずXAMPPのインストールは完了です。


2.セキュリティ設定を行う
デフォルトでは、MySQLユーザルート、PhpMyAdminはパスワード設定がされていない状態です。
パスワードを設定し、同時にXAMPPフォルダ内へのをかけておきましょう。

XAMPPトップから、「セキュリティ」をクリック。
ページ内のリンク「http://localhost/security/xamppsecurity.php 」をクリックして、パスワードを設定。


3.httpd.confをにサーバのローカルIPを設定する
httpd.confの場所は、xampp/apache/conf/。

【修正前】ServerName localhost  →  【修正例】ServerName 255.255.255.255
(IPはダミーです)


4.接続をテストする
3の修正例の場合、LAN内のPCから「http://255.255.255.255」へアクセスすると、IDとパスワードの入力を求められます。
2で設定した「XAMPPのディレクトリ制御」のIDとパスワードを入力するとXAMPPトップが表示できるようになる…はずです。

【LAN内PCからアクセスできない場合】
※私の環境の場合、windowsのパーソナルファイアウォールが原因でした。こちらが参考になります。
 Windows 7のパーソナルファイアウォールに個別のポート番号を指定許可する手動設定
※80番ポートを使うソフトが他に動いている場合にも、アクセスできない場合があります。
 IISとかSkypeとかがアヤシイです。


5.PhpMyAdminへログインする
3の修正例の場合、LAN内のPCから「http://255.255.255.255/phpmyadmin/」へアクセスすると、PhpMyAdminのログイン画面になります。
2で設定したMySQLルートのIDとパスワードでログインしてください。

ここまでできれば、完了です。
バーチャルドメインを設定したりもできますが、ウチ的はもうこれで充分です…。


6.EC-CUBEをインストールする前に
PhpMyAdminでMySQL接続の照合順序が「utf8_general_ci」になっていることを確認しておきます。
EC-CUBE用のテーブルとユーザーを作成します。
その際、PhpMyAdminでテーブルを作った後、作成したテーブルの「操作」タブをクリックして照合順序を確認しましょう。
私の環境では、テーブルの照合順序のデフォルトは「latin1_swedish_ci」でした。はじめ気付かずにEC-CUBEをインストールしてしまい、見事に文字化けしました。


7.EC-CUBEをインストール
最後に、xamppサーバにファイルをアップロードしてインストールです。
私はサーバのxamppフォルダ以下をファイル共有かけて利用しています。これ、邪道な気がします…。

サーバのxamppフォルダ内に任意のフォルダを作って、その中にEC-CUBEに必要なファイル群をコピーします。
そしてブラウザから「http://255.255.255.255/任意のフォルダ名/install」でアクセスするとEC-CUBEのインストールがはじまります。
| 2013.07.14 | - | comments(0) | trackbacks(0) | |

【現象】
EC-CUBE2.12をレンサバ(エックスサーバー)に移行後、注文メール・問い合わせメール・エラーメール等、一切のメールが届かない(゚_゚i)


【対策】
EC-CUBE開発コミュニティのこちらのスレッドを参考に対策しました。
メール送信エラーのメールが届かない


1)管理画面→システム設定→パラメーター設定
MAIL_BACKEND の値を 「sendmail」に設定。
初期値の「smtp」だと、全てのメールが届かない。
「mail」設定だと、エラーメールが届かない。どうやらカスタマイズが必要とのこと。


2)/data/mtb_constants_init.php 368行付近

・変更前
define('MAIL_BACKEND', "smtp");
・変更後
define('MAIL_BACKEND', "sendmail");

3)/data/class_extends/SC_SendMail_Ex.php
・関数「getBackendParams」を追加
function getBackendParams($backend) {
    parent::getBackendParams($backend);
    switch ($backend) {
        case 'sendmail':
            // ↓サーバーのsendmailパスを設定
            $arrParams = array('sendmail_path' => '/usr/sbin/sendmail', 'sendmail_args' => '-i');
            break;
    }
    return $arrParams;
}
※2014.10.21追記
上記コードの'/usr/sbin/sendmail'の部分は、sendmailパスになります。
お使いのサーバの設定に合わせて書き換えてください。

※2014.01.25追記
ご指摘を頂きまして、parent::getBackendParamsに引数を渡すよう変更しました。

これで対策完了。
2は、本来抜かして良い手順だと思うのですが…システムがどの設定ファイルを見てるのかイマイチ確信が持てず…オマジナイ的に行ってます。

しかし、sendmailパスがソースに直書きしてあるのはちょっと残念かな…('A`) サーバーによってパスが変わるんだから、管理画面で設定できるようにして欲しいですね。
| 2012.02.20 | EC-CUBE2.11〜2.12系でサイト構築 | comments(1) | trackbacks(0) | |

IEで商品一覧表示をすると、JavaScriptエラーが出ていました。
(開発環境のXamppでも、本番環境のレンサバでも再現)

【エラーメッセージ】

メッセージ: 'productsClassCategories[...]' は Null またはオブジェクトではありません。
ライン: 52
文字: 17
コード: 0
URI: http://localhost/hogehoge/js/products.js

FireFoxやOperaではエラーにならなかったので、IEのせいなんでしょうか。
商品一覧自体はちゃんと表示されているとはいえ、ちょっと気持ち悪い。

実際エラーになっていたのは、products.jsの52行目あたり。
関数「setClassCategories」の中でした。


【修正前】
// 商品一覧時
if (typeof productsClassCategories != 'undefined') {
    classcat2 = productsClassCategories[product_id][classcat_id1];
}
// 詳細表示時
else {
     classcat2 = classCategories[classcat_id1];
}
上のコードの3行目でエラーになってました。
調べてみたら、「typeof productsClassCategories」の戻り値は「Object」。「typeof productsClassCategories[0]」では「undefined」が返りました。それでエラーになってたんですね…。
早速、上のコードをコメントアウトして、次のように修正しました。

【修正後】
// 商品一覧時
if ((typeof productsClassCategories != 'undefined') && (typeof productsClassCategories[0] != 'undefined')) {
    classcat2 = productsClassCategories[product_id][classcat_id1];
}
// 詳細表示時
else if (typeof classCategories != 'undefined') {
    classcat2 = classCategories[classcat_id1];
}
if (typeof classcat2 == 'undefined') { return; }
これでJavaScriptエラーは消えて、すっきりすっきり。
今のところ問題なく動いてます。
| 2012.01.30 | EC-CUBE2.11〜2.12系でサイト構築 | comments(0) | trackbacks(0) | |

忘備録的に。

【現象】
EC-CUBEをインストール後、画像をアップロードしようとするとエラーになる。

【対処法】
「upload」フォルダと、その下位フォルダのパーミッションを「777」に設定する。


EC-CUBEのインストールの時にアップロード用フォルダのパーミッションを書き換えてくれればスムーズなのになあ。

そういえばNucleusCMSではこんな事ってなかった。
けっこうキメ細かく作ってあったんだな…。

| 2012.01.24 | EC-CUBE2.11〜2.12系でサイト構築 | comments(0) | trackbacks(0) | |

商品のピックアップに便利な「おすすめ商品」ブロック。デフォルトでは商品ステータスは表示されません。

せっかくの「おすすめ商品」、目立たせたいじゃないか!
…という訳で、カスタマイズしてみました。

今回は、↓のようにサムネイルの上に商品ステータスを表示しています。




LC_Page_FrontParts_Bloc_Recommend_Exを修正

1.メンバー変数を追加

/** 各商品のステータス */
var $productStatus;
/** 商品ステータス設定 */
var $arrSTATUS;
/** 商品ステータス画像 */
var $arrSTATUS_IMAGE;
2.関数「init」を書き換え
変更前
function init() {
    parent::init();
}
変更後
function init() {
    parent::init();
    $masterData = new SC_DB_MasterData_Ex();
    $this->arrSTATUS = $masterData->getMasterData("mtb_status");
    $this->arrSTATUS_IMAGE = $masterData->getMasterData("mtb_status_image");
}
3.関数「action」を書き換え
変更前
function action() {
    parent::action();
}
変更後
function action() {
    parent::action();
    //商品ステータスセット
   
$this->productStatus = $this->lfGetProductStatus();
}
4.関数「lfGetProductStatus」を追加
function lfGetProductStatus(){
   $objQuery =& SC_Query_Ex::getSingletonInstance();
   $objProduct = new SC_Product_Ex();
     // おすすめ商品取得
     $col = 'product_id';
     $table = 'dtb_best_products';
     $where = 'del_flg = 0';
     $objQuery->setOrder('rank');
     $objQuery->setLimit(RECOMMEND_NUM);
     $arrBestProducts = $objQuery->select($col, $table, $where);
     $objQuery =& SC_Query_Ex::getSingletonInstance();
     if (count($arrBestProducts) > 0) {
         // 商品一覧を取得
         // where条件生成&セット
         $arrProductId = array();
         $where = 'product_id IN (';
         foreach ($arrBestProducts as $key => $val) {
             $arrProductId[] = $val['product_id'];
         }
         // 商品ステータスを設定
         $objProduct->setProductsClassByProductIds($arrProductId);
         $productStatus = $objProduct->getProductStatus($arrProductId);
     }
     return $productStatus;
}

「おすすめ商品」ブロックを修正

変更前
    
        

*

        
          <!--{foreach from=$arrBestProducts item=arrProduct name="recommend_products"}-->              
              
                  
                    <!--{$arrProduct.name|h}-->                   
              
              
                  

                    <!--{$arrProduct.name|h}-->                   

                  

                    <!--{$smarty.const.SALE_PRICE_TITLE}-->(税込): <!--{$arrProduct.price02_min|sfCalcIncTax:$arrInfo.tax:$arrInfo.tax_rule|number_format}--> 円                   

                  

<!--{$arrProduct.comment|h|nl2br}-->

              
             
              <!--{if $smarty.foreach.recommend_products.iteration % 2 === 0}-->               
              <!--{/if}-->           <!--{/foreach}-->         
    
<!--{/if}-->
変更後
    
        

*

        
          <!--{foreach from=$arrBestProducts item=arrProduct name="recommend_products"}-->              
              
          <!--▼商品ステータス-->          
              <!--{assign var=p_id value=$arrBestProducts[cnt].product_id}-->           <!--{assign var=ps value=$productStatus[$p_id]}-->           <!--{if count($ps) > 0}-->               <!--{foreach from=$ps item=status}-->              
  • <!--{$arrSTATUS[$status]}-->               <!--{/foreach}-->           <!--{/if}-->          
          <!--▲商品ステータス-->                                        <!--{$arrProduct.name|h}-->                                  
              
                  

                    <!--{$arrProduct.name|h}-->                   

                  

                    <!--{$smarty.const.SALE_PRICE_TITLE}-->(税込): <!--{$arrProduct.price02_min|sfCalcIncTax:$arrInfo.tax:$arrInfo.tax_rule|number_format}--> 円                   

                  

<!--{$arrProduct.comment|h|nl2br}-->

              
             
              <!--{if $smarty.foreach.recommend_products.iteration % 2 === 0}-->               
              <!--{/if}-->           <!--{/foreach}-->         
    
   
<!--{/if}-->

以上で完了です。スタイルシートやステータス画像も工夫したら面白いかな。
| 2011.12.21 | EC-CUBE2.11〜2.12系でサイト構築 | comments(4) | trackbacks(0) | |

EC-CUBEのデフォルトテンプレートでのカテゴリーリストは、カテゴリートップだけが表示されます。
カッコ内はカテゴリに含まれる商品数。商品がないカテゴリーは表示されません。



↓サブカテゴリーはカテゴリ「食品」をクリックすると表示される


こんな感じ。CSSで見た目を変えれば大抵のショップで使えそうです。

けど、今回制作するショップは商品数が多いので、サブカテゴリを全部表示して商品を楽に探せるようにカテゴリーブロックをカスタマイズしてみました。

↓完成イメージはこちら


今回はカテゴリ名を画像にしました。
名前の一部にカテゴリIDを使った画像を用意して(例:title_cat<カテゴリーID>.gif)、表示するようにしています。
表示はbloc.cssで調整。例はシンプルですが、li要素の背景画像など工夫すれば見た目にも美しいカテゴリーリストになりそうです。

サブカテゴリが2階層以上の時も同じ階層に展開されてしまうので、カテゴリ構造が深い場合はそこらへんの工夫をしないといけません。
けど、今回はこれで十分使えるので、一旦終了。

<!--{strip}-->
    <!--{assign var=preLev value=1}-->
    <!--{assign var=firstdone value=0}-->
    <!--{section name=cnt loop=$arrTree}-->
        <!--{assign var=level value=`$arrTree[cnt].level`}-->
        <!--{assign var=levdiff value=`$level-$preLev`}-->
    
        <!--{if $level == 1}-->
            <!--{if $firstdone > 0}-->
                </ul>
                </div>
                </div>
                </div>
            <!--{/if}-->
            <div class="bloc_outer">
            <div id="category_area">
            <div class="bloc_body">
            <h2><img src="<!--{$TPL_URLPATH}-->img/title/title_cat<!--{$arrTree[cnt].category_id}-->.gif" alt="<!--{$arrTree[cnt].category_name|h}-->"></h2>
            <ul class="category_area">
        <!--{else}-->
            <li><a href="<!--{$smarty.const.ROOT_URLPATH}-->products/list.php?category_id=<!--{$arrTree[cnt].category_id}-->"><!--{$arrTree[cnt].category_name|h}--></a></li>
        <!--{/if}-->
        <!--{if $firstdone == 0}--><!--{assign var=firstdone value=1}--><!--{/if}-->
    <!--{/section}-->
    </ul>
    </div>
    </div>
    </div>
<!--{/strip}-->
| 2011.12.11 | EC-CUBE2.11〜2.12系でサイト構築 | comments(0) | trackbacks(0) | |

この度、EC-CUBEに手を出すことになりました。
その過程をメモって行きます。



初っ端からEC-CUBEに拒まれた…orz

EC-CUBE公式からダウンロードしたソースを解凍し、マニュアルサイトを見ながら「html」「data」の2フォルダをフォルダごとアップロード。
DBのセットアップを終え、さてインストールしようとマニュアルの指示通り「http://ドメイン/install/」へアクセスしてみると「Internal Server Error」が出た。

…そりゃそうだ。そこに「install」フォルダはない。見れば、「install」フォルダがあるのは、「html」フォルダの中だ。
おかしいなと思いながらも「http://ドメイン/html/install/」にアクセスすると、やっぱり「Internal Server Error」が出る( ̄▽ ̄;)!!ガーン

動揺しながらも、思い切って「/html/.htaccess」を削除。

再度「http://ドメイン/html/install/」にアクセスすると、インストール画面が表示された。
不穏な感じはあったけれど、そのままインストール。すると、やはりショップのトップは「http://ドメイン/html/」になってしまった。

マニュアルが不親切なのか、私が馬鹿なのか……(;д;)



気を取り直して、ショップトップ=ドメイン名にするには

慌ててググったところ、明快な説明をされている先人がおられた!ありがとうございます!!
EC-CUBE 2.11.0 - セットアップ・インストール手順

要約すると、
1.「data」フォルダの中身を「html」フォルダ直下へ移動
2.「html/define.php」の3行目を修正

修正前  define("HTML2DATA_DIR", "/../data/"); 
                                       ↓
修正後  define("HTML2DATA_DIR", "/data/");

3.「html」フォルダ内のファイル・フォルダをアップロードする

これで何とかインストール完了しました!

| 2011.12.10 | EC-CUBE2.11〜2.12系でサイト構築 | comments(0) | trackbacks(0) | |
CATEGORIES
SELECTED ENTRIES
RECOMMEND
ARCHIVES
RECENT COMMENT
  • EC-CUBE メール送信されない時の対策
    hiro (06/05)
  • EC-CUBE 「おすすめ商品」ブロックに商品ステータスを表示する
    みつば (12/26)
  • EC-CUBE 「おすすめ商品」ブロックに商品ステータスを表示する
    まつも (10/31)
  • EC-CUBE 「おすすめ商品」ブロックに商品ステータスを表示する
    みつば (01/27)
  • EC-CUBE 「おすすめ商品」ブロックに商品ステータスを表示する
    ずね (01/26)
PROFILE
PR
OTHERS
SPONSORED LINKS