2009-04-01から1ヶ月間の記事一覧

文字列から全てのHTMLタグを除去する

php

CakePHPにはSanitizeライブラリというものがあって、簡単に文字列から指定タグを取り除いてくれる。とっても便利。 でも、その中に「全タグ除去」という関数は存在しなかったりする。 もしかしてこれは正規表現フラグ?mjd?とげっそりしていたのだけれど…

「Multiple flashes with different classes」でメッセージを綺麗にしてみる

Multiple flashes with different classes http://www.secondbrain.co.jp/blog/?p=53 前の方でも「使ってる」とは書いたけれど、これがなかなか便利。 具体的にはコントローラで flash("出力したいメッセージ", "success / error / status"); ビューの中で s…

empty()に0を渡すとfalseになる

php

例えばこんなコードを書いているとき layout = "error"; return; } 正規データとして$idに「0」が渡ってきたとしても、それだとempty()でfalseを返してしまう。 まあ、それはempty()の仕様なので正しい動きなんだけども。 var が空でないか、0でない値であれ…

Ktai Libraryを使いながらViewをPCと携帯で切り替える

CakePHP+Ktai Libraryを使用しているサイトで、アクセス元の端末を判別してCakePHPのViewを切り替える方法。 キャリア判別はしてないけど、この方法なら簡単に実装できるはず。 参考 : CakePHPで携帯サイトを作る - HTML出力振り分け(2)

キャッシュの罠

テーブルに項目を追加し、ControllerとViewも修正した。 なのに、どーーーーーーーしてもその項目が反映されない。 具体的には Model->find(null, $id); ... ?> とかしたとき、項目名を指定せずnullだと新しい項目が取得できない。 Model->find(array("old_c…

Model->save()の挙動について

CakePHPのModel->save()は、 idが設定されていればUpdate 設定されていなければInsert というのは判っていたんだけど、例えばモデル「User」のキーが「USER_ID」という名前だったとき User->UserId = $this->data["User"]["USER_ID"]; $data["User"]["PASSWD…

複数プロジェクトから同じ画像を参照する

CakePHPの $html->image() はとても便利なのだけれど、 複数プロジェクトが混在している プロジェクトAから画像ファイルをアップロードする プロジェクトBから、上の画像を参照する ということをしようとした場合、$html->image だと「プロジェクトのパス+…

proftpdの接続がやたらと遅い

/etc/proftp/proftpd.conf の末尾へ UseReverseDNS off IdentLookups offを追加。 /etc/init.d/proftpd restartしたら早くなった。参考 : proftpdの動作が遅いのを解決 - うまい棒blog

Ubuntu 8.10 + Ruby on Rails

Rubyはよく判らないので、とりあえず入れるまでの手順。 # sudo apt-get install ruby irb rdoc ... # wget http://rubyforge.org/frs/download.php/45905/rubygems-1.3.1.tgz # tar zxvf rubygems-1.3.1.tgz # cd rubygems-1.3.1/ # sudo ruby setup.rb ...…

Ubuntu8.10 + Apache2.2.11 + PHP5.2.9

ApacheとPHPの最新版を入れたいので、例によってソースからコンパイル。 UbuntuはDebianなので、パッケージ管理はapt。 (参照: 第04回 「apt-get, dpkg コマンドでパッケージ管理」) まあ、めんどくさいのでSynapticパッケージマネージャのお世話になった…

Ubuntu 8.10にSamba共有を設定する

# sudo apt-get install sambaか、Synapticパッケージ・マネージャでSambaをインストール。 次に、Samba接続用ユーザのパスワードを変更。 # smbpasswd -a uesrname New SMB password: (パスワードを入力) Retype new SMB password: (上と同じパスワードを入…

Ubuntu 8.10にrootパスワードを設定する

Ubuntuはインストール時にrootパスワードが設定されない。 それでいいのかというツッコミはともかく、とりあえず最初に設定。 # sudo su - # passwd Changing password for root. 現在のUNIXパスワード: (何も入力しないでEnter) 新しいUNIXパスワードを入力…

セッションが切れたらログインフォームへ飛ばす

controllers/app_controller.php Session->check("User")) { $this->redirect("/login/index"); exit(); } } 各コントローラ内 checkSession(); }

存在しないページにとんだときエラーを出す

指定されたアクション/コントローラ/ビューが存在しなかった場合にエラー表示する為のビューを設置。 views/missing_action.ctp views/missing_controller.ctp views/missing_view.ctp <p>指定されたページは存在しません。</p> コントローラ内でエラーが発生した…

CentOSにImageMagickをインストール

CakePHPでサムネイル画像を作るが使いたかったので、CentOSにImageMagickをインストールしてPHPで使えるようにしてみた。

TinyMCEの設定でハマる

TinyMCEを使ってみることにしたんだけど、表示アイコンの設定をしても、3行目が消えてくれない。 mode : "textareas", language : "ja", theme : "advanced", plugins : "save,searchreplace,paste,fullscreen", // Theme options theme_advanced_buttons1 :…