amazonバナー

2012年7月27日金曜日

[CodeIgniter]hookでviewの向きを動的に変更する場合の注意点

CodeIgniter(2.0.3)にて View の向きを動的に変更する場合、
hook を活用します。

http://hampom.wordpress.com/2010/03/05/codeigniter-%E3%81%A7%E8%B6%85%E7%B0%A1%E6%98%93%E7%9A%84%E3%81%AA%E3%83%A2%E3%83%90%E3%82%A4%E3%83%AB%E3%83%9A%E3%83%BC%E3%82%B8%E5%87%BA%E5%8A%9B%E3%82%92%E3%81%99%E3%82%8B/

こちらのサイトにて hook を活用した方法が記載されています(感謝!)
ただ、Version が古いものなのか、2.0.3 ではそのままでは動きません。

具体的には、_ci_view_path の部分が 2.0.3 では
_ci_view_paths になっていて、しかも配列になっています。
加えて、protected のメンバ変数なので直接いじることができません。

というわけなので、core の Loader を拡張してメンバ変数をいじれる
プロパティを追加します。

Application/core/MY_Loader.php を追加します。

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class MY_Loader extends CI_Loader {
    function __construct(){
        parent::__construct();
    }
    /**      * viewのパス上書き      * @param string $path 追加するパス      */     function view_path_override($path){         $this->_ci_view_paths = array(APPPATH.'views/'.$path    => TRUE);     } } ?>


こんな感じで作成したら、例の hook のプログラムの部分で
function view_set() {
    if ($this->ci->agent->is_mobile()) {
        $this->ci->load->view_path_override('mobile/');
    }
}

こうすると、携帯のアクセス時には views/mobile/配下の View を
参照するようになります。

2012年7月8日日曜日

BattleField3新たな戦場その1

Skyrimはデスマ中にアルドゥイン倒して一応クリアしたので
それで一区切り。
Skyrimが来るまではちょいちょいやってたBF3に舞い戻ってた。

最初は突撃兵でやってたけど、撃ち合いであんま勝てんし、
そもそも乗り物来た時にどうしようもないってんで
途中から工兵に切り替えた。

よくよく考えたらBFシリーズは工兵率が高かったわΣ(´∀`;)

さて、工兵。
なんといってもジャベリン。
♪ピ ピ ピ ピ ピピピピー コン! バシュー ドゴーン♪
たまらんすなぁ。
最近はどんだけタイミングずらしてもスモークで避けられるけどさ…orz

トップアタックするには偵察兵(だっけ?)の協力が必要だけど
当たれば大抵無力化出来るので使える場面では積極的に使ってる。
(アラート出て牽制にもなるしね)

最近気づいたんだけど、ロックオン出来るのが乗り物(空のやつにはレーザー誘導必須)
だけかと思ったら、偵察兵のビーコン(?)みたいなのにも
ロック出来るんだねぇ。
よく屋上で狙撃に勤しんでらっしゃる方の傍には置いてあるので
ジャベリンを当てると巻き込まれるパターンが多い。

マップによってはヘリが邪魔なところがあるのでそういう時は
スティンガーに持ち替えて出る。
メトロみたいなとこはRPGに持ち替える。

つまりあれです。
精密射撃苦手><

季節を越えてデスマーチより帰還

約半年ぶりの気がする・・・。

冬服だったのに、春服になり今や夏服だ。
今年の一月から約半年間CodeIgniterとjQueryを駆使して開発をしてきたが
ようやく落ち着いた。
まぁ2次開発がこれからも続くんですけどね(´・ω・`)

これまではどちらかと言うと中身をいじることが多かったせいか
フロントエンドの部分(javascriptとかcssとか)はだいぶブランクがあって
最初はンガー!てなってたけど今回そこら辺もじっくり触ることができて
ブランクはだいぶ埋められたかなーと思う。

露骨に開発初期の頃作ったソースと最近のソースの熟成度が違う・・・w

さて、今回特に苦労したのがブラウザ対応で、ビジュアルを意識した
サイト構成にするとどうしてもネックになってくるのがInternetExplorer(;´∀`)
 Windows7が発売されてだいぶ経つし自動的にIE9使用者が多くなったとはいえ
それでも会社ではWindowsXPがまだ主流、つまりIE8が多い。

IE8じゃアレもコレも対応できないんだよぉ!てのが多すぎる。
ほんとIEはもう要ら・・・くぁwせdrftgyふじこlp;@:

ちなみに今回どうしてもcssで角丸表現を使いたかったので
IE8用にPIEを使いました。
導入方法などは以下のサイトが詳しいのでそちらを参照してください。
http://css.microrza.com/csstips/iecss_css3pie/
http://coliss.com/articles/build-websites/operation/css/css3pie-decorations-for-ie.html
導入で注意するところは環境によってはこのままでは動かないところですかね。
自分の場合は、PIE.htcをパスで指定しても動かなかったので
同梱されているphpファイルを指定したら動きました。

あとは、position:relative;を忘れないことと、
角丸の場合、border-radius: 5px;で四隅が丸くなりますが
タブボタンを表現したい時には、
border-radius: 5px 5px 0px 0px;
みたいに4箇所を個別に指定してあげる感じでしょうか。

個別に指定できることがわからなくて結構ハマってました。。。(・∀・)