だ。ログ。

開発とかスノボとかやきうとか。

開発

サイトの強制SSL

Let's Encryptが広まり始め、ウチもサイトSSL対応したい!と言うサイトも多くなってきた。 .htaccessで強制的にSSLにリダイレクトするのが手っ取り早い。 RewriteEngine On RewriteCond %{SERVER_PORT} !^443$ RewriteRule ^.*$ https://%{SERVER_NAME}%{REQ…

EC-CUBE3がELB配下のEC2サーバーにある場合の管理ページのアクセス制限を行う

かなり限定的な構成ではあるがELBの下にEC2にEC-CUBE3がインストールされている。 しかもELBにSSLをインストールしているSSL Terminationを利用している場合 そのままEC-CUBEをインストールし、管理画面のアクセス制限をしてもアクセス制限が出来ない。過去…

EC-CUBE3のindex_dev.phpで出る変数 is not definedの消し方

これはtwigに設定された変数すべてに言えるのだが、変数が未定義で同一のテンプレートを使った場合によく見かける。 別にエラーではないし、他にデバッグしたい事があるのに、index_devでこのエラーを指摘されてよくイラつく。例 コントローラ return $app->…

EC-CUBE3のデバイス判定

いつも忘れるので書いておく。 {% if app['mobile_detect'].isMobile %} スマホ、タブレット {% else %} PC {% endif %} スマホ、タブでスタイルを変更する事が多いのでtwigの機能で持っているisMobileを使う。 この他に isTabletなんてものもある。

youtube埋め込みタグのレスポンシブ対応

あまりcssとhtmlに詳しくないので、とりあえずコピペできるようにする。 <div> <iframe src="//www.youtube.com/embed/hogehogehoge" frameborder="0" width="560" height="315" allowfullscreen></iframe> </div> iframeの典型的な埋め込みコード、このままコピペすればyoutube自体は参照が可能。 ただし、スマホで観た場合はiframeのサイズになってしまうので横幅がはみ出してしまいレスポンシ…

EC-CUBE3で現在のページを調べる

共通ヘッダーだけど見出しだけ変えたい。とか有るので結構必要となる「現在のページ」 $_SERVERから見るだけでなくEC-CUBEの機能でも備えている。 $request = $app['request_stack']->getMasterRequest(); $now_page = $request->attributes->get('_route');…

EC-CUBE3でHTMLタグを使う

よく忘れる。 ページに設定された変数で特にありがちなのはフリーエリア部分。 そのままだとHTMLタグの囲み文字が&から始まる文字列に変換される。 {{ Product.free_area }} これを {{ Product.free_area|raw }} とrawurlencodeを設定するとHTMLタグが適用さ…

ELB配下のサーバーを指定して確認する

テスト段階でしか使えないネタ。 いまや複数台構成が当たり前となって時代、ロードバランサーを最上位に置いて下位に複数台のWebサーバー ELB配下にあるサーバーはELBさんが割り振ったご機嫌次第なんてこともあったり。スティッキーセッションを使って各サー…

EC-CUBE3のデータコミットタイミング

ちゃんとコアプログラムを読んでいない自分が悪いが、EC-CUBE標準の使い方をした場合のデータベースのコミットはページが遷移した後になる。 何が言いたいかと言うと、コントローラ上で処理が完了してリダイレクトの前に一旦ブレイクポイントを置いてデータ…

EC-CUBE3のログイン後のリダイレクト先を変える

どうもリダイレクト先を /src/Eccube/Controller/Mypage/ 内のコントローラで探してもリダイレクト先の記述がない。 じゃあどこでリダイレクトさせているのか。と悩んでいたがなんと 色々なりダイレクトページソースを観てみると <input type="hidden" name="_target_path" value="{{ targetPath }}" /> こやつ!!!ログインフォ…

EC-CUBE3の会員のパスワード文字数の上限と下限を変える

パスワードの文字数がデフォルトでは8文字~32文字と長め。 別に32文字のままにしておいても問題はないが短くしたいな。と思って調査。 まずはEC-CUBEの会員登録画面を覗いて【半角英数記号】でgrepしてみる。/src/Eccube/Form/Type/RepeatedPasswordType.ph…

EC-CUBE3のパスワードの平文化

【注意】セキュリティ上非常によろしくないので非推奨 EC-CUBE3のパスワードを平文化させておきたい。と言う要望を結構もらう。 あまりと言うか本当にマズい。それも現在まで稼働しているシステムの場合、データがハッシュ化されていてそのパスワードが全て…

preg_splitのセパレート分割

