Xcode7・Swift2になって初のアプリのバージョンアップ。
使っていた色々なメソッドがdeprecatedになり、、色々と修正してようやくアップロードまでこぎつけましたが、最後の最後でまたつまづきました。。。
アーカイブを作り、バリデートをし、意気揚々と「Upload To App Store」をクリックして待つこと数分。
アップルから見たこともないメールが届きました。
一応全文載せておきます。
Dear developer,
We have discovered one or more issues with your recent delivery for "MYAPPNAME". To process your delivery, the following issues must be corrected:
Invalid Swift Support - The files...
2015年9月22日火曜日
【swift】iOS9におけるjsonの取得 sendAsynchronousRequestが使えない。
Xcode7のSwift2からそれまで使っていた幾つかのファンクションがdeprecatedになっていました。。。
その中でも一番大きかったのがjsonの取得に使っていたsendAsynchronousRequestがdeprecatedになっていた事でした。
今まではこんな感じ。
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode...
2015年9月8日火曜日
【ECCUBE3 プラグイン】配送伝票番号

【ECCUBE3 プラグイン】配送伝票番号
ECCUBE3で注文毎に配送伝票番号を登録し、発送メールに追記します。
ソースはこちら
インストール方法
ソースはこちらからGithubへ行き、ページの右下の「Download ZIP」からZIPファイルをダウンロード
ECCUBE3管理画面<オーナーズストア<プラグイン<プラグイン一覧
ページ下部の独自プラグイン「プラグインのアップロードはこちら」
ダウンロードしたZIPを選択してアップロード
独自プラグインにプラグインが追加されるので、「有効にする」をクリック
機能
メールテンプレート追加
「発送メール」というテンプレートが追加されます。
設定>基本情報設定>メール設定...
2015年8月28日金曜日
【ECCUBE3 プラグイン】新着商品

