HatenaSyntaxをsmartyのpluginで使う

wiki記法つかいたくなったのだけど、個人的には毎日使ってるはてな記法のほうがいいなあ
ということでぐぐったらあった。神!
http://openpear.org/package/HatenaSyntax
早速使ってみた。
とりあえず適当なマスタ管理の確認画面に使ってみた。

$smarty->assign('hoge', HatenaSyntax::render($hoge));

とやったところ、テンプレート側で

<form>
  <input type="hidden" name="hoge" value="{$hoge}">
  <table>
    <tr>
      <td>hoge</td>
      <td>{$hoge}</td>
    </tr>
  </table>
</form>

としていたせいでhiddenの値がひどいことに。しょうがないので元の値をassignしてやり、テンプレート側で処理することに。やはり値はぎりぎりまで操作しないのがよい。
smartyのpluginはいくつかあるけどこの場合はカスタム関数よりも修正子のほうがスマートっぽい。
smarty/libs/plugins/modifier.hatena_syntax.php というファイルを作って以下のように。

<?php

require_once('HatenaSyntax.php');

function smarty_modifier_hatena_syntax($string)
{
    return HatenaSyntax::render($string);
}

テンプレートのほうは以下。

<form>
  <input type="hidden" name="hoge" value="{$hoge}">
  <table>
    <tr>
      <td>hoge</td>
      <td>{$hoge|HatenaSyntax}</td>
    </tr>
  </table>
</form>

簡単簡単!

id:anatoo多謝!