Hatena::ブログ(Diary)

そうだ車輪と名付けよう2nd このページをアンテナに追加 RSSフィード

2009-08-30

[][] htmltemplate.incについて

もともとはWikiの方に情報をアップしていたのですが、特段更新も無さそうなのでブログのほうに転記しておきます。基本的な使い方は、「PHPテンプレートエンジン HtmlTemplate for PHP:Note - ホコホコ hoko-hoko」あたりが詳しいかと思います。

元ネタ
no title

大まかな感想

メリット
  • 単一ファイルのみで完結しているので設置が楽
  • 単一ファイルのみなので、なにか修正をする場合でも楽
デメリット
  • たぶん開発終了
  • マイナー
  • 低機能(smartyなどとは比べてはいけない)

開発者

鮎川 寛さん。

see also. 鮎川 寛 の編集 - PukiWiki-official

最新版ダウンロード


ライセンス

ドキュメント一覧

以下のドキュメント類は、htmltemplate.incの開発者?のページに公開されていたもののようです。既にページ自体はなくなっているので、WebArchiveよりサルベージしています。

関連ページ


テンプレートモジュール

基本的な追加方法

see also. PHP::HtmlTemplateに else を追加 - peko3の日記

<?
htmltemplateに、追加したいユーザ定義タグクラスのインスタンスを登録する
 class StandardParser extends TemplateParser{
 	function StandardParser(){
 		$this->add(new '''追加するクラス名()''');
 	}
 }
elseタグの追加
<?
  class tag_else extends DataTag{
    var $matchregexp='/<!--\{else\}-->/i';
    var $fromstring="<!--{else}-->";
    var $tostring="<?php } else { ?>";
  }


switchタグの追加

see also. htmltemplate??勖イ腓堺?? :: ???????????壔??茵?ず - ????若?吟?弱??臂í?帥?違????帥????ŝ??UP?????障????????鐚?

<?

  /*   <!--{switch hoge:val}-->〜<!--{/switch}--> 
  *    hogeがvalに等しい場合に、タグの間の〜部分を表示する。 
  */ 
  class tag_switch extends DataTag{ 
    var $matchregexp='/<!--\{switch ([^\}:]+):([^\}:]+)\}-->/i'; 
    var $fromstring="<!--{switch %1\$s:%2\$s}-->"; 
    var $tostring="<?php 
    if(\$val%1\$s=='%3\$s'){ 
            ?>"; 
    var $closestring="<!--{/switch}-->"; 
  } 
 
 /*   {switch hoge:val:〜} 
 *   hogeがvalに等しい場合に、タグ内の〜部分を表示する。(単タグ) 
 */ 
 class tag_switch_single extends DataTag{ 
   var $matchregexp='/\{switch ([^\}:]+):([^\}:]+):([^\}:]+)\}/i'; 
   var $fromstring="{switch %1\$s:%2\$s:%3\$s}"; 
   var $tostring="<?php 
         if(\$val%1\$s=='%3\$s'){ @print '%4\$s'; } ?>"; 
 }

 <form> 
   <select name=foo> 
      <option value="1" <!--{switch foo:1}-->selected<!--{/switch}--> > 
      <option value="2" <!--{switch foo:2}-->selected<!--{/switch}--> > 
      <option value="3" <!--{switch foo:3}-->selected<!--{/switch}--> > 
    </select> 
  </form>
 
 
  <form> 
    <select name=foo> 
      <option value="1" {switch foo:1:selected} > 
      <option value="2" {switch foo:2:selected} > 
      <option value="3" {switch foo:3:selected} > 
    </select> 
  </form>
foreachタグの追加

see also. htmltemplate??勖イ腓堺?? :: ???????????壔??茵?ず - ????若?吟?弱??臂í?帥?違????帥????ŝ??UP?????障????????鐚?

<?
  class tag_foreach extends ArrayTag{ 
    var $matchregexp='/<!--\{foreach ([^\}]+)\}-->/i'; 
    var $fromstring="<!--{foreach %s}-->"; 
    var $tostring="<?php 
 
    foreach(\$val%1\$s as \$cnt[\"%2\$s\"] => \$value){ 
      ?>"; 
 
    var $closestring="<!--{/foreach}-->"; 
    var $regardasarray=TRUE; 
  } 
 
  //<!--{foreach hoge}-->で囲われている時のみ有効です 
  class tag_key extends DataTag{ 
    var $matchregexp='/\{key ([^\}]+)\}/i'; 
    var $fromstring="{key %s}"; 
    var $tostring="<?php @print nl2br(\$cnt[\"%2\$s\"]); ?>\n"; 
  }

FBFB 2009/10/08 17:41 初めまして、FBと申します。htmltemplateで検索していたところ、このページを発見しました。

私は、かつて「ユーザー定義タグをみんなでUPしましょう!」掲示板の投稿者でした。開発者だった鮎川さんがサイトを閉鎖した時に、こちらの掲示板も同時に閉鎖され、少々残念に思っておりました。鮎川さんのサイトともどもサルベージして頂いたお陰で、再び読むことができ、懐かしいと共に嬉しく思います。

今でも、PHP5用のhtmltemplateに独自のタグを追加しながら、使い続けています。これからも寄らせて頂きますので、よろしくお願いいたします。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証