rhacoの仕様変更の多さは異常
Templateにタグを新たに追加する(再) - ふわふわな毎日
http://d.hatena.ne.jp/nazone/20070411/p2
ですが現在のrhacoでは動作しません。
Pluginではなくfilterという形式の動作に変更になったので、
<?php Rhaco::import("tag.HtmlParser"); Rhaco::import("tag.model.SimpleTag"); class MobileHtmlFilter { function after($src, $parser) { $tag = new SimpleTag(); /* 一部省略 */ while($tag->set($src,$parser->_getTagName("url"))){ $href = $tag->getParameter("href", ""); $session_name = htmlspecialchars( session_name() ); $session_id = htmlspecialchars( session_id() ); if (preg_match("/\?/", $href)) { if (preg_match("/&$/", $href)) { $href = substr($href, 0, length($href) - 1); } $href .= "&".$session_name."=".$session_id; } else { $href .= "?".$session_name."=".$session_id; } $src = str_replace($tag->getPlain(),'<a href="'.$href.'">'.$tag->getValue().'</a>',$src); } return $src; } }
こんな感じに修正して、登録は
$htmlParser->setFilter("tag.plugin.MobileHtml");
な感じになります。
大きく変わったのは、今までは登録の時点でフィルタの動作位置を指定していましたが、最近のではフィルタの定義のほうで動作位置(上の場合はafterなのでパース後)を指定するようになりました。
あと仕様変更ネタで言えば、結構前からrhaco内のdataという名前のフォルダは全てmodelという名前に変更されていますので注意してください。