amritaのPHPへの焼き直し

基本的な機能は動作するようになった感じです。ちょっと怪しいですが・・・
昨日の問題はPHPではハッシュと配列の区別がないのでそこを省いていたのが原因だった。
とりあえず基本的な機能は動いてる感じです。

  • モデルデータでID属性をキーとするハッシュ(数値以外をキーとする配列)を渡すとタグの要素に値を埋め込める
  • モデルデータで指定されなかったID属性をもつタグは削除される
  • モデルデータで値として配列(数値をキーとする)を指定すると該当のタグがリストになる

このようなテンプレートがあるとすると

<html>
  <body>
    <b id=delete>aiueo</b>
    <h1 id="title">title will be inserted here</h1>
    <p id=body>body text will be inserted here</p>
    <ul>        
      <li id=list1>
    </ul>   
    <table border="1">                      
      <tr><th>name</th><th>author</th></tr> 
      <tr id="table1">                        
        <td id="name">
        <td id="author">      
      </tr>                                 
    </table>
  </body>
</html>

こんなモデルデータを渡すと

$modeldata = array(
  "title" => "hello world",
  "body" => "Amrita is a html template library for Ruby",
  "list1" => array(1, 2, 3),
  "table1" => array(                                          
      array( "name" => "Ruby", "author" => "matz" ),              
      array( "name" => "perl", "author" => "Larry Wall" ),        
      array( "name" => "python", "author" => "Guido van Rossum")
      )
);

こんな感じになります

<html>
  <body>

    <h1>hello world</h1>
    <p>Amrita is a html template library for Ruby</p>
    <ul>        
      <li>1</li><li>2</li><li>3</li></ul>   
    <table border="1">                      
      <tr><th>name</th><th>author</th></tr> 
      <tr>                        
        <td>Ruby</td><td>matz</td></tr><tr>                        
        <td>perl</td><td>Larry Wall</td></tr><tr>                        
        <td>python</td><td>Guido van Rossum</td></tr>
    </table>
  </body>
</html>

なぜか改行の位置がおかしいんだが・・・。
まだまだバギーですが、とりあえず動くのでかなり感動してたりします・・・はい。