CakePHPのヘルパーからPEAR::Text_Wikiを使ってお手軽変換

前提としてwiki記法で書かれたテキストをDB等に保存してるとする。
んでviewで出力するときにこんな感じでwiki記法をhtmlに変換できたらお手軽で便利そう。

<h1>Wikiデータ</h1>
<?php echo $wiki->transform( $wikiString ) ?>

こんなヘルパーを実装する方法を説明します。

1.PEAR::Text_WikiをCakephpにインストール

PEARライブラリをCakephpにインストールする方法については、方法も何種類かあるし、いろんなところに情報があると思うので省きます。
vendorsから呼び出してでText_Wikiを利用できる状態にしてください。

2.wikiヘルパーの作成

app/views/helpersにwiki.phpを作成

<?php                                                                                
    class WikiHelper extends Helper {
        function transform($text){

            //PEAR呼び出し部分、ここはCakePHPにどのようにPEARを導入してるかによって異なるので適宜書き換えてください
            vendor('pear_ini');
            include_once('Text/Wiki.php');

            $wiki =& new Text_Wiki();
            
            //日本語文字化け対策                                            
            $wiki->setFormatConf('Xhtml', 'translate', HTML_SPECIALCHARS);

            //変換部分
            $xhtml = $wiki->transform($text,'xhtml'); 
            return $xhtml;
        }
    }   
?> 

2.使用例

view部分で$wikiStringにwiki記法で書かれたテキストが入っているとすると

<h1>Wikiデータ</h1>
<?php echo $wiki->transform( $wikiString ) ?>

xhtmlに整形されたデータが出力されます。