俺のAppHeler

<?php
class AppHelper extends Helper {
	
	//## span
	function span($className=null,$text='') {
		if(!empty($className)) {
			$class = ' class="'.h($className).'"';
		}
		else {
			$class = '';
		}
		return '<span'.$class.'>'.$text.'</span>';
	}
	//## アンカー作成
	function anchor($name='#',$text='#') {
		return '<a name="'.h($name).'">'.$text.'</a>';
	}
	//## dl
	function dl($lists=array()) {
		$dl = $this->_dl($lists);
		return '<div class="dl"><dl>'.$dl.'</dl></div>';
	}
	function _dl($lists=array()) {
		$dl = '';
		$alts = array('',' class="altrow"');
		$i = 0;
		foreach ($lists as $dt => $dd) {
			$dl .= '<dt>'.$dt.'</dt>';
			$dl .= '<dd'.$alts[$i].'>'.$dd.'</dd>';
			$i ^= 1;
		}
		return $dl;
	}
	
	//--テキストのエスケープと改行タグ挿入
	function _h($v='--') {
		return nl2br(h($v));
	}
	//--datetime型のフォーマット
	function _d($datetime=null,$format='Y/m/d H:i') {
		if(empty($datetime)) {
			return '--';
		}
		return date($format, strtotime($datetime));
	}

}
?>

balloon_talker修正しました。

http://homepage3.nifty.com/shadow-toon/_arc/Balloon_Talker_Sample/

フォーラム - CakePHP Users in Japanであがっててびびった。

というのも、自分でいろいろいじってていくつかアラが目に付いたのでそのうち修正版をアップロードしようと考えてたところだったので、急きょ仕上げ。

以下修正点。
css修正
・get_current_css()追加。
・$params['id’]追加(in_place_editor対応)

これでだいじょうぶなはず。

従属データがうまく削除できない件→解決

 モデルAにhasManyで従属してるモデルB、C、D、Eがある。
 Aを削除したとき、BCDEの関連データも削除するように設定したが、何故かCだけ削除できない現象がおきた。

 あーでもないこーでもないとあれこれいじったり検索したりで、この記事を読んで、

 http://www.happyquality.com/2008/12/30/570.htm

 そういえばCのモデルだけfind()を

<?php

  function find($type, $queryData = array()){
  $queryData["conditions"]["AND"] = array(
			'C.A_id' => $this->A_id,
			'C.B_id' => $this->B_id
			);
?>

 と、いう感じで拡張していることに気がつく。
 
 もしかして……と思い削除・修正すると、ちゃんとモデルAも従属データもすべて削除できた。

 モデルはなるべくプレーンな状態が通るように拡張した方がいいみたいです。んがー。

テキストを吹き出しで表示するCakePHPプラグインをつくってみた

http://homepage3.nifty.com/shadow-toon/_arc/Balloon_Talker_Sample/

pluginsフォルダに,balloon_talkerフォルダを入れて、

controllerに,
var $helpers = array('BalloonTalker.BalloonTalkerViewer');

ビューファイルに、
echo $balloonTalkerViewer->balloon_talk("何か言ってそうで、何も言ってないよね。","p_00_02.png");

でこんなのが表示されるはず。

ヘルパーのみのプラグインって意外とめんどいです。

【2009/11/09追記】
balloon_talker修正しました。