URLのアンカーを判定して処理を切り替え
http://www.exsample.jp/test.php?type=0001#list というアクセスがあった場合にlocation.hashで取得可能 var strHash = location.hash; console.log(strHash); 実行結果 #list ページを表示したときに、非表示になっていたら表示したり、タブを切り替えたり、背景色を変えたりという処理が可能です。
View Article第n○曜日の日付を求める
例) 2019-08 の第3木曜日を求める。該当する日付が無ければfalseを返す $target = '2019-08-05'; print getWeekWdayDate($target, 3, 4); function getWeekWdayDate($target, $week, $wday) { list($y, $m, $d) = explode('-', $target); //...
View ArticleEC-CUBE 2系でポート番号付で管理画面を動かす
Apacheの処理分散させるために、ロードバランサーを介してラウンドロビンを掛けた複数台で同じEC-CUBEを動かす必要が出てきました。 Apacheを動作させるフロントエンドをコピーした複数台でPHP処理を分担、MySQLはローカル接続されているバックエンドの専用サーバーで運用という形です。...
View ArticlePHP5.6でEUC-JPやShift_JISのサイトを動かす
今さら何でPHP5.6なのかと悲しくなりますが、サーバー変更するときにmysql_connect等のPHP7で廃止された関数を大量に使用しているサイトだったので、修正予算が無い関係でどうしてもPHP5系を選ばないといけませんでした。 しかもMySQLデータもPHPソースもHTMLも、全てEUC-JPで書かれているというサイトです。...
View ArticlePHPの array_column array_combine は超便利
PHPでデータベースを読み書きして操作していると、連想配列が配列になった以下のような配列からデータを取り出して操作する事が多いと思います。 $rec = array( array( 'id' => '1001', 'name' => 'りんご', 'area' => '青森' ), array( 'id' => '1002', 'name' => '梨', 'area'...
View ArticleEC-CUBE 2系で注文を受けた商品の規格を後で削除すると、管理画面で受注内容を編集できなくなる
注文された規格を削除して、dtb_products_classテーブルから該当する規格データが無くなると、受注内容のたとえば発送先住所などを編集しようとしても数量の上限チェックに引っかかりエラーが出て受注内容の変更ができなくなってしまいます。 ※ この現象は、規格のチェックBOXを外して更新 → チェックBOXを再度立てて更新...
View ArticleEC-CUBE 2系でShift_JISに存在しない文字が含まれた受注データがあると、その受注内容が受注CSVからまるごと欠落する
受注データの備考などにお客様が入力した文章にShift_JISで表現できない文字や記号がまざっていると、受注CSVをダウンロードしたときにその受注データがそっくり欠落してしまいます。 これはCSVデータをShift_JISに変換するときのiconvのパラメータがデフォルトの「不正な文字があったらデータを捨てる」指定になっているからです。...
View ArticleEC-CUBE 2系で商品情報をCSVで更新するとき関連商品情報が削除される
CSVアップロードして商品データを更新する事ができるのですが、そのCSVに「関連商品」の列が無いと、CSVをアップロードしたときにその商品に今まで登録されていた関連商品の内容が全て削除されてしまいます。...
View ArticleEC-CUBE 2系で商品を沢山購入すると住所情報が欠落する
以外と有名な問題なのですが、カートに沢山の商品を入れて注文すると、受注メールは送信されてエラーも出ないのに「送料がゼロ円になる」とか「管理画面に受注データが表示されない」という障害が起きます。 これは、セッション情報を保存するDBテーブルが text型で取られているため、65,535バイト(MySQLの場合)以上のセッション情報を保存しようとすると後ろの方のデータが欠落するためです。 CREATE...
View ArticleSmartyのtruncateをマルチバイト対応で
Smartyのtruncate修飾子はマルチバイト対応されていないので文字化けしちゃう。 独自にtruncateの拡張をするまでもなく、PHP自身が持っているmb_strimwidthを使えばOK でも、すぐに忘れちゃうのでメモ {$contents|mb_strimwidth:0:80:"..."} 変数にHTMLタグが入ってるなら、それも除去...
View ArticlePEAR Mail_mimeDecodeでヘッダー文字化け
PHPで送信されてきたメールを解析して処理を行うため、ネット情報を参考に以下のようにやってみた。 PEAR::Mail_mimeDecodeをインストールして以下のように処理したのだが、$mail_body->bodyの処理は良かったとして、ヘッダーの文字列が内部エンコードに変換されず元のままのエンコードで入ってきている。UTF-8だったりJISだったり。。困った。...
View ArticlegmoserverでKCFinderが変なパスを返す不具合
CKEditorと組み合わせてKCFinderを画像アップローダーとして使う事が良くあるのですが、gmoserverのSDプランのサイトに設置したときに、画像はKCFinder上でちゃんとアップロードできているのに、選択してCKEditorに戻ると画像のパスがおかしくなっていて、画像が壊れて表示されるという現象にあいました。...
View ArticleLinuxで最近更新されたファイルをfindしてtar圧縮
サーバーから最近更新されたファイルだけをコピーして来たいという場面があったのですが、sshはできるけど、rsyncは使えない。FTPで覗こうにも同一ディレクトリにファイルが多すぎて処理できない。 そこでfindコマンドを使って更新日でファイルを洗い出し、それをtarで圧縮したので、また使う機会のためにコマンドをメモしておきます。 ●カレントフォルダ配下の過去12日間に更新されたファイル一覧 find...
View ArticleExcel 2013が重い
最近、エクセルで文字を入れ始めた瞬間にHDDがガリガリとアクセスしたまま暫くパソコンが固まって進まないという現象に悩まされていた。 急いでるときに非常に困る!! ネットで調べてみると、どうもエクセルのキャッシュファイルの破損らしい。 エクセルを一旦終わらせておいて、 C:\Users\(ユーザ名)\AppData\Roaming\Microsoft\Excel\Excel15.xlb...
View ArticleCakePHPでcheckbox
複数選択させるチェックBOXを出したいとき、並べるだけなら’type’=>’select’, ‘multiple’=>’checkbox’ としてセレクトタグのように指定する方法がある。 でも、個別のinputタグを自由に配置したいなら、’type’=>’checkbox’を複数書くしかない。 <input type="checkbox" name="id[]"...
View ArticleJQueryで、cloneしたinputにdatepickerを設定する
jqueryのclone関数でinputフィールドを増やしてから、datepickerを設定しようとしても新しく追加したフィールドで日付入力が機能しない。(もちろんIDはcloneしたときに一意になるように設定済み) ↓ $(‘#datepickup’+count).removeClass(“hasDatepicker”); $(‘#datepickup’+count).datepicker();...
View ArticleEC-CUBE 2系の「もっと見る」を簡潔に
今更ながら、EC-CUBE 2系のスマホ版のデザイン変更で苦労しました。 EC-CUBEに組み込まれている「もっと見る」ボタンですが、Ajaxで次ページのjsonデータを取得してきて画像、商品名、価格等のspanやimgタグの中身を1個ずつコピーしている。。。(3系でも同じなのかな??)...
View ArticleWindows7でフォントが消えた
WindowsUpdateを繰り返した結果か、それともいろいろなアプリをインストール&削除を繰り返した結果か、ある朝気がつくと、いつも使っているメーラー画面の表示フォントが文字化けしてしまっていました。 ??? 化けているフォントは何だ?と思い、メーラーのフォント設定画面を開いてみると、選択されているフォントは「メイリオ」...
View Article二度押しで選択解除できるラジオボタン
解除できるラジオボタンを設置したいときもあります。 解除ボタンを追加して押させるのもスマートじゃないので、チェック済のラジオボタンを押したら選択解除できるようにしてみます。 ネットで情報を探すと苦戦している人も多いけど、チェックされてる値を記憶しておいて、同じラジオボタンが押されたら解除するだけ、意外と簡単です。 JQueryで書いてみましたが、別に素のJavaScriptでも簡単だと思います。...
View ArticleJQueryで「もっと見る」を簡単に実装
「もっと見る」を実現するjavascriptコードはいくつかありますが、一番使えると思ったのが、JQuery.autopagerです。 導入方法など、詳しくはこちらの記事を参考にしてください。 http://wispyon.com/jquery-autopager/ このプラグインの何が良いかというと、...
View Article