MarkupHelper 更新

MarkupHelperを更新しました。他のヘルパーの中から使いやすくするために、popContext が直前のコンテキストのバッファの内容を返すように変更されました。

メソッド全体を pushNewContext と popContext で囲むことで、「生成したHTMLをバッファ変数に溜めておいて、最後にreturnする」という典型的なヘルパーの処理を代替できます。こんな感じです。

<?php
class YourHelper extends AppHepler
{
  var $helpers = array('markup');
  /**
   * 定義リスト
<dl>..</dl>
 
 を作るヘルパーメソッド
   */
  function defList($data)
  {
    $this->Markup->pushNewContext->dl->nl;
    foreach($data as $term => $desc) {
      $this->Markup
        ->dt->text($term)->end
        ->dd->html($desc)->end->nl;
    }
    return $this->Markup->endAllTgs->popContext;
  }
}
 
/* 使用例 */
echo $your->defList(aa('用語1', '<strong>説明1</strong>', '用語2', '説明2'));
 
/* 出力(改行もこの通りになります)
<dl>
<dt>用語1</dt>
<dd><strong>説明1</strong></dd>
<dt>用語2</dt>
<dd>説明2</dd>
</dl>
 
*/

以前のページも更新しておきました。

Leave a Reply