Top / PEAR / HTML_Template_Flexy / とりあえずつかってみよう


 #freeze
 #setlinebreak(on)
 * PEAR;;HTML_Template_Flexyをとりあえずつかってみよう [#c7c37c34]
 [[PEAR :: HTML_Template_Flexy>PEAR/HTML_Template_Flexy]]
 [[Smartyだったら?>PEAR/HTML_Template_Flexy/とりあえずつかってみよう/Smartyだったら?]]
 #htmlinsert(googleAdsense.html)
 ** とりあえずつかってみよう [#xa53947f]
 #ref(http://dozo.rgr.jp/img/img20_file.png,right,nolink,around,PHP::PEAR)
 
 能書きはとりあえずとして、
 PGならソースコードを見るのが一番わかりやすいと思うので、
 簡単なソースをば。
 
 まずはインストールから
  PEAR::HTML_Template_Flexyのインストール
   # pear install HTML_Template_Flexy
 
 これでインストールは完了です。
 簡単でしょ。
 
 
 
 
 Flexyのページのサンプルですが、
 そのまま使うとハマルのでちょっと変えてます。
 ver.1.2.1で実行しました。
 flexy.phpとflexy.htmlを同じディレクトリに置いて、
 flexy.phpにアクセスしてください。
 とりあえず動くと思います。
 
 まずは結果から。
 #ref(flexyResult.png,right,nolink,around,Felxy Result)
     <html>
     <head>
       <title>Hello World</title>
     </head>
     <body>
     <H1>Hello World</H1>
     <form name="form">
     <table>
       <tr>
       <td>Input Box: 
       <input name="input" value="Hello"
        size="10"
        style="background-color:#FFCCFF;" />
       </td>
       </tr>
       <tr>
         <td>SelectBox: 
         <select name="select">
           <option value="0">list 1</option>
           <option value="1">list 2</option>
           <option value="2" selected>list 3</option>
           <option value="3">list 4</option>
         </select>
         </td>
       </tr>
       <tr>
         <td>
         <select name="true">
           <option value="1">False</option>
           <option value="2" selected>True</option>
         </select>
         </td>
       </tr>
       <tr>
         <td><a href="mypage.html?id=0">2005-05-25</a></td>
       </tr><tr>
         <td><a href="mypage.html?id=1">2005-06-01</a></td>
       </tr><tr>
         <td><a href="mypage.html?id=2">2005-06-08</a></td>
       </tr><tr>
         <td><a href="mypage.html?id=3">2005-06-15</a></td>
       </tr></table>
     </form>
     </body>
     </html>
 
 テンプレートファイルはこんな感じ。
 結果とあまり変わらないでしょ。
 #ref(flexyTemplate.png,right,nolink,around,Felxy Sample)
     flexy.html
  
     <html>
     <head>
       <title>{title}</title>
     </head>
     <body>
     <H1>{title}</H1>
     <form name="form">
     <table>
       <tr>
         <td>Input Box: <input name="input" /></td>
       </tr>
       <tr>
         <td>SelectBox: <select name="select"></select></td>
       </tr>
       <tr>
         <td><select name="true">
               <option value="1">False</option>
               <option value="2">True</option>
             </select>
         </td>
       </tr>
       <tr flexy:foreach="Objects,number,object">
         <td><a href="mypage.html?id=%7Bnumber%7D">{object.dispDate()}</a></td>
       </tr>
     </table>
     </form>
     </body>
     </html>
 
 
 これがソースコード
 テンプレート自体にあれこれ書かずに
 プログラム上でいろいろいじれるのがわかります。
     flexy.php
  
     <?php   
     require_once 'PEAR.php';
     require_once 'HTML/Template/Flexy.php';
     require_once 'HTML/Template/Flexy/Element.php';
  
     class controller_test 
     {
         var $template = "flexy.html";
  
         function controller_test() 
         {
             $this->initial();
             $this->start();
             $this->output();
         }
  
         function initial()
         {
             $options["compileDir"] = "/tmp";
             $options["templateDir"] = "./";
             $this->htmlObj = & new HTML_Template_Flexy($options);
             $this->htmlObj->compile($this->template);
             $this->elements = $this->htmlObj->getElements();
         }
  
         function start() 
         {
             for ($i = 1;$i< 5;$i++){
                 $extObj = new extendsClass();
                 $extObj->number = $i;
                 $this->Objects[] = $extObj;
                 $numbers[] = "list $i";
             }
             $this->title = "Hello World";   // プロパティ出力
         // inputタグのvalueに'Hello'を代入
             $this->elements['input']->setValue('Hello');    
         // inputタグにsize,style属性を付加
             $this->elements['input']->setAttributes( 
                 array('size'=>'10', 'style'=>'background-color:#FFCCFF;') 
             ); 
         // ドロップダウンリストの作成
             $this->elements['select']->setOptions($numbers);  
         // デフォルト選択値の設定
             $this->elements['select']->setValue('2');  
         // テンプレート上のTrueをデフォルトで選択
             $this->elements['true']->setValue('2');  
         }
  
         function output() {
             $this->htmlObj->outputObject($this,$this->elements);
         }
     }
  
     class extendsClass
     {
         function dispDate()
         {
         // number週間後の日付を出力
             return date("Y-m-d", 
                 strtotime( (int)$this->number. " weeks " ) ); 
         }
     }
  
     new controller_test;
     ?>
 -tutumi ryouhei  --  &new{2005-12-21 14:44:35 (水)};
 
 #comment


トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Third Project
証券会社ランキング比較