プログラマ気分

メモや自分が思ったことを書く

【FuelPHP】parser.php で Smarty のデリミタが変更出来ない件について

2012.01.24 Tuesday

これには明確な理由があります。例を挙げて説明します。

設定ですが、packages/parser/config 内の parser.php は何もいじりません。この parser.php を app/config 内にコピーし、ここに希望のデリミタを設定します。

本来はこれでデリミタの設定は完了のはずですが、残念ながら反映されません。実際にどの様に設定されているか確認してみます。

app/config/parser.php の設定は追加と言う形で、後ろにくっついてしまっています。

どの様に設定が扱われているか、packages/parser/classes/view/smarty.php を覗いてみます。
すると、デリミタの設定部分が下の様になっています。

これを見る限り、設定したデリミタの 0 と 1 の要素を読み込んでいる事が分かります。つまり、app/config/parser.php で設定した 2 と 3 は無視される訳です。

もし、どうしても Smarty のデリミタを変更したい場合は、大元の設定ファイルを変更する、または parser オブジェクトを直接変更する事になるかと思います。

【参考 URL】
» FuelPHP › Forums | General | Parser

PHP01:48comments(0)trackbacks(0)by ニノミヤ カズノリ

【FuelPHP】Fieldset_Field#add_rule を掘り下げる

2012.01.23 Monday

Validation でのフィルタは、小さいですがドキュメントにも記載されています。
» Validation - Classes - FuelPHP Documentation

どの様に実行されているかは、Validation#_run_rule 内を見ると分かります。

call_user_func_array を用いてルールを実行している為、trim と言った標準関数も呼び出せるという訳です。

ちなみに入力値の先頭から五文字目を抜き出したいと言った場合、この様に記述します。

後は validated() で取得出来ます。

次いで、callback で指定したい場合です。
(add_field での指定は分かっていないので、add_rule のみ説明します。)

callback の詳しい説明は下記を参照してください。
» PHP: 本ドキュメントにおける疑似的な型および変数 - Manual

例えば、下記の様なインスタンスメソッドと静的メソッドがあったとします。
(やっている事は内部で mb_substr を使っているだけです。)

これを add_rule するなら下記の様になります。

callback での指定方法はドキュメントには載っていない(と思う)ですが、add_rule のソースを見ると、引数が $callback となっているので、想定した作りなんでしょうね。

PHP00:27comments(0)trackbacks(0)by ニノミヤ カズノリ

【Android】com.android.internal.R のリソースにアクセスする

2012.01.22 Sunday

Android のリソースを活用する際、通常 public の物以外はアクセス出来ません。しかし、時として private なリソースを扱いたい事もあるかも知れません。

よくある方法は、SDK から直接リソースを持ってくる方法です。
下記にリソースがありますので、プロジェクトにコピーして使います。
[SDK_DIR]/platforms/android-n/data/res

もう一つの方法は、APK 内からプログラムを用いて取得する方法です。
この場合も、private 関係なくリソースにアクセス出来ます。

【参考URL】
» mpigulski: Accessing com.android.internal.R resources from APK

この方法の利点としては、端末毎に UI が違っていても、それに合わせてリソースを取得できる点かと思います。(Drawable など)

実際にテストとして、QuickSearchBox のリソースを動的に読み込み、表示してみます。

▼結果
APK のリソース読み込みテスト

表示がおかしく見えますが、これはレイアウトのリソースのみ読み込んでいる為です。

Android00:07comments(0)trackbacks(0)by ニノミヤ カズノリ

【FuelPHP】フォームの内容を配列で受け取った場合、バリデートはどうやるの?

2012.01.21 Saturday

まず始めに、FuelPHP の Validation について知らない方は、この記事を読む前に下の記事を一読することをオススメします。
» Tatsuya Blog » [FuelPHP]Validationの使い方

Validation はとても簡単ですが、ドキュメントにも書かれてなく、常々疑問に思っていたことがありました。

それは、
「フォームの内容を配列で受け取った場合、バリデートはどうやるの?」です。

「フォームの内容を配列で受け取る」と言うのは、下の構造で送信された場合を指します。(※三つの入力ボックスを置いています。)

これらの値を FuelPHP の Validation を通して取得したい考えた時、真っ先に CodeIgniter での設定方法を思い浮かべました。

しかし、入力ボックスに入力した内容はどれ一つ取得できません。

$validation->validated() の中身を覗いてみます。

結果

理由はよく分かりませんが、設定の仕方が違うみたいです。

何か方法が無いか調べていたところ、一つのサイトを発見しました。
» FuelPHP Input arrays validation | Manuel João Silva

内容を見て分かった事は下記の二点

つまり、最初の入力ボックスの値をバリデートしたいのであれば、下記のとおり

全ての入力ボックスの値をバリデートしたいのであれば、下記のとおり

態々、一つ一つ追加するのは面倒ですが、うまくバリデートは出来ました。

PHP21:37comments(0)trackbacks(0)by ニノミヤ カズノリ

【PHP】TwitterOAuth でアイコンや背景画像を変更してみる

2011.09.11 Sunday

Twitter との連携で何かとお世話になっている twitteroauth ですが、account/update_profile_image や、account/update_profile_background_image には対応しておらず、自分で実装する必要があります。

【実装例】
http://d.hatena.ne.jp/bardothodol/20100526

ただ、この修正だとパスの指定しか出来ない為、動的変更においては些か不便です。また、cURL の仕様によって @ マークを付けなくてはならないのも邪魔に感じます。そこで、自分なりに更に手を加えてみました。

バイナリでも指定が可能なので、かなり楽かなと思います。

全ソースコード載せたので、大分長いですね…。

参考サイト:
poochin's tech blog: OAuth/Twitter API で画像をアップロードする方法

PHP18:15comments(0)trackbacks(0)by ニノミヤ カズノリ

calendar
1234567
891011121314
15161718192021
22232425262728
293031    
<< January 2012 >>
sponsored links
selected entries
categories
archives
recent comment
recent trackback
links
profile
Twitter Updates
    follow me on Twitter
    search this site.

    others
    mobile
    qrcode