2013年9月5日木曜日

サクラエディタで指定した文字で改行をするには?

CSVファイルを、カンマごとに改行したかったのですが、人力でやるには・・・
ということで、サクラエディタで、さくっと改行しました。

<指定文字での改行方法>

置換機能を使用します。
Ctrl + r で置換ウインドウが開きますね。

ポイントは、以下の2つです!
・置換後の文字を 「\r\n」にする。
・正規表現にチェックを付ける。 ※このチェックを付けないと、改行されず「\r\n」のまま
    置換されます。

あとは、置換対象の文字を指定して実行!!
とっても簡単ですね♪

linux 圧縮の注意点

Linuxでシェルスクリプトを動かした際にハマった・・・
というか無知だったのでメモります。

zip圧縮する際に

zip 圧縮後のファイル(ディレクトリ)名 圧縮元ファイル(ディレクトリ)名

として指定しますが、「圧縮元ファイル(ディレクトリ)名」にそのファイルまでの「パス」を
指定すると、パスで指定した階層構造ごと保存されてしまいます。

例えば、圧縮元ファイル(ディレクトリ)名に
temp/a001/hoge.txt と指定した場合は、圧縮ファイルに「hoge.txt」だけではなく
解凍すると・・・
temp
  |--a001
       |--hoge.txt
temp-a001ディレクトリ配下にhoge.txtがある状態となります。

