月別アーカイブ: 2014年6月

EC-CUBE2.13系でページにブロックを読み込む

デザイン管理>PC>ページ詳細設定で編集するec-cubeの「ページ」に
作成したブロックをインクルードしたくて、できたのでメモ。

▼ページ詳細の中の好きな場所に

<!--{include file=`$smarty.const.TEMPLATE_REALDIR`frontparts/bloc/xxx.tpl}-->

これをいれればOK。「xxx.tpl」のところはブロックのファイル名にしてください。

 includeの記述はバージョンによって異なるみたい。

wordbookerからSocial Networks Auto Posterに乗り換えてはまった罠

FB投稿(リンクシェア)が一般に公開されない!

wordbookerが設定も簡単で重宝していたのですが、今月あたりから使えなくなり、サポートも終了とのことで乗り換えプラグインを探すことに。

いろいろ調べて「Social Networks Auto Poster」が便利そう!で入れてみました。

wordbookerではAppを作る必要がなかったのですが、
Social Networks Auto PosterではFB Appを作成しAppIDとPWが必要になります。
そこが面倒だったのですが、設定もわかりやすく、無事WP投稿がFBのタイムラインに反映されてよかったよかった。

と、安心してたら問題が。。。

FB投稿(リンクシェア)が一般に公開されない!

FB管理者で入って確認するとちゃんと反映されてるし一般公開になってるのに
ログアウトしてFBページを見てみると反映されていない。。

原因はプラグインじゃなくてFB APP

Appについて無知だったことが一番の原因なんですが・・・

▼赤枠の部分がじゃなくてになっていたら要注意。
マウスを当てると「not available to all users because your app is not live」になります。
つまり、「アプリが生きていないため、すべてのユーザーが利用できない」ってこと。

fbapp

こりゃいかん。

解決策

①まずSetting(設定)画面でメールアドレスを入力し、変更を保存。

fbapp2

②次にStatus&Reviewを開き、「公開しますか?」的な英文の横のボタンをクリックしYesに。

fbapp3

なんかウィンドウがでてきたら「承認」をクリック。

▲さっきだった部分がになります。

 

これで完了。

今まで公開されていなかった投稿も全部一般にも公開されました!

 

 

 

 

 

良く使うTwitterウィジェットカスタマイズ

・ベースはダーク。
・ヘッダー/フッターなし。
・背景色なし。
・スクロールバーなし

<a class="twitter-timeline" data-theme="dark" data-dnt="true" href="https://twitter.com/sampledesuyo" data-widget-id="365155945216614402" data-chrome="noheader nofooter transparent noscrollbar"data-link-color="#CCCCCC">@サンプルですよ からのツイート</a>
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+"://platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>

 使うときは↑をコピペして、

href="https://twitter.com/sampledesuyo" data-widget-id="365155945216614402"

の部分を自分のに変更する。

▼実際の表示(親divに背景色#333指定)


幅と高さはスタイルシートで。

iframe{
width:100% !important ;
height:200px !important;
}

box-shadowが効かない

box-shadowを付けたいボックスの下の要素にbackgroundが入っているとbox-shadowが効かない・・・というか見えなくなってしまう。

↓の図でいうと、1番目のDIVは2番目のDIVのbackgroundがnoneなのでシャドウが効いてる。
2番目のDIVは3番目のDIVにbackgroundが入っているため効かなくなっている。
3番目のDIVは下に何もないので効いてる。

2014-06-23_011948

 

解決策

▼効かなくなってしまったボックスにこれをつける

div#box02{
	position:relative;
	z-index:2;
}

z-indexの値は適当に。

2014-06-23_012726

 

 

 

TinyMCE Advancedを最新版にしたら・・・

文字カラーとかを自由に設定できる「その他の色」カラーピッカーがなくなってしまった!!

▼バージョンアップ前にあった「その他の色」。クリックするとカラーピッカーが出てくる。

2014-06-11_045233

▼TinyMCE Advanced 4.0に更新したら「その他の色」がない!

2014-06-11_045452