データベース上の1つのカラムに複数のデータを格納する場合、開発のお作法とかもあるがセパレートを入れて分割させる事がある。 代表的な所で言うと縦棒(|)なんかが代表的。 この縦棒、preg_splitで分割する際に無意識に $arr_split = preg_split("/|/",$…

jQueryで入力のみ不可にしたい。

jQuery-uiのカレンダーを使うと、その場ではああ。そうそう。と毎回思うけど忘れるのでメモ。テキストボックスをクリックする→カレンダーが表示される→日付を選択する→選択された日付がテキストボックスに表示される。と言う基本的な流れはjQuery-ui使えば簡…

EC-CUBEで人に依存した文字列の文字化けを解消する

テストをしていて、ある人から文字化けしてしまい文字列が数値文字参照になってしまっている。と言う指摘が有るので調査。 スマホやPCではなく人に依存した文字化けで、同一の環境を容易しても数値文字参照になってしまっている人とそうでない人が発生してい…

EC-CUBE3でカートに入った商品のIDを取得する

カートに入った商品別に何かしらのメッセージを出す。または割引する。色んな部分で今カートに入っている商品情報をデータとして取得したい場面は多い。 IDから商品情報を取得するので、カート内に存在する商品IDを取り出す為にはどうするか。 //変数自体は…

EC-CUBE3で値引きをする

一番てっとり早いのは無料プラグインで配布されているクーポンコードプラグインを利用する。 → https://www.ec-cube.net/products/detail.php?product_id=1069 ロックオンが作っているのでまず間違いがない。無料、大半はこれで事足りてしまう。ただし、これ…

EC-CUBE3のCSVの新規出力データを作成し画面上でダウンロードできるようにする

CSVファイルで取り込んで連動する。多分今後もなかなかこの手法から脱却するのは難しいと思う。 各システムがその他の事を考えていないし、連動するシステムを想定した作りなんてしない。 だからCSVであればエクスポート可能だよーとしておけば、あとは運用…

EC-CUBEにPOSTしたデータを取得する

他サイトとEC-CUBEの連動をしたい。特に要望として挙がるのはSSO関連部分。 ただ、EC-CUBEの仕様上セッションジャックやクロスサイトスクリプティングの問題からSSO自体はコアをいじれば出来るけど、相当手間が掛かる。 まずは第一段階として、他サイトからP…

EC-CUBE3購入画面の文字化け

EC-CUBE3の支払い方法部分の改造をしていた時のこと。 商品をカートに入れる ログイン/非ログインで操作を続ける 支払い方法ページを表示する ここにjsで任意の文字列を表示させようとした際に、jsのデバッグの為にソースコードを開くと文字列が全てURLエン…

EC-CUBE3のリファラの取り方

まず最初はセッションを使って、一旦ランディングページにアクセスしたか? と言う事を記録して、それによってページの要素の出し分けをしたい。と言う事を考えていたがEC-CUBEの仕様上、セッションやは /app/cache/eccube/session内にデフォルトでは登録さ…

EC-CUBEの受注ステータスを「購入処理中」にすると受注管理から消える

EC-CUBE3.014にて確認した事象として、一度受注したデータを管理画面にて編集しオーダーを「購入処理中」に編集し、受注マスターに戻った際に対象の受注が消える。 もう大分EC-CUBEを触っていなかったので、これが仕様かどうかは分からないが、現状のデフォ…

CUBE3の特定ディレクトリにリダイレクト

EC-CUBEを使っていて一覧ページは使わない。詳細ページは使わない。 ランディングページだけでよろしく~みたいなオーダーが来る事がある。 トップページだけでページを完結させたいって奴だけど、何もしないと一覧ページや詳細ページを辿る事が出来てしまい…

リバースプロキシの無限リダイレクト

無限地獄 前rider-dice.hatenablog.comの記事の続き リバースプロキシ掛けた側の設定は良かったけど、じゃあmofumofu.comにアクセスがあった場合に、hogehoge.comにリダイレクトしなきゃな。 と.htaccessを記述 <Files ~ "^\.ht"> deny from all </Files> # Redirect Redirect permane…

リバースプロキシを使った複数サイトの統合風味のようなもの

前提条件 CentOS 6.9 Apache 2.2 バーチャルホストにて運用中である にて動作を確認。 やりたいこと 1. アクセスするドメイン:http://hogehoge.com/ 2. 上記のドメイン内で表示させるドメイン:http://mofumofu.com/【なにがやりたいか?】 http://hogehoge…

Facebook Graph APIのアクセストークンを引き伸ばす

期限 まず無期限が出来ないらしい。 と言う事は永続的にアプリを運用する場合、運用においてアクセストークンを更新し続ける必要性がある。 何も意識せずアクセストークンを発行すると有効期限が1日のアクセストークンになっていて、気が付いたら有効期限切…

Facebookのフィードを取得する

よりユーザーライクにて言う意味ではFacebookやTwitterと言ったソーシャルの更新をサイトに埋め込んで表示させたい。ってな事が多いかと。 特にFacebookや本人や団体が明示化されているので信頼度も高く、リピーターとのコミュニケーションにもなりやすい。 …

画像のズームを実装する

Amazonで目にする商品にマウスカーソルが当たった際に画像が大きく拡大表示するアレ。 ECサイト構築の際の御用聞きでベンチマークとなっているサイトがAmazonである場合に結構な確率で言われる。 それ専用のプラグインも出回っているがjsで対処出来るのでメ…

placeholderではなく、予め文字列を入れ込みたい

EC-CUBE案件もかなり数が出てきており、入力欄にあらかじめ文字列を入れ込みたい。 と言う要望がきました。テンプレートに入れ込む事も考えましたが、定型文で良いと言うので、jQueryにまかせてしまう事にしました。 {% block javascript %} <script> $("#要素名").v</script>…

EC-CUBE3でカートに入れるボタンをクリックした後の挙動の変更

自分の研究不足と言う事もあるが、EC-CUBE2の時代はカートに商品を入れる際には力技でセッションに入れ込むと言うやり方で結構やっていたがEC-CUBE3になってからノウハウがホントない。 カートに入れる際にはコントローラとしてCartControllerを経由してデー…