ん~ temp、a001ディレクトリを除外して、hoge.txtだけ圧縮される方法が
ありそうな気がするのですが・・・見つからず(^^;
結局、圧縮は圧縮対象のファイルが格納されている
ディレクトリに移動後に、圧縮を行いました。

ん~、もっと便利な方法がありそうな気もしますが・・・。

2013年9月1日日曜日

XSS(クロスサイトスクリプティング)対策 チェック処理について

XSS対策について調べたところ、@ITさんのXSS脆弱性により起こる被害とその対策
チェック処理の注意点が書かれていたのでメモ。

①チェック処理はサーバで行う
 javaScriptを使用してクライアントでチェックを行う場合
 ブラウザでjavaScriptをOFFに設定していた場合は、チェックされずに
 不正な値がサーバに渡る。
 また、入力フォームを攻撃者が容易していた場合も
 サーバでそのまま不正な値が処理されてしまう。

②全てのパラメータのチェックを行う。
 ラジオボタンなど、決まった値を選択させる場合に
 チェック処理を実装していない場合があるが
 攻撃者が容易したサイト(例えば、ラジオボタンの選択項目の箇所が
 テキスト入力欄に置き換えられているなど)
 にて、不正な値が入力されると、サーバでその値で処理を行ってしまう。
 なので、決まった値を選択させる入力欄にも、サーバ側でチェック処理を行う必要がある。
 
③毎回チェックを行う。
 情報を複数ページに渡り入力する場合(例えば、ショッピングサイトなどで
 ページごとに順をおって、注文者情報や配送先などを入力する場合
 先のページで入力した内容は、一度サーバでチェックした後に
 次のページでは、hidden項目に設定してユーザには見えない用に
 保持することがあるが、hidden項目のデータは改ざんすることが可能なため
 一度、入力チェックしても、データ送信の都度サーバ側でチェック処理を
 行う必要がある。

と、チェック処理ではこのような注意点があるようです。
①なんかは、以前どこかで実装した気がするなぁ。。。(汗
さて、今後は注意して実装しなくては。

2013年8月31日土曜日

【シェルスクリプト(bash)】Syntax error: EOF in backquote substitution

echoで変数の値をログに出力するために
echo "【○○○チェック】:${hoge}" >> hoge.log

としたところ、シンタックスエラーが発生・・・なぜ?
Syntax error: EOF in backquote substitution

とりあえず、追加したechoの行をコメントアウトすると正常に動く。

1時間ほど悩まされた結果
【○○○チェック】を【○○○CHECK】としたところ、正常に動くようになりました。
さらに謎が深まりましたがwww

特定の文字で(例えば「ッ」など)で発生しているのか?と思い
「チェック」を後ろから一文字ずつけして、実行したのですが「チェック」を
全て削除してようやく、正常に動作しました。
と、いうことは悪さをしていたのは「チ」か!!!と思い
ためしに、「○○○ェック」としたところ、処理が正常に動きました。
やったね♪
と思いたいところですが、「○○○ェック」では処理が動いても
意味が分からない。。。
なので、今回は【○○○CHECK】として、実装しました。
ただ、何故「チ」でエラーが起きるか分かりません。

ムズムズしますが、今日はこの辺で!

【シェルスクリプト(bash)】 2>&1とは?

シェルスクリプトのサンプルコードをながめていると
「2>&1」という記載があり、初心者には???

とりあえず、ググッてみたところ処理の内容が判明。

file.log 2>&1 と記載すると
標準エラー出力は標準出力と同じfile.logに出力するという意味になるようです。

もう少し、細かく見ていくと

2> は標準エラー出力のリダイレクトの指示という意味になります。
リダイレクト??と思ったので、さらに調べてみると下記の意味のようです。

<リダイレクト(ITproより引用)>
---------------------------------------------------------------
シェルは「キーボードから入力し、画面に出力する」ようになっている。
こうした入力と出力の方法を変更する場合には、リダイレクトを使う。

リダイレクトには出力先を切り替える「>」、出力先のファイルに追加する「>>」
入力元を切り替える「<」、複数行の入力を行える「<<」がある。
---------------------------------------------------------------

なるほど!!という感じでしょうか。

さらに細かくみると
ファイル・ディスクリプタの0~2はシェルと予約されているとのこと。
意味は
0:標準入力(シェルにどのように入力するかを指定。デフォルトはキーボード)
1:標準出力(シェルの結果をどこに出力するかを指定。デフォルトは画面)
2:標準エラー出力(シェルの実行時に発生したエラーメッセージの出力先を指定。デフォルトは画面)
※1の場合は省略可能
 echo "メッセージ" 1 > file ではなく echo "メッセージ" > file  としても同じ意味となります。

なので、2>&1 と指定すると
標準エラー出力(2)の出力先を、標準出力(1)と同じところに変更するという意味になるようです。

今回は、ITproさんの【 リダイレクトとは 】という記事を参考にさせていただきました。
こちらには、リダイレクトについてもっと詳細が書かれているので、興味のある方は
参照してみてください♪


同一ネットワーク上にある機器のMACアドレスの調べ方

ネットワークプリンタのIPアドレスを固定する際に、ルータにネットワークプリンタのMACアドレスを
設定する必要がある場合などに使用しています。

<手順>
 ①ネットワークアダプタを調べたい機器のIPアドレスを取得します。
 ②コマンドプロンプトを起動し、対象の機器と通信が行えるか確認します。
   ping XXX.XXX.XXX.XXX(①で調べたIPアドレス)
   ※Received出来ていれば通信が行えています。
 ③対象機器のMACアドレスを、コマンドプロンプトのarpコマンドを使用して調べます。
   arp -a XXX.XXX.XXX.XXX(①で調べたIPアドレス)
 
   表示された内容の、Physical Addressと書かれているXX-XX-XX-XX-XX-XXが
   ネットワークアダプタのMACアドレスになります。
 
 ※②を行わず、③を実行すると「No ARP Entries Found」というメッセージが表示されます。
  (XPで 確認)
    なので、②を実行後に③を行う必要があります。

2013年7月14日日曜日

浜益漁港でブラー釣り

2013/07/13 晴れ(気温28度くらい)

札幌からオロロン沿いを走ること約90分、浜益漁港に到着。

時間は、14:00くらいでした。

とりあえずワームで攻めることに。

30分くらいやりましたが、特に反応なし。。。

と、ボウズが濃厚になってきたので、ブラーにチェンジ!!

イソメを装着し、足元に落とすと・・・

即アタリが!!
 
ググ、グググと弱めのアタリがあり、その後ピタ!っと反応がなくなる・・・

ブラーを確認すると、イソメがない。

ん~かなり弱いアタリだったのに、餌が持っていかれていました。

イソメを確認すると、この暑さ?のせいでほとんどが弱っており

若干切れやすくなっていました。

ただ、魚がいることが確認できので一安心。

何回かアタリあり→餌とられるを繰り返しながら、粘ること30分

ついに、アブラコをGETしました。

大体、20センチというところでしょうか。


と、今回は2時間でアブラコ1匹の寂しい魚果となりましたが

夜や朝方に行けばもっと楽しめそうな予感でした。

2013年7月12日金曜日

iTunesconnectで住所変更しまっせ。

さて、残念ながら久しくアプリ開発から遠ざかっていますが

会社が移転したため、Appleに届けている住所も変更することに。

さて、どうしたものかと取り合えずググってみると下記のサイトを発見!!

iTunes Connectでの住所変更

このサイト通りに

1.iTunesconnectにログイン

2.Top画面下部の「Contact Us」をクリック

3.表示された画面で下記を選択
 ① 「Contracts and Legal」 を選択
 ② 「Name/Address Update - Request」 を選択

 ①、②を選択すると画面下部に画面が追加されるので、「contact us.」を選択

4.変更後の住所と理由を入力
 ①住所は英語表記で入力してください。
  JuDress(変換後の住所は正しいか必ず確認してください) 
 ②理由は「引越」などの理由を英語で入力してください。

5.submitをクリック
 Appleのサポートから連絡が来るまで待ちます。

と、現在は「5」の状態なので、連絡がきたら追記します!! 

2013年7月7日日曜日

【AWS】OpenPNE3.6をインストール

さて、前回まででインストールする準備が完了しました。

いよいよインストールを行います。

1.MySQLの設定
 ①MySQLサーバを起動します
  /etc/init.d/mysqld start

 ②MySQLにログインします
  mysql -u root -p

 ③新規ユーザを作成します
  grant all privileges on *.* to 'openpne'@'localhost' identified by 'password';

 ④新規DBを作成します
  create database TestPneDB;

2.インストールするOpenPNE本体の用意
 ①OpenPNEを格納するディレクトリを作成します
  mkdir /home/OpenPNE

 ②作成したディレクトリに移動します
  cd /home/OpenPNE

 ③OpenPNE3.6を取得します
  wget https://github.com/openpne/OpenPNE3/zipball/OpenPNE-3.6.9.1
  ※最新バージョンは、OpenPNE公式ページのzip版ダウンロードリンクを
    コピーして、上記URLを置き換えてください。

 ④取得したOpenPNE3.6を解凍・展開します
   unzip OpenPNE-3.6.9.1
   ※unzipコマンドが使用できない場合は、unzipをインストール後に再度
         unzipコマンドを実行します。
    yum install unzip
 
 ⑤解凍後のディレクトリ名をリネームします
   解凍後のディレクトリ名は長いので、適宜リネームします。
   mv openpne-OpenPNE3-95f1bac TestPNE36
   ※mv 変更前のディレクトリ名 変更後のディレクトリ名
 
3.取得したOpenPNE本体のファイルを編集
 ①OpenPNEルート/config 配下のファイルをコピー(.sampleを削除)
  ・OpenPNE.yml.sample → OpenPNE.yml
  ・ProjectConfiguration.class.php.sample → ProjectConfiguration.class.php
  
  cp OpenPNE.yml.sample OpenPNE.yml
  cp ProjectConfiguration.class.php.sample ProjectConfiguration.class.php

 ②OpenPNE.ymlファイルを編集します
  base_url:をサイトのURLに変更
  vi OpenPNE.yml
  
4.OpenPNEのインストール
 ① インストールを実行します
  ./symfony openpne:install

  Choose DBMS                : mysql
    Type database username  : root
    Type database hostname  : localhost
    Type database port number :
    Type database name          : TestPneDB

   インストール時にエラーが発生した場合は、phpに割り当てられているメモリが
  少ない可能性があるので、メモリを増やします。
  vi /etc/php.ini
  memory_limitを256Mに増やします。

 ②インストールが成功したら、シンボリックリンクを作成します
  ・snsディレクトリを作成
   mkdir /var/www/sns
  ・作成したディレクトリに移動
   cd /var/www/sns
  ・シンボリックリンクを作成
   ln -s /home/OpenPNE/TestPNE36/web/ TestPNE36
 
 ③ .htaccessを編集(OpenPNEルート/web 配下)
  ・Options +FollowSymLinks +ExecCGI をコメントアウト
    → #Options +FollowSymLinks +ExecCGI
  ・RewriteBase / をシンボリックリンクで指定したURLに変更
    → /TestPNE3.6

5.URLにアクセスしてログイン画面が表示されるか確認します。
 http://ドメイン/TestPNE3.6 にアクセスしてログイン画面が表示されれば
 インストール成功です!!

と、全3回と少々長くなってしましたしたが、これにてAWSにOpenPNEの
インストールは完了です。
お疲れ様でした!!

 

2013年7月1日月曜日

小樽南防波堤にてロックフィッシュ!

久しぶりに小樽にて釣り!

実は6月末に行きましたが、ちょいとブログをアップするのが遅くなってしまいました。

さて、今回は16~20時頃までの釣りでしたが、ソイとアブラコで7匹ほど釣れました。

途中、エギでイカを狙いましたが、残念ながらこちらはボウズ(笑

基本的には、ブラーにイソメをつけてチョイ投げして、ジョジョに引いてくるという感じです。
活性が高かったので、ワームでも釣れたと思います。

前半は金ブラーで17時30分頃まで継続的にあたりがあり、エギで撃沈した
19時過ぎ以降は、白の夜光ブラーで釣りましたが、こちらも継続的にあたりがありました。

全体的にサイズは大きくありませんが、ソイとアブラコで20cmオーバーが数引き釣れたので
良かったです。


夕日も良い感じでした!




2013年6月30日日曜日

【AWS】OpenPNE3.6のインストール環境構築

前回までの工程で、CentOSで動くEC2インスタンス作成しました。

続いて、作成したEC2インスタンスにOpenPNEをインストールする工程です。

① yumを更新
PuTTYなどを使用して、作成したEC2インスタンスにアクセスします。
下記コマンドを実行してyumを更新します。
yum update

② リポジトリを登録
OpenPNE公式サイトに載っているコマンド
rpm -ivh http://nog.dino.co.jp/dist/centos/5/dino/noarch/dino-release-1.0-1.noarch.rpm
を実行しましたが、残念ながらミドルウェアのセットアップでエラーがでてしまいました。
・・・自分だけ?
なので、今回はremiリポジトリを使用しました。
rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm

③OpenPNE用のミドルウェアをインストール
登録したremiリポジトリからミドルウェアをインストールします。
yum -y --enablerepo=remi install httpd mysql-server postfix aspell curl gmp libxslt wget httpd-devel php php-cli php-common php-devel php-pear php-gd php-mbstring php-pdo php-mysql php-pgsql php-xml php-xmlrpc php-mcrypt

これで、OpenPNEをインストールする環境は構築できました。
実は②でつまずいて、ここまでに3時間を費やしています(^^;
環境構築は・・・キライですw

ちなみに、リポジトリからインストールできるphpのバージョン情報などは
事前に調べることができます。

yum --enablerepo=remi info php


remiでインストールできるバージョンは5.4.16ですね。

次回は、OpenPNEのインストールを行おうと思います!





2013年6月25日火曜日

【jQueryMobile】特定ボタンのaction時の背景色を変える

アコーディオンを使用した際に、ヘッダ部分が自動的にボタンになるのはありがたいのですが
ボタンがactiveな時の背景色も、他のコントロールと同じスタイルが適用されます。

そこで、アコーディオンのヘッダボタンactive時の背景色を変更してみました。

アコーディオンを使用するとヘッダ部分は自動的にボタンになるため

<div data-role="collapsible" data-collapsed="false">
  <h3></h3>
<div>

と定義したものは、下記のように<a>タグが挿入され、ボタンのようになります。
<div data-role="collapsible" data-collapsed="false">
  <h3>
    <a href="#">
  </h3>
<div>

ボタンがactive状態のスタイルは<a>タグの「ui-btn-active」クラスによって
指定されています。
なので、若干強引ですが<h3>に対してクラスを設定して
そのクラスの子要素の「ui-btn-active」に対してスタイルを適用します。

例)
<div data-role="collapsible" data-collapsed="false">
  <h3 class="hdrClass"></h3>
<div>

この場合、h3に「hdrClass」というクラスを指定したので
後はスタイルシートに

.hdrClass .ui-btn-active{
}

もしくは

.hdrClass > .ui-btn-active{
}

というように設定して、背景色を適用すればactive時の背景色を
変更することができます。

2013年6月19日水曜日

jQuery Mobile1.3に変更後に「DateBox」が動かなくなった場合

jQueryMobileのPanelを使用する必要があるため、1.3verに変更したところ
無事にPanelは実装できたのですが、残念ながらカレンダーを表示するのに
使用していた、「DateBox」プラグインが動かない。
テキストボックスをクリックしても、カレンダーが表示されなくなってしまいました。
よくある?1歩進んで2歩下がる状態です。

どうやら、DateBoxのjavaScriptでエラーがあり、カレンダーが表示できない模様。

とりあえず、DateBoxプラグインのサイトから
最新バージョンを取得し、入れ替えたところ
正常に動作するようになりました。

jQueryMobileにアイコンを追加

facebookや、youtubeのようなメニューをjQueryMobileのPanelで実装しました。

がしかし、横三本ボーダーのようなアイコンがありません。。。

どうしようかなぁ~っと色々検索したところ、下記のサイトが良さそうです。

andyMatthews.net

このサイトの左メニュー 
projects>jQuery Mobile Icon Pack の画面内にある
「Download from Github」から
ZipファイルをDLすることができます。

使用方法はZipファイルを解凍し、作成しているサイトの
CSSを置く場所に以下の3つを設置します。
・fontフォルダ
・imagesフォルダ
・jqm-icon-pack-fa.css

次に、htmlで「jqm-icon-pack-fa.css」を読み込みます。

後はアイコンを使用させたい箇所に 
data-icon="smile" 
と追加すれば、アイコンが表示されます。

各アイコンの名称は
projects>jQuery Mobile Icon Pack
の「Font Awesome Icons」から確認することができます。

ちなみに、僕が欲しかった横三本ボーダアイコンは  
data-icon="reorder" 
で表示できました。

2013年6月16日日曜日

【jQuery】画像を切替後にズームを行う。

Twitterアプリのログイン前画面のような
画像が切り替わり、その後ちょっと画面がズームする動きに挑戦してみました。

まず、画像の切替については、下記サイトの方法で実現。
jQueryで画像がクロスフェードするシンプルな画像ビューアー(自動再生)を作成する方法

次に画像切替後に、画像のズームです。
①画像の拡大
$(setImg + ' :first-child').animate({width:'150%',height:'150%',top:'-25%',left:'-25%'},zoomSpeed);
②次に表示する画像の大きさを初期化
$(setImg + ' :first-child').css({width:'100%',height:'100%',top:'0px',left:'0px'});

画像の拡大では、width、heightでそれぞれ拡大率を指定しています。
top、leftの指定は、拡大を画像の中心から行うため、表示位置を変更しています。
例えば、元々100%で表示していて、今回のように拡大率を150%にした場合
拡大した倍率の差を2で割った値がtop、leftの指定になります。
(150%-100%) / 2 = 25%

②では、①で拡大して非表示になっている画像が、次に表示される時に
元の大きさ、位置で表示されるように初期化を行っています。

ソース全体ではこのようになりました。

<script type="text/javascript">
$(function(){
    var setImg = '#example';
    var fadeSpeed = 1000;
    var switchSpeed = 5000;
    var zoomSpeed = 2000;

    // 全てのイメージを非表示
    $(setImg).children('img').css({opacity:'0'});
   
    // 最初のImgを表示
    $(setImg + ' img:first').stop().animate({opacity:'1',zIndex:'20'},fadeSpeed);

    // 画像の表示・非表示を切り替え

    setInterval(function(){
        // 画像の切替
        $(setImg + ' :first-child').animate({opacity:'0'},fadeSpeed).next('img').animate({opacity:'1'},fadeSpeed).end().appendTo(setImg);
        // 画像の拡大
        $(setImg + ' :first-child').animate({width:'150%',height:'150%',top:'-25%',left:'-25%'},zoomSpeed);
        // 次に表示する画像の大きさを初期化
        $(setImg + ' :first-child').css({width:'100%',height:'100%',top:'0px',left:'0px'});

    },switchSpeed);
});
</script>

<div id="example">
  <img src="/images/Sample.jpg" />
  <img src="/images/Sample2.jpg" />
</div>

スマホで見ると、画面を拡大するときにチラつくのが気になりますね。
ん~今後の改善ポイントですね。

【JavaScript】ある要素の2番目の子要素を非表示にする

例えば、以下のソースの、2番目のimgタグを非表示したい場合
<div id="example">
  <img src="sample.jpg" alt="" />
  <img src="sample2.jpg" alt="" />
</div>

JavaScriptを使用して、画面ロード時に非表示にすることができます。
<script type="text/javascript">
$(function(){
    var setImg = '#example';
    $(setImg + ' :first-child').next('img').css({opacity:'0'});
});
</script>

2013年6月11日火曜日

【AWS】EC2でCentOS6を使うために

OpenPNE3.6をEC2のサーバにインストールすることになり
CentOSがのっかったEC2サーバを構築することに。

普段からLinuxを使わず、かつAWSの超初心者としては、かなり×2 てこずりましたが
以下、構築の手順になります。

新しいインスタンスを Classic Wizardで作成します。


② AWS Marketplaceを選択します。





③ CentOSで検索します。


④ 検索結果から任意のバージョンを選択します。(今回はCentOS6 x86_64 with Updatesを選択)


⑤ 表示された画面の「1-Click Launch」タグで
    EC2 Instance Type、Security Group、Key Pairの設定を行います。
    また、画面右の表では料金も確認できます。
    なお、t1.microで$0.027/hrと有料の表記となっていますが
    私はアカウントを作って、1年未満のため現時点では無料で使用できています。
    ※料金がかかる場合もあるかもしれないので、自己責任でお願いします。
   設定が完了したら、Accept Terms & Launch with 1-Clickをクリックしてください。


⑥ 下記の画面が表示されたら、インスタンスが作成されています。

⑦ CentOSで作成したインスタンスが起動しています。
  初期状態ではインスタンス名が空なので、適宜名前を入力します。
  

これで、EC2でCentOSのインスタンスを使えるようになりました!
まとめると、短い工程でしたが自分にとっては難しかったです。


次回はOpenPNEをインストールする環境を構築します。


2013年6月9日日曜日

【OpenPNE】ログイン時に失敗する場合の対処(member/login/authMode/MailAddress was not found on this server.)

OpenPNEのインストールが完了し、ログインしたところ

member/login/authMode/MailAddress was not found on this server.

というエラーが・・・。

調べたところ、以下のいずれかの設定が誤っているもよう。
①apacheの設定ファイル(httpd.conf) 
②OpenPNEルート/webの.htaccess
 
apacheの設定ファイルでは、ドキュメントルートの
AllowOverrideが「All」になっている必要があるのですが
確認したところ、「none」になっていました。。。
 
<Directory "ドキュメントルート">
    AllowOverride All
</Directory>

誤:
<Directory "ドキュメントルート">
    AllowOverride None
</Directory>

②は正しく設定されていたので、今回は①を修正後に
ログインしたところ、正常にログインできました。

まだまだ、勉強が必要ですねぇ~。




【EC2-CentOS】シンボリックリンクでアクセスできない(Symbolic link not allowed or link target not accessible)

EC2にOpenPNEをインストール。

ここまでは、順調だったのだがシンボリックリンクをはってブラウザから
アクセスしたところ
Symbolic link not allowed or link target not accessible
となりアクセスできず。。。

リンク先のディレクトリの権限を確認したけど、特に問題ないっぽい。

試しに、SELinuxを無効(setenforce 0)にしたところ
サイトにアクセスできるようになりました!

ん~ただ、ちゃんとした理由が分からないので、問題の切り分けとして
SELinuxを一時的に無効にするのはありかなぁ~っと。

と、モヤモヤしますが、とりあえず今回はここまでで。



2013年3月3日日曜日

【Symfony】 messages.ja.xml の値をaction、templateで使用する方法

messages.ja.xml で画面に表示するメッセージを管理したい!という場面は多々あります。

そんなときには、下記の記述で読込むことができます。

○action
 sfContext::getInstance()->getI18N()->__('messages.ja.xmlのsourceを指定');

○template
 <?php echo __('messages.ja.xmlのsourceを指定') ?>

2013年3月2日土曜日

Symfony sfWidgetFormChoice action内でリスト項目を再設定する方法

actionクラスでセレクトボックスに表示するリストを再設定する方法です。

① フォームを取得
$form = new SampleForm()

② 再設定するセレクトボックスを指定・表示する値を設定
$form->setWidget('セレクトボックス名', new sfWidgetFormSelect(array('choices' => 表示する値)));

これで、指定したセレクトボックス内に表示する値を変更できます。

なお、セレクトボックス表示時にデフォルトで表示する値を指定する場合は下記のようにします。
$form->setDefault('セレクトボックス名',デフォルト値);

と、セレクトボックス設定回りはこんな感じです!

2013年2月24日日曜日

Doctrine 「The left side of the join between the aliases '○○○' and 'XXX' must have at least the primary key field(s) selected.」 の対処法

そのままですが

「'○○○' and 'XXX' must have at least the primary key field(s) selected.」

の場合、'○○○'テーブルと、'XXX'テーブルの主キーを

SELECT句で抽出項目に加えるとエラーになりません。

例)
SELECT ○○○.id , XXX.id  ~

とすればOKです!

2013年2月17日日曜日

doctrineのschema.ymlの設定内容

久しぶりに新しいTABLEを作成しようとすると

relationsのtypeってなんだっけ?

となったので、ググってみると大変参考になるサイトを発見! !

symfony schema.yml の覚書

ここを見ればばっちりです!

サクラエディタで表示をUTF-8に変更する

ちょいとメモメモ。

メニューの「ファイル」→「開き直す」→「UTF-8で開き直す」
Ctrl+Alt+F8でもOK!

2013年2月11日月曜日

iPhoneアプリ更新時のリリース手順(XCode4.5)

更新の度にどうやったっけ?となるのでメモメモ。
※XCode4.5.1

iTunesConnectでの作業
1.Manage Your Applications → 更新対象のアプリを選択 → Versionsの「Add Version」ボタンを押す。
2.New Versionの説明を入力する。
3.Statusが「Prepare for Upload」になる。
4.New Versionの画面右上の「Ready to Upload Binary」ボタンを押す。
5.今回の機能で暗号化機能に変更を加えたか、法的な問題のための更新かの質問がされるので選択後、「Continue」ボタンを押す。(自分は基本的にNO)
6.アプリ承認後、自動的にリリースするかどうか質問されるので、選択後、「Save」ボタンを押す。
7.Statusが「Waiting For Upload」になっていることを確認する。

XCodeでの作業
1.Product → Edit Schemeの左メニューからArchiveを選択し、Build Configurationで「Distribution」を選択する。
2.左メニューのプロジェクトを選択しBuild SettingsでCode Signingを設定。
3.Product → Archiveを選択。
  Buildが成功すると、Organizerが自動的に起動する。

Organizerでの作業
1.Organizer画面左の「Validate」ボタンを押し、ユーザ名とパスワードを入力し、「Next」ボタンを押す。
2.ApplicationとCode Signing Identityを選択し、「Next」ボタンを押す。
3.No issues・・・と画面に表示されたら、「Finish」ボタンを押す。
4.Organizer画面左の「Distribute」ボタンを押し、「Submit to the iOS App Store」を選択後、「Next」ボタンを押す。
5.表示された画面で、ユーザ名とパスワードを入力する。
6.ApplicationとCode Signing Identityを選択し、「Next」ボタンを押す。
7.ApplicationのUploadが始まります。(完了まで少々時間がかかる場合あり)
8.No issues・・・と画面に表示されたら、「Finish」ボタンを押します。

iTunesConnectでの作業
1.New VersionのStatusが「Upload Received」もしくは「Waiting For Review」になっていればOK!

2013年1月19日土曜日

CSSの「hover」と「active」の順序

ボタン押下時のスタイルでどうも上手くいかなかったので調べて見ると

hoverはactiveよりも先に記述しなきゃいけないことが判明!
知らなかった・・・(--;

【順序】
① hover
② active

理由は、hoverをactiveより後に書くとhoverのスタイルでactionが上書き
されてしまうからです。
例えば、
① active:フォント色を「赤」に設定
② hover:フォント色を「青」に設定

このスタイルをリンクに適用すると
マウスのカーソルが当たったときには②のhoverで設定した「青」になり
次にリンクを押下すると①で設定した「赤」にはならず②「青」の青のままになります。

・・・1時間もはまってしまいました。

今回、参考にさせていただいたサイトは下記です。
詳細に説明が書かれてあるので、ぜひ参考にしてみて下さい。
:link、:visited、:hover、:active擬似クラス