http://www.laptoptips.ca/projects/tinymce-advanced/より

 The “More Colors” dialog is missing

This is a change in TinyMCE 4.0. By default is includes only pre-defined colors. If you prefer to select custom colors, try the TinyMCE Color Picker plugin.

・・・TinyMCE Color Pickerっていうプラグインを使えと。

▼入れてみた。

2014-06-11_050009

▼「Add a color」をクリックするとカラーピッカーが出て

2014-06-11_050043

▼「Apply」をクリックすると

2014-06-11_050115

▲ここに登録されるみたい。新規投稿のときもこの色は残ってて便利かも。

この最新バージョン、他にも使えなくなってしまった機能がいろいろあるらしい。。
テーブルのセルの背景色とか。

そんなときはめんどいけど前のバージョンをインストールしなおしたほうが早いかも~

▼ここから好きなバージョンをげっとできます。

http://wordpress.org/plugins/tinymce-advanced/download/

 

 

EC-CUBEで「複数のお届け先」機能を無効に

EC-CUBEのデフォルト機能「複数のお届け先」。これが、送料無料のときどうするかとかいろいろやっかい。
ならいっそこの機能を解除してしまえばいいじゃない。

管理画面から簡単に設定できる。

管理画面に入り、【システム設定】>【パラメーター設定】へ

USE_MULTIPLE_SHIPPING】のパラメーター値を【false】にするだけ。

20140607

以上

 

 

WPでindex.phpがリダイレクトされて困る

静的なページのサイトをWPに移行するときに、とりあえず今のサイトはそのままで同じディレクトリにWPインストールして制作を進めることってよくありますよね?

ユーザーからは基本的にhttp://example.com/index.tmlが見える。
制作のチェック時はhttp://example.com/index.phpにアクセスして表示を確認ってこと。

それをやろうとしたところ、どうしてもhttp://example.com/index.phpからhttp://example.com/にリダイレクトされてしまう。。

困った。

 

解決

.htaccessのチェック

.htaccessを確認してサイトURL統一のため(SEO対策)の▼コレ系の記述があったらコメントアウトしておく。

RewriteCond %{THE_REQUEST} ^.*/index.(html|php)
RewriteRule ^(.*)index.(html|php)$ http://%{HTTP_HOST}/$1 [R=301,L]

▼コメントアウトの方法は#を先頭につけるだけ。

# RewriteCond %{THE_REQUEST} ^.*/index.(html|php)
# RewriteRule ^(.*)index.(html|php)$ http://%{HTTP_HOST}/$1 [R=301,L]

 

wp-includes/canonical.phpの一部を変更

参考にしたページ⇒http://ja.forums.wordpress.org/topic/1112

「wpncludes」の中の「canonical.php」を開く。

▼WP3.8.1だと、342行目の1行をコメントアウト。

	// trailing /index.php
// 	$redirect['path'] = preg_replace('|/' . preg_quote( $wp_rewrite->index, '|' ) . '/*?$|', '/', $redirect['path']);

	// Remove trailing spaces from the path
	$redirect['path'] = preg_replace( '#(%20| )+$#', '', $redirect['path'] );

これで解決

 注意点

・WP3.7ぐらいから勝手にマイナーアップデートされるようになってるので、そのたびにやらなきゃダメです。
・オープンしてしまえば逆にURLが統一されるのでイイコトなので戻しておきます。

 

 

EC-CUBEでスマホ切り替えとかいらない場合

EC-CUBEはスマホでアクセスした場合自動でテンプレートがスマホ用に切り替わりますが、PCサイトをレスポンシブにしてたり、スマホでもPCサイトで見せたかったりする場合の対処方法。

【data/class/SC_Display.php】を編集

