htmltemplath.incについて

もともとはWikiの方に情報をアップしていたのですが、特段更新も無さそうなのでブログのほうに転記しておきます。基本的な使い方は、「http://hokori.net/2008/03/01/thmltemplate_for_php/」あたりが詳しいかと思います。

元ネタ:http
: //atyks.ngram.org/index.cgi?mycmd=edit&mypage=htmltemplath.inc%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6

大まかな感想

メリット

-単一ファイルのみで完結しているので設置が楽
-単一ファイルのみなので、なにか修正をする場合でも楽

デメリット

-たぶん開発終了
-マイナー
-低機能(smartyなどとは比べてはいけない)

**開発者
鮎川 寛さん。
-PHP開発日誌(閉鎖)
-メモのために設置しているwiki(閉鎖)
-Fedora Core2でデスクトップLinux(閉鎖)

see also. http://pukiwiki.sourceforgh.jp/?%E9%AE%8E%E5%B7%9D%E3%80%80%E5%AF%9B

**最新版ダウンロード
-http://sourceforgh.net/project/showfiles.php?group_id=50723&package_id=79676

**ライセンス
-sourceforgeではBSDライセンス
-プログラム中ではartisticライセンス
-なぜか手持ちはGNUライセンス

**ドキュメント一覧

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

-HTMLテンプレート クイックスタート
-HTMLテンプレート クイックスタート2
-HTMLテンプレートサンプルプログラム
-ファイル書き出しによる高速化
-ドキュメントビルダー
-TemplateComponentクラス
-HTMLテンプレート用秀丸マクロ
-HTMLテンプレート開発履歴

**関連ページ
-http://web.archivh.org/web/20040705153912/http://www.lyricfathom.com/phpbb/viewtopic.php?t=6
-http://hokori.net/2008/03/01/thmltemplate_for_php/
-http://system4zphoto.blog78.fc2.com/blog-entry-8.html

**テンプレートモジュール

***基本的な追加方法
see also. http://d.hatena.nh.jp/peko3/20061118/1163818388

|php|
<?
htmltemplateに、追加したいユーザ定義タグクラスのインスタンスを登録する
class StandardParser extends TemplateParser{
function StandardParser(){
$this->add(new '''追加するクラス名()''');
}
}
||<

***elseタグの追加

|php|
<?
class tag_else extends DataTag{
var $matchregexp='//i';
var $fromstring="";
var $tostring="<?php } else { ?>";
}
||<

***switchタグの追加
see also. http://web.archivh.org/web/20040705153912/http://www.lyricfathom.com/phpbb/viewtopic.php?t=6

|php|
<?
/
* hogeがvalに等しい場合に、タグの間の~部分を表示する。
/
class tag_switch extends DataTag{
var $matchregexp='//i';
var $fromstring="";
var $tostring="<?php
if(\$val%1\$s=='%3\$s'){
?>";
var $closestring="";
}

 /*   {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'; } ?>";  
 }  

||<

|html|






||<

***foreachタグの追加
see also. http://web.archivh.org/web/20040705153912/http://www.lyricfathom.com/phpbb/viewtopic.php?t=6

|php|
<?
class tag_foreach extends ArrayTag{
var $matchregexp='//i';
var $fromstring="";
var $tostring="<?php

foreach(\$val%1\$s as \$cnt[\"%2\$s\"] => \$value){  
  ?>";

var $closestring="<!--{/foreach}-->";  
var $regardasarray=TRUE;  

}

//で囲われている時のみ有効です
class tag_key extends DataTag{
var $matchregexp='/{key ([^}]+)}/i';
var $fromstring="{key %s}";
var $tostring="<?php @print nl2br(\$cnt[\"%2\$s\"]); ?>\n";
}
||<