参考にしたのはhttp://itpro.nikkeibp.co.jp/article/COLUMN/20080417/299348/

いろいろ試行錯誤してなんとかできたのでまとめとして書いておきます。

まず、「PHPで使えるテンプレートエンジン」としてSmartyを使います。この「PHPから使えるテンプレートエンジン」とは何かと言うと「PHPのプログラム部分とHTMLによるデザイン部を分離してメンテナンスを向上させるためのもの」です。PHPはいろいろなことができるのですがそのできる範囲が広いことから複雑になりがちです。HTMLのデザイン部をCSSとして分離したのに似ています。でネットで調べるとこのテンプレートエンジンもたくさんあります。その中で最も有名なものがSmartyらしいです。場所はhttp://www.smarty.net/

現時点での最新は2.6.25 (.tar.gz) (.zip) May 23rd, 2009 です。私はzip版を落として解凍。libsというディレクトリーが本体です。phpファイルを置くディレクトリーをルートとしてここにlibsをコピーしておきます。これで準備はOKです。実際にブログパーツを作成していきます。

1、ルートにtemplates_cというディレクトリーを作る

ルートにtemplates_cというディレクトリーを作り(属性770:書き込み可能な属性になっていればなんでもOKです)upする。

2、プラグインblock.document_write.php作成

プラグインとは便利に使うためのものでWordPressのプラグインみたいなものかと思います。

ここで作るのはdocument.write();を自動的に生成するプラグインです。http://itpro.nikkeibp.co.jp/article/COLUMN/20080417/299348/に書いてるのをそのままコピーし作成します。作ったものをlibsディレクトーリーの中のpluginsにuploadします。

3、script.js.php(phpファイル本体)

実際に実行されるphpプログラムです。
<?php
    include_once(‘./libs/Smarty.class.php’);
    $smarty = new Smarty();
    $smarty->display(‘/hoge/helloworld/script.js.tpl’);
?>

まず、最初の行、実行ファイルであるphpファイルを起点としてパスを含めて指定。また最後の行のscript.js.tplも自分の環境にあわせフルパスで入れて下さい。

script.js.phpをルートにupします。

4、script.js.tpl

Smarty用テンプレートです。script.js.phpから読み込まれ、JavaScriptファイルが作られます。

実際のコーディングは以下。
{document_write}
<div>
    <p>Hello World!</p>

</div>

{/document_write}

script.js.tplをルートにupします。

5、1~4で準備ができました。

document.write(‘
‘); document.write(‘
Hello World!

‘); document.write(‘
‘);

とblowserでは表示されます。

<script type=”text/javascript” src=”http://www.example.com/script.js.php”></script>がタグになります。これをblogなどに埋め込むと

Hello World!

と表示されます。

*これを実行した時、templates_cの中にコンパイルされたログ?と思われるものができます。