ECCUBE2.x(2.12.0~2.13.1)で「のし対応」プラグインが他のプラグインに干渉してしまうのラグインに干渉してしまう

ECCUBE2.x(2.12.0~2.13.1)で「のし対応」プラグインが他のプラグインに干渉してしまう

ECCUBE2での人気プラグインに「のし対応」プラグインhttp://www.ec-cube.net/products/detail.php?product_id=278)がありますが、商品購入の際のテンプレートを結構な感じで書き換えてしまうため他のプラグインが動かなくなったりします。
あとスマホ用のテンプレートもうまく動かなり、結局以下のような感じで対応しました。

  1. インストール済みの「のし対応プラグイン」のファイルをバックアップ:同プラグインを入れると以下のようにディレクトリ出来ます。
    dataフォルダ/downloads/plugin/GiftPaper

    ECCUBEの「data」フォルダ(※インストールのやり方でディレクトリ名やサーバー上のパスが変わります)以下にある「downloads」ディレクトリの中にプラグイン用のサブディレクトリが出来ており、今回は「のし対応プラグイン」の「GiftPaper」ディレクトリをFTPなどでローカルに落とします。

  2. GiftPaper.phpを書き換える:同プラグインの本体は「GiftPaper」ディレクトリ内の「GiftPaper.php」になります。
    こちらの414行あたりから

    function prefilterTransform(&$source, LC_Page_Ex $objPage, $filename) {
      $objTransform = new SC_Helper_Transform($source);
                                   以後省略

    の様にECCUBEデフォルトのテンプレートを書き換える処理が入ります。
    今回はスマホの表示がおかしい(のしの選択肢が出ない、選んでも確認画面に進めないなど)がありましたので、スマホのテンプレを書き換えている部分を修正しました。
    (ECCUBEでプラグインからデフォルトのテンプレを書き換える際には「SC_Helper_Transform(トランスフォーム)」)という機能を使って処理を行います。
    基本的にはJQueryで要素を書き換えたり追加する処理と同じです。詳細に関してはプラグイン作成のリファレンス(http://downloads.ec-cube.net/src/manual/12.0_plugin/plugin.pdf)の11ページあたりを参照してください。)
    以下のソースでは「//リプレイスでの対応」とあるようにテンプレートのある部分を「replaceElement」を使ってごっそり置き換える処理を行っています。(461行目)

     // 458行目辺り。お支払方法・お届け時間等の指定画面
     if(strpos($filename, "shopping/payment.tpl") !== false) {
     //リプレイスでの対応
     $objTransform->select('section#undercolumn')->replaceElement(file_get_contents($template_dir . 'shopping/plg_GiftPaper_payment_section_replace.tpl'));
     //$objTransform->select("section#undercolumn section.point_area", 0)->insertAfter(file_get_contents($template_dir . "shopping/plg_GiftPaper_payment_section.tpl"));
     }

    この「replaceElement」で置き換えているのが「GiftPaper」ディレクトリ内の「shopping/plg_GiftPaper_payment_section_replace.tpl」ファイルになりますが、他のプラグインが書き換えようとする際に必要な要素やセレクタ(idやclass)が含まれておらずテンプレートが書き換えられない為干渉が起こってしまう模様。
    なのでその下にコメントアウトしてある用意してある462行目

    $objTransform->select("section#undercolumn section.point_area", 0)->insertAfter(file_get_contents($template_dir . "shopping/plg_GiftPaper_payment_section.tpl"));

    のほうをコメントを取ってアクティブにします。(逆に461行目の部分はコメントアウトするか消します。)
    この部分ではデフォルトのテンプレートの「section#undercolumnのsection.point_area」の後に「GiftPaper」ディレクトリ内の「shopping/plg_GiftPaper_payment_section.tpl」を挿入するという処理ですので他のプラグインで干渉する心配がなくなります。

    うまく動かない場合はsection#undercolumn section.point_area のセレクタの部分が適切かどうか見直し、「GiftPaper」ディレクトリ内の「shopping/plg_GiftPaper_payment_section.tpl」も見直してもらうと大丈夫かと思います。

MODX Revolution (MODX 2.x) のアップデート手順

MODX Revolution (MODX 2.x) のアップデート手順は至ってシンプルです。

  1. バックアップ:phpmyadmin等を使ってDBのバックアップとFTPなどを使ってサーバ上のファイル類丸ごとバックアップします。
  2. 新しいバージョンのファイルで上書き:FTPなどを使って予めダウンロードしていた新しいバージョンのmodx 2.x のファイルを展開しFTPで上書きします。
    そののちブラウザでsetupページ

    http://ドメイン/setup

    にアクセスし、アップグレード作業を進めます。(この時すでにmodxがインストール済みの場合は自動的にアップデート関連のチェックが入って「次へ」のボタンを押すだけでアップデートが完了します。)
    その際注意が必要なのは2.2.x のバージョンから2.3.x、2.4.x、2.5.xなどそれ以上のバージョンにアップデートする際、2.2.0以降ででDBのフィールドが6つほど追加になっており、2.3.0、2.4.0、2.5.0のように各バージョンの最後が「.0」で終わるものでDBのフィールドが変更になっていることがほとんどの為

    2.2.x2.3.02.4.02.5.0

    のように段階的にバージョンアップする様にします。

  3. 念のため「キャッシュをクリア」のメニューでキャッシュをクリアし、各所動作確認を行います。
    この際Modx自体がフロントにAjaxを多用しているためブラウザ側のキャッシュもクリアしないとpackagemanager(パッケージマネージャー)が動かなくなったりします。

    もしキャッシュをクリアしてもうまく動かない場合は「エラーログ」メニューからエラーログを確認し、エラーがある場合は適時修正を行います。

以上バックアップ以外は基本的にFTPでファイルを上書きするだけなので問題が起こらなければ3~5分程度で完了する工程です。

 

【求人・リクルート】大手企業向けパッケージソフト開発(Java/JavaScript/HTML5)とそれに伴う、UIデザイン、サーバーサイドのエンジニア

◆職務内容

大手企業向けパッケージソフト開発(Java/JavaScript/HTML5)とそれに伴う、UIデザイン、サーバーサイドのエンジニア(分散処理技術<Hadoop、Spark、Kafkaなど>の利用開発経験)、アプリ開発、テスター、リサーチャー、セキュリティエンジニアなど募集しております。
詳細に関しましては問い合わせフォームからお問い合わせください。

◆求人職種と勤務地

  • サーバーサイドエンジニア ・・・東京・大阪
  • フロントエンドエンジニア ・・・ 東京・大阪
  • プロダクトマネジャー候補 ・・・ 東京
  • iOS/Androidアプリエンジニア ・・・ 東京
  • テストエンジニア ・・・ 東京・大阪
  • UX/UIエンジニア ・・・ 東京・大阪
  • プロダクト開発エンジニア ・・・ 東京・大阪
  • テクニカルリサーチャー ・・・東京
  • テクニカルリサーチャー(AI) ・・・ 東京
  • テクニカルリサーチャー(NLP) ・・・ 東京・徳島
  • テクニカルリサーチャー(IoT) ・・・ 東京
  • テクニカルエバンジェリスト ・・・ 東京
  • 基盤技術開発エンジニア ・・・ 東京
  • セキュリティエンジニア ・・・ 東京
  • インフラエンジニア ・・・ 東京
  • クラウドエンジニア ・・・ 東京
  • IT/業務プロセスコンサルタント ・・・ 東京

※書類選考通過~面接前までに技術課題(コーディング技術)の提出が必要な職種もあります。
・テクニカルリサーチャー(AI)
・テクニカルリサーチャー(NLP)
・テクニカルリサーチャー(IoT)
・テクニカルエバンジェリスト
・基盤技術開発エンジニア
・セキュリティエンジニア

◆待遇面

●正社員として採用

●年俸制:700~1500万円
(賞与年2回含む)
※経験・能力・前給等により考慮。

●フレックスタイム制または裁量労働制
(所定労働時間1日8時間)

●試用期間6ヶ月

●完全週休2日制(土・日)、祝日 、夏季休暇、年末年始
休暇、有給休暇、慶弔休暇、特別休暇
※年間休日120日以上
各種社会保険完備

ランサムウェア(身代金ウィルス)のLockyの亜種『Zepto』にご注意ください。

最近「パソコンでOffice word などで作られた書類や画像など、必要なファイルのアイコンが変わったと思ったらクリックしても開けなくなった。」という依頼を多く受けるようになりました、今まで存在していたファイルの名前が訳の分からないアルファベットの羅列に変わってアイコンが白紙を表すようなものに変わってしまう場合は大抵そのファイルと同じ場所にHTMLファイルが作られ、開いてみると

パソコンのファイルは暗号化したので使えなくなった、復元して欲しければ指定された方法で入金しろ!

という内容の脅迫文(英文の場合もあり)が記載されています。

肝心な仕事用のファイルなどは暗号化されていますのでそのままでは再使用できず、暗号を解いて復元する処理を行う必要がありますが、新種の場合は復元するソフトも対応できないことも多く、大変迷惑なウィルスとなっています。

ランサムウェア(身代金ウィルス)の感染の経路は主にメールの添付ファイル

パソコンのファイルを人質にして金品を要求する為「身代金ウィルス」(身代金ウィルス)と呼ばれ、主にメールの添付ファイルに仕込まれ、添付ファイルをクリックしたり展開することで感染することが確認されています。

これはパソコンにウィルス駆除ソフトを入れていても感染しますので、むやみに知らない人物からのメール、またその添付ファイルは絶対に開かないでください。
(ウィルス駆除ソフトは疑わしいプログラムをインストールさせないように働きますが、ユーザがインストールを許可してしまえばウィルス駆除ソフトを入れていても感染してしまいます)

また少し前まではウィルス付きのメールの件名や本文はほとんどは英語でしたが、今年の春先・4月ぐらいから日本語の件名・本文で、大手プロバイダや銀行、宅配業者や各業界の下請け業者を装い、入金確認や宿泊予約の確認、宅配便の到着予定など多岐にわたるテンプレートを使用して攻撃を行っていますので注意をしてください。

もしランサムウェア(身代金ウィルス)に感染したら?

ランサムウェアは感染した瞬間に各ファイルを暗号化するわけでなく、ユーザがパソコン操作をする裏で徐々に各ファイルを暗号化していきます、その為いつもよりパソコンが重たく(遅く)なったり、HDD(ハードディスク)がガリガリと音を立てているため、「ん?何か普通じゃないな!」と思ったらすぐにPCの電源を落としてウィルスが活動できない「セーフモード」でパソコンを起動し、ウィルス駆除ソフトでパソコンをスキャンし、まずウィルス駆除と被害を最小限に抑える措置をとってください。

※セーフモードでパソコンを起動するには、一度電源を落としたパソコンを電源ボタンを押して起動し、各パソコンメーカーの画面(ロゴと言われる会社のマークが表示されるタイミング)で「F8」キーをトントントンと画面が変わるまで連打してください。またメーカーや型番によってはF8キーではなく別のキーの場合もありますので説明書などを確認してください。

既にファイルを暗号化されてしまったら・・・

ランサムウェアは現時点でも様々な種類があり、主に暗号化されたファイルの拡張子を見ることでその種類を特定できます。
(拡張子とはファイル名のあとに「.」(ドット)から始まるもので、そのファイルの種類を表すものです)

主なランサムウェアが暗号化した際の拡張子は次のようなものになります。

.crypt、、.cryp1、.crypz、.ECC、.VVV、.CCC、.ZZZ、.AAA、.ABC、.XYZ、.XXX、.TTT、.MP3、.MICRO、.RSNSLocked、.locky、.777、.zepto

これらの拡張子が判別したら各ウィルス駆除ソフトのメーカーが暗号を解く無料ソフトを提供していますのでそちらを使用して各ファイルの復元をしてください。

◆トレンドマイクロ

https://esupport.trendmicro.com/support/vb/solution/ja-jp/1114210.aspx

◆カスペルスキー

https://support.kaspersky.co.jp/viruses/disinfection/8547?_ga=1.89198547.978631317.1444734495#block1

※上記ツールの解説

https://blog.kaspersky.co.jp/cryptxxx-ransomware/11181/

但しハッカー側も新しいバージョンのウィルスを送り込んでいるため、復元できない可能性が大きいのが現状です。

もし復元できなかったら・・・

上記のような復元プログラムは今回の「.zepto」のような新種のウィルスが施した暗号化には対応できないため、感染してしまうとほぼ復元が難しいのが現状です。

但し、Windowsにはファイルを復元できる機能がありますので最後の手段としてそちらから復元することも可能です。

復元するにはまず日常からファイルのバックアップ(万が一のためにファイルの複製を保存すること)するように設定を行ってください。

 

◆「初心者でもわかる! Windows 7 でバックアップ : 特定のフォルダーをバックアップ – 定期的に実行」

https://support.microsoft.com/ja-jp/kb/2666279

上記の設定でバックアップを取ることができていれば下記のような方法でファイルを復元することが可能です。(リンク先はWindows7のものですが8や10でもほぼ同じ操作です)

 

◆「初心者でもわかる! Windows 7 でバックアップ : 特定のフォルダーやファイルを復元」

https://support.microsoft.com/ja-jp/kb/2666282

 

また定期的に「復元ポイント」を作成するとそちらからも復元可能な場合もあります

◆「PC をバックアップおよび復元する」の「復元ポイントを作成する」を参照

https://support.microsoft.com/ja-jp/help/17127/windows-back-up-restore

上記の要領で復元ポイントを作成したりバックアップを取っていた場合は、暗号化されたファイルを右クリックし、表示されるメニューから「以前のバージョンの復元」(プロパティメニューの「以前のバージョン」からも同じ作業が可能)を選択することで簡単に正常なファイルに戻すことも可能です。

以上ご注意のほどよろしくお願いいたします。

 

 

 

grocerycrud.でデートピッカーがエラー

Grocery CRUDのDatepickerでエラーが出る

Codeigniter のCRUDを簡単に生成する「Grocery CRUD」を使ってましたら、いつも間にか datetime型を扱う際に自動で設定されるDatepickerがjqueryのエラーで動かない。
でもよくよく見てみると直接Datepickerがエラーを起こしてるんじゃなくて、同じフォーム内にbooleanを扱うようなラジオボタンがあると連鎖的にエラーを起こすみたい。

grocerycrud.でデートピッカーがエラー

jquery.uniform.min.js:1 Uncaught TypeError: Cannot read property ‘msie’ of undefined(anonymous function)
jquery.uniform.config.js:2 Uncaught TypeError: $(…).uniform is not a function

と言ったもので、Codeigniter のassets以下のgrocery_crudのファイル群の中

grocery_crud\js\jquery_plugins\jquery.uniform.min.js

grocery_crud\js\jquery_plugins\config\jquery.uniform.config.js

がその原因みたい。
Cannot read property ‘msie’  とあるのでユーザエージェントの取得がかなり古いバージョンのjqueryの書き方なのでこれで躓いているみたい
なのでjquery.uniform.min.jsの最新バージョンと差し替える為以下のページからアーカイブ(Uniform v2.1.2)を落とすなりしてgrocery_crudディレクトリ内のjquery.uniform.min.js(Uniform v2.0.0)と差し替える
https://github.com/pixelmatrix/uniform

これにて動作するようになりました。