CSS Frameworkの Bulueprint をTextMateのBundleにしてみた。
Bundleの中にマスターのソースがあって
プロジェクト毎にコピーして使える。
CSS Frameworkっていうよりも、
常用スタイルをBundleの中に貯めていって
育てていく感じで使うと良いかもしれない。
Archive for the "lib" Tag
CSS Blueprint.tmbundle
2 Comments
SWFUpload Plugin for symfony
探しても見つからなかったので、
SWFUpload を symfony に組込むプラグインを作ってみた。
画像ファイルのサムネイル生成は sfThumbnailPlugin を使った。
» mySWFUploadPlugin
2008-07-16 追記
公式に出たっぽい sfSWFUploadPlugin
インストールとテスト
適当なプロジェクトを作ってテストするまで。
-
プロジェクト作成。
mkdir myproj cd myproj symfony init-project myproj
-
プラグインをインストール。
サムネイル生成に必要なsfThumbnailPluginもインストール。symfony plugin-install http://src.metatype.jp/mySWFUploadPlugin symfony plugin-install http://plugins.symfony-project.com/sfThumbnailPlugin
-
サンプル用のappsとwebに入れ替える。
rm -R apps rm -R web mv plugins/mySWFUploadPlugin/sample/apps apps mv plugins/mySWFUploadPlugin/sample/web web
-
パーミッション修正とキャッシュクリア。
symfony fix-perms symfony cc
-
これでwebにブラウザからアクセスしてテストできる。
ファイルの配置はサンプルを見れば大体分かると思う。
使い方
詳しく説明すると大変そうだから、簡単なフローの説明。
-
SWFUploadのコンストラクタを使わずに、
設定名(name)を付けて、SWFUpload.addSetting(name, { SWFUpload Settings… });設定を定義しておく。
イベントハンドラを設定しないと、
web/mySWFUploadPlugin/handlers.js のデフォルトの挙動が適用される。
設定はテンプレートに直接書いても良いし、
外部JavaScriptにまとめておいてもOK。
-
テンプレートでSWFUploadヘルパを有効。
<?php use_helper('SWFUpload') ?>ヘルパを使ってSWFUploadを起動する。<?php echo swfupload($name, $id, $js, $version) ?>
引数 型 省略時 説明 $name string 必須 SWFUploadの設定名 $id string|array 必須 アップロード開始トリガーになる要素のID $js string|array 読込まない SWFUploadの設定や使いたい外部JavaScriptなど。
use_javascriptヘルパを使って読込まれるので、
web/js/ からファイル名までのパスでOK。$version int 9 Flashのバージョン、通常は指定なしでOK。
-
アップロードが実行される毎に、
現在のモジュールの executeSWFUpload がコールされる。
アップロード処理をサポートする mySWFUploadクラスを用意している。
mySWFUploadクラスを通すとセッションに保存されたファイルIDで、
アップロードファイルの情報を参照できる。メソッド 引数 説明 __construct $tmp_dir
$param$tmp_dir でアップロードファイルを一時的に移動するディレクトリを指定。 省略時は、システムのテンポラリディレクトリのまま。
$param はアップロードファイルのパラメータ名。
省略時は、Filedata になる、通常は指定なしでOK。createThumbnail $maxWidth
$maxHeight
$scale
$inflate
$quality
$adapterClass
$adapterOptionssfThumbnailPluginを使ってサムネイルを生成する。
引数は sfThumbnail コンストラクタと同じ。setResponse $data SWFUploadへのレスポンスを出力する。
$data にPHP変数を渡すとJSON形式で、
イベントハンドラ upload_success_handler で受け取れる。getFile $id staticメソッド。
$id にセッションに保存されたファイルIDを渡すと、
アップロードファイルの情報を返す。
-
イベントハンドラ upload_success_handler を設定してあれば、
executeSWFUpload からのレスポンスを受け取る。
this.getModuleURL() で現在のモジュールの正規のURLが取得できる。引数 説明 file SWFUploadが渡すファイルオブジェクト id executeSWFUpload からのレスポンス。
mySWFUpload->setResponse を使っていれば、
セッションに保存されたファイルIDを受け取る。data mySWFUpload->setResponse にPHP変数を渡していれば、
JSON形式で受け取る。
this.getSessionID() で現在のセッションIDが取得できる。
-
あとはイベントハンドラ側で表示処理をしたり、
モジュールのアクションに渡したりすれば良いのでは。
適当に作ったから、色々と足りない部分がありそう。
im.port (bugfix)
im.portのbugfix。
よく考えたら、Internet Explorerの確認をしていなかった。
動作確認してみたリスト
- Mac Safari 3.0.4
- Mac Firefox 2.0.0.11
- Mac Opera 9.24
- Windows Internet Explorer 7.0
- Windows Internet Explorer 6.0
- Windows Internet Explorer 5.5
- Windows Internet Explorer 5.01
- Windows Firefox 2.0.0.9
- Windows Firefox 1.5.0.8
- Windows Opera 9.20
でも、やっぱりいまいちだ。
