04 月 15 th. 2010   Posted by Hazuki |   Category : ActionScript
案件でFlashとPHPを使ってファイルアップロードの機能を実装する機会があり、
Windowsでは問題なくアップロードができるが、Macで挙動がおかしくなる場面
に遭遇しました。

当初どこでこけてるのかがイマイチわからなかったのですが、MacではFileReference
のonCompleteが呼ばれてないっぽかったので調べたところ、どうやら

原因として、アップロード処理でレスポンスヘッダだけ返してBodyが空の場合に、
FileReferenceのonCompleteが動作しないといったバグがFlash自体にあったよう
です。
解決策として適当なBodyを返してあげることで、onCompleteを呼べるようになり
ました。

jqueryのプラグインjqUploaderなどを使用した際にもこれやっとかないとMacで動かない
といったことになります。
03 月 31 th. 2010   Posted by Hazuki |   Category : Cake
Cake PHPはじめました。
メモしときます。

formヘルパーでinputメソッドそのまま使ったとき日付などのセレクトが月が英名、MDYの形式で表示されてしまった。
なので
$form->input('birthday',array('dateFormat' => 'YMD', 'monthNames' => false));
とすることで見なれたYMD形式になりました。

ー追記
特に指定しないと年の値が1990 - 2030とかになってしまうので配列に
'minYear' => 1987, 'maxYear' => date('Y')
と追加することによって範囲を指定することができます。
初期値として'ーーーなど入れる場合は配列に
'empty'=>'---'
と追加。


Cake便利な予感はします。はやく慣れないと。

03 月 16 th. 2010   Posted by Hazuki |   Category : Php
昨日、php.iniのupload_max_filesizeを変更し、サイズが大きいファイルのアップロード
を試してみたがアップロードができてない。。。
という状況に陥った。

ちょっと調べたら suz-labに載ってました。
http://blog.suz-lab.com/2009/08/phpiniuploadmaxfilesize.html

再度php.iniを変更後無事アップできました。


02 月 27 th. 2010   Posted by Hazuki |   Category : ActionScript
ブログパーツなんかによくあるフローティングするFlashを作ってブログに実装してみた。

ブログ内にある写真のFlashをクリックすると画面全体に別Flashが敷かれ、スクロールに追随するというもの。

やることはJavascriptとFlashとの連携。
連携はExternalInterfaceを使います。
FlashAをクリックしたらJavscriptで FlashBを描画といった感じです。

あとはJavascriptでスクロール量を取得し、Flashが入ってる<div> を絶対位置で
常にtopに配置。

これでブログパーツも作れる!あとはアイデア次第だ。
でもまだブラウザ別に見てないから動かなかったりするんだろうなー。。。

02 月 5 th. 2010   Posted by Hazuki |   Category : Sql
Postgresを使用している案件で、バッチの作成でプロシージャを使うと楽な状況があったため、実際に関数を定義し使った。
サーバーサイドかなり久々でSQLも触るのも久しぶりなのでメモ。

PostgresSqlではストアドプロシージャのことをユーザー定義関数と呼ぶ。
ユーザー定義関数を使っていろいろなデータ処理をデータベースの側にもたせておくことで、
データベースにアクセスするツールやアプリケーションに共通の処理をひとつにまとめることができる。
language 'sql' では単純なものしか作成できない。oracleのPL/SQLを同等のものとしてPL/pgSQL
というものがある。
実際に自分が作成したものは language 'sql' で作成した。

create function hoge_function(char) 
-戻り値なし
returns int8 as 
'
  select 
        hoge_id
        ,foo_id
   from
        hoge
   where
      key = $1
language 'sql';

サーバーサイド側から引数を与え、sqlでは $1 に代入されている。
select hoge_function('a001');--ユーザー定義実行
下記のような感じに返ってくる。
 hoge_function
----------------------
                   1

戻り値が不要な場合は returns void で。
function はシングルクォーテーションで囲っているので、エスケープして '' と書く。

2 3 Next