【ECCUBE3 プラグイン】新着商品
ECCUBE3のトップページに新商品を追加します。
ソースはGithubにupしています。
こちらから
How to install
Githubページの右下の「Download ZIP」からZIPファイルをダウンロード
ECCUBE3管理画面<オーナーズストア<プラグイン<プラグイン一覧
ページ下部の独自プラグイン「プラグインのアップロードはこちら」
ダウンロードしたZIPを選択してアップロード
独自プラグインにプラグインが追加されるので、「有効にする」をクリック
以上でトップページの新着情報の上に8件の新商品(最後からアップされた順)が表示されます。
カスタマイズ方法
表示件数を変更する。デフォは8件
app/Plugin/NewItem/Resource/template/new_item.twig
15行目
{%...
2015年8月25日火曜日
【ECCUBE3 プラグイン】最近購入された商品

【ECCUBE3 プラグイン】最近購入された商品
ECCUBE3の商品詳細画面に最近購入された商品を追加します。
ソースはGithubにupしています。
こちらから
How to install
Githubページの右下の「Download ZIP」からZIPファイルをダウンロード
ECCUBE3管理画面<オーナーズストア<プラグイン<プラグイン一覧
ページ下部の独自プラグイン「プラグインのアップロードはこちら」
ダウンロードしたZIPを選択してアップロード
独自プラグインにプラグインが追加されるので、「有効にする」をクリック
以上で商品詳細画面のサブ画像の下に8件の最近購入された商品が表示されます。
カスタマイズ方法
表示件数を変更する。デフォは8件
app/Plugin/RecentlyPurchaseItem/Resource/template/recentl_purchase_item.twig
14行目
{%...
2015年8月13日木曜日
【ECCUBE3】複数の規格がある商品をcsvで登録する。

ECCUBE2系の頃から規格が複数ある商品をcsvで登録するにはカスタマイズが必要でした。
EC CUBE3系も同様なので、商品登録csvの「規格分類1(ID)」セルにカンマ区切りで規格分類IDを入力すると登録できる仕様にしてみましょう。
※「規格分類2(ID)」には手を加えないので、「規格分類1(ID)」を使用する場合のみのカスタマイズになります。
※規格を複数登録する際、商品コード、値段はcsvに入力した値になります。規格毎に商品コードや値段を別々にしたい場合は考慮してませんのであしからず。
では、カスタマイズしていきましょう。カスタマイズ自体はほんの数行加えるだけです。
下記、csv登録のコントローラーを開きます。
/src/Eccube/Controller/Admin/Product/CsvImportController.php
174行目付近
//...
2015年8月1日土曜日
swift MapView PolyLine上を移動するアニメーション

MapViewに描画したPolyLine上を移動するアニメーションを作りたくて試行錯誤。
アニメーションを使うというより、座標がわかっているので、ピンを座標に沿って移動していけば良いという事に辿り着く。
ずっとアニメーションで検索してたから結論になかなか辿り着けなかった。。。
stackoverflowにヒントありました。
Animate a visual element along an arc in MapKit
山手線の駅の緯度経度を使用してピンを一周させてみましょう。
山手線って意外と縦長。。。
...
Gmailに来た作業依頼メールをTrelloの新規カードとして追加する。

今日はTrelloの新しい発見。
Trello・・・TODOリストですね。
細かい使い方は省略して、今日はタイトル通り、特定のメールアドレスに作業依頼が来るので、Gmailに来た作業依頼メールをTrelloに新規カードとして追加する。という事をします。
Trelloボードにメンバー追加してカード追加してもらって管理とかしたいけど、レガシーな環境から抜け出せない場合もあるので。。。
カードを追加したいボードを開きます。
画面右端の Show Menuからメニューを開き、Email-to-board Settingsをクリック。
ブルーで塗りつぶした部分に転送先のメールアドレスが出てきま...
2015年7月31日金曜日
【ECCUBE】2.12系 在庫のない規格を選択肢から消す。
ECCUBE 2.12系で在庫のない商品の規格を選択肢から削除したい。
在庫がない場合、選択肢の横に(品切れ中)とは表示されるが、紛らわしいので消してしまおうという事に。
まずは「商品詳細ページ」のページ詳細を見てみる事に。
どうやら規格の選択肢の生成にはSmartyのhtml_optionを使っているようだ。
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals...
2015年7月24日金曜日
Automatorを使って楽天のランキングをチェックしてメールする

MacのデフォルトアプリでもあるAutomator
こんなやつです。
知名度は低いですが、色々と作業を自動化してくれる優れもの。
今回はAutomatorを使って毎日決まった時間にデイリーランキング、毎週決まった時間にウイークリーランキングに自分のお店の商品がランクインしているか調べて、
順位と商品をメールで送ってもらいましょう。
まずはAutomatormを立ち上げ、ファイル>新規を選択します。
ウィンドウが立ち上がります。書類の種類を選択してください。今回は決まった時間に実行するので「カレンダーアラーム」を選択します。
こんな画面が立ち上がります。
左側のライブラリ一覧か...
2015年7月18日土曜日
【ECCUBE3】最近購入された商品のブロックの追加

ECCUBE3にて最近購入された商品を表示するブロックを追加していきましょう。
ECCUBE2系の頃とは作り方すっかり変わっていますが、慣れてしまえば簡単な追加はやりやすいです。
最終的な表示は下記の様になります。
まずは管理画面からブロックを追加しましょう。
コンテンツ管理>ブロック管理から新規入力で追加します。
それぞれ下記の様に入力します。ブロックデータはとりあえず何か入力しておきます。
ブロック名 最近購入された商品
ファイル名 recentPurchase.twig
ブロックデータ hoge
登録するとデータベースのdtb_blockに追加されます。
今回はただの画像やテキストを表示するブロックではなく、データベースから値を取得して表示するため、dtb_blockのlogic_flgを0から1に変更します。
logic_flgを1にするとFrontControllerProviderにコントローラーを探しに行きます。
次は、FrontControllerProviderにコントローラーを登録します。
/eccube/src/Eccube/ControllerProvider/FrontControllerProvider.php
75~79行目あたりのblockが定義されてるあたりに下記行を追加
$c->match('/block/recentPurchase',...
2015年7月14日火曜日
ECCUBE3正式版のインストール(さくらVPS)

さくらVPSサーバへ晴れて正式に3となったECCUBEをサーバーへインストールしていきす。
サーバーの構成とバージョンは下記
CentOS:6.6
Apache:2.2.15
PHP:5.6.10
PostgreSQL:9.4.1
phpPgAdminはインストールされているものとします。
EC-CUBE3のシステム要件は下記
Apache 2.2.x 以上 2.4.x 以上
PHP5.3.9以降
PostgreSQL 8.4.x以降 9.x以降
MySQL5.1.x以降 MySQL5.5.x以降
となっているので、sshでサーバーにログインし、各バージョンを確認してください。
Apacheの確認
httpd...
2015年7月13日月曜日
テキストエディターAtomで楽天goldのファイルを直で編集

楽天goldを運用していて、FTPしか使えず、FTPを開いて、該当のファイルをダウンロードして、バナーや商品を追加し、FTPにアップロードする。
運用上の一連の流れですが、これをAtomというテキストエディターを使って直でFTPのファイルを編集して行きましょう。
まずAtomをダウンロードしてきます。AtomはGitHubが開発したテキストエディターです。
Atomのダウンロード
ダウンロードしてきたら、インストールですね。
※今回はmacでの説明になります。
インストールが終わったら、開きます。
英語ですね、、、まずは日本語化していきましょう。
設定に日本語が用意されているわけではなく、第三者の開発したプラグインをインストールして日本語化等の機能を増やしていく事になります。
まずメニューの「Atom」>「Preference」をクリック。
「Setting」画面が開いたら「Install」をクリックします。
画面中央の「Search...
2015年7月11日土曜日
【ECCUBE】バナーやプラグインのクリック数を調べる

バナーを貼ったけど、どれ位クリックされてるの??
新着商品やニュース、最近売れた商品やランキング等、販促系プラグインを色々入れてみたけど、どのプラグインが効果あるの??
アナリティクスで解析しても、どのキーワードで検索されたか、どこから来たか、どの商品が人気かはわかるけど、自分たちの作ったバナーや導入したプラグインの効果がわからないんだよなぁ、という時は「Googleアナリティクスのイベントトラッキング」を使えば、どのバナーやリンクが何回クリックされたかわかっちゃいます。
時間かけて作ったバナーが実はクリックされていないとう事もわかっちゃいます。。。
効果のあるバナーやプラグインがわかれば、次の一手が見えてくるかもしれません。
※Googleアナリティクスがユニバーサルアナリティクスの場合の説明になります。
リンクや画像がクリックされる度に、googleにクリックされたよという事を伝える事になります。
下記の様な設定になります。
...
2015年5月20日水曜日
ECCUBE メンバーによって管理画面のアクセスを制限する。
EC-CUBE 2.12にてログインするメンバーによって管理画面のアクセスを制限したいという事になった。
例)Aさんに商品管理だけアクセス出来るようにしたい。
早速ググってみると、システム設定>マスターデータ管理>mtb_authorityでメンバーを追加し、admin_contents.cssにて非表示にするというもの。
でも直接/admin/...を叩くとアクセス出来てしまうという。。。
mtb_permissionを使うとページ毎にアクセスできるメンバーを制限できるというのを発見。
システム設定>マスターデータ管理>mtb_authorityにて
店舗スタッフ ID:2を作成
システム設定>マスターデータ管理>mtb_permissionにアクセス。
基本情報管理にはアクセスできなくていいので、
ID:/admin/basis/index.php 値:1を設定
IDにアクセスできるか否か設定したページを入力し、値には店舗スタッフ以上の権限のあるメンバーがアクセス出来るように今回は1を設定(数字が小さい方が偉い)。
なので、メンバーのIDが0と1の人はアクセス可能で、2以上の人はアクセス出来ないよということ。
商品管理以外も設定しこれでOKかとおもいきや。
基本情報管理>特定商取引法へアクセス出来る。。。URLは下記。
/admin/basis/tradelaw.php
基本情報管理>配送方法設定もアクセス出来る。。。
/admin/basis/delivery.php
どうやら全てのファイルを指定する必要があるらしい。。。
どんだけのファイルをちまちま管理画面から設定する必要があるんだ。。。
なので、フォルダ以下の全てのファイルをアクセス出来ないように設定。
システム設定>マスターデータ管理>mtb_permissionで設定したやつを変更。
/admin/basis/index.php
↓
/admin/basis/
basis以下のファイルが全て対象となるように。
data/class/SC_Session.phpを開く
70行目あたり
$admin_path...
2015年5月7日木曜日
【EC-CUBE】最近購入された商品ブロック追加プラグインを高速化
EC-CUBEのDBログファイルを見てみる。
ん、遅い。何かが遅い。
このSQLが遅い。
SQL: SELECT dtb_order_detail.product_id,
dtb_order_detail.product_name,
dtb_order.create_date,
dtb_order.order_pref,
(SELECT main_list_image FROM dtb_products WHERE dtb_products.product_id = dtb_order_detail.product_id) as main_list_image FROM dtb_order_detail LEFT JOIN dtb_order ON dtb_order_detail.order_id = dtb_order.order_id WHERE dtb_order.del_flg...
2015年3月24日火曜日
swift iPhone画面上に映っている地図の距離をメートルで取得する。
iPhoneで地図を使ったアプリを開発する際、画面上にうつってる範囲の距離を取得したい時があります。
画面上で見えてる範囲だけ距離を取得しAPIに投げたい。のが動機です。
まずはiPhone上に地図を表示しなくては始まりませんね。
xcodeで新規プロジェクト、シングルページで新規アプリを作ります。
下記コードをコピペ。とりあえず地図が表示されます。
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an...
2015年3月14日土曜日
EC CUBE 2.11系でプラグインを実装する方法

2.12系からプラグインがボタンをクリックするだけで導入できますが、2.11系まではプラグインのインストール機能が無いため、インストールができません。
がしかし、2.11系でもインストールが可能です。
今回は「最近チェックした商品」を導入してみます。
クリックするとプラグインページに飛びます。
ダウンロードして、解凍します。
ブロックの設定
管理画面のデザイン>PC>ブロック設定>ブロックを新規入力で
ブロック名:最近チェックした商品
ファイル名:plg_checkeditems
内容にダウンロードしたプラグインのフォルダ内の「templates」フォルダ内のtplファイル(plg_checkeditems.tpl)をコピペ。
tplファイルとphpファイルの紐付けをデータベースから行います。
データベースへアクセスし、dtb_blocのphp_pathに「frontparts/bloc/plg_checkeditems.php」と記入
プラグインのフォルダ内のplg_checkeditems.phpをECCUBEのフォルダhtml>frontparts>bloc内にコピペ
plg_checkeditems.phpを編集します。
下記行を
require_once...
2015年3月12日木曜日
EC CUBE3のインストール(β版)
β版のECCUBE3を macのローカル環境(MAMP Mysql)へインストールしてみます。
コマンドラインを立ち上げ
下記コマンドを打ち込んでgithubからeccbe3をクローンする。
今回はローカルで動かすので、MAMPのhtdocsフォルダにダウンロード。
git clone http://github.com/EC-CUBE/ec-cube.git
フォルダ内へ移動
cd ec-cube
composerをインストールします。
curl -sS https://getcomposer.org/installer | php
次にMAMPを立ち上げ、phpmyadminから適当な名前のDBを作成しておきます。
次に、インストールしたECCUBEのフォルダの中の「eccube_install.sh」をエディタで開きます。
インストールに必要な修正は以下の部分。
...