▼140行目あたり

    /**
     * 端末種別を判別する。
     *
     * SC_Display::MOBILE = ガラケー = 1
     * SC_Display::SMARTPHONE = スマホ = 2
     * SC_Display::PC = PC = 10
     *
     * @static
     * @param          $reset boolean
     * @return integer 端末種別ID
     */
    public static function detectDevice($reset = FALSE)
    {
        if (is_null(SC_Display_Ex::$device) || $reset) {
            $nu = new Net_UserAgent_Mobile();
            $su = new SC_SmartphoneUserAgent_Ex();
            if ($nu->isMobile()) {
                SC_Display_Ex::$device = DEVICE_TYPE_MOBILE;
            } elseif ($su->isSmartphone()) {
                SC_Display_Ex::$device = DEVICE_TYPE_SMARTPHONE;
            } else {
                SC_Display_Ex::$device = DEVICE_TYPE_PC;
            }
        }

↑ここで振り分けが行われているので、全部PC版で見せるなら
▼こんな感じにいらない部分をコメントアウト(//)しちゃう。

    /**
     * 端末種別を判別する。
     *
     * SC_Display::MOBILE = ガラケー = 1
     * SC_Display::SMARTPHONE = スマホ = 2
     * SC_Display::PC = PC = 10
     *
     * @static
     * @param          $reset boolean
     * @return integer 端末種別ID
     */
    public static function detectDevice($reset = FALSE)
    {
        if (is_null(SC_Display_Ex::$device) || $reset) {
            $nu = new Net_UserAgent_Mobile();
            $su = new SC_SmartphoneUserAgent_Ex();
//           if ($nu->isMobile()) {
//                SC_Display_Ex::$device = DEVICE_TYPE_MOBILE;
//            } elseif ($su->isSmartphone()) {
//                SC_Display_Ex::$device = DEVICE_TYPE_SMARTPHONE;
//            } else {
                SC_Display_Ex::$device = DEVICE_TYPE_PC;
//            }
        }

これでOK。

 

 

EC-CUBEで発送メールとかメールテンプレートを追加する

発送完了メールとか、よく使うメールをテンプレとして登録しておくと便利。

1:【システム設定】⇒【マスターデータ管理】

 

管理画面【システム設定】⇒【マスターデータ管理】

2:テンプレートの追加

mtb_mail_template】を選び、選択ボタンをクリック

追加のデータの欄に好きなID(他とかぶらないように)と値を入れる。

3:動的データ挿入部分

mtb_mail_tpl_path】を選び、選択ボタンをクリック

ここで自動挿入される注文情報とかのtplファイルを作る。
新しく作ってもいいし、他と同じでよければ同じ値をいれておく。

新しく作る場合場合(めんどう)

ID:さっき作ったID。
値:「mail_templates/●●.tpl」と入力。●●は好きなように。
で、登録。

その後、「●●.tpl」というファイルをローカルで好きなように作成し、FTPでアップ。

 

オーダーメールとかと同じでいい場合

お好きなテンプレの値(「order_mail.tpl」とか)をコピペ。

ヘッダー・フッターはもちろん個別に編集できる。データを取得して出力される部分のみ。同じになる。

 

4:ヘッダー・フッターの確認

【基本情報管理】>【メール設定】で先ほど作ったテンプレートが入っているか確認。

入っていたら「メールタイトル」や「ヘッダー」「フッター」を入れる。

5:送信方法

受注管理からメールを送りたい顧客の【メール】列【個別通知】をクリック

テンプレートを選んで進んでいけばOK

 

 

 

 

jQueryで(window).loadとか.scrollとか.resizeとか全部まとめて設定したい

・$(window).load ページ読み込み完了時
・$(window).scroll スクロールしたとき
・$(window).resize ウィンドウサイズ変えたとき

 

レスポンシブサイトとかで、高さを操作するときとかポジションを操作するときとかに
上記イベントを使うことが多いのだけど、全部まとめて同じ動きしてほしいのってときの書き方

▼元(めんどいほう)

$(function(){

$(window).load(function(){
  //やりたい処理
});
$(window).scroll(function(){
  //やりたい処理
});
$(window).resize(function(){
  //やりたい処理
});

});

 

▼まとめて書く

$(function(){

$(window).on('load scroll resize',function(){
  //やりたい処理
});

});

ちなみに.bindとかがjQuery1.7ぐらいから非推奨になり、代わりに.onで書くようになったそうです。