« Cside C'S SERVER へ Movable Type 3.34-ja をインストール | メイン | HTML_QuickForm の出力をカスタマイズ »

Dreamweaver上でSmartyのincludeを適用させる

この記事は鮮度が低いです(><類似した記事を新しく書きましたのでこちらへぜひ →Dreamwerver で Smarty

Dreamweaver上でSmartyのテンプレートファイルをオーサリングする際、{include}した部分をデザインビューで確認しながら作業したかったので、その方法を探しました。以下メモ。

■やり方
Dreamweaverをインストールしたフォルダの Configuration/Translators/ 以下に、適当な名前をつけた.htmファイルを新規作成し、以下のコードを貼り付けてやるだけ。私の場合は C:\Program Files\Macromedia\Dreamweaver 8\Configuration\Translators 以下に、PHP_Smarty_include.htm というファイルを作成して下のコードを貼り付けました。

<html>
<head>
<title>Smarty Include Tag Translator</title>
<meta http-equiv="Content-Type" content="text/html; charset=">
<script language="JavaScript">

var LDELIM = "{";
var RDELIM = "}";

function getTranslatorInfo()
{
var transArray = new Array(6);
transArray[0] = "SMARTY_INCLUDE";
transArray[1] = "Smarty Include Translator";
transArray[2] = "0";
transArray[3] = "1";
transArray[4] = LDELIM + "[ \t]*include";
transArray[5] = "byExpression";
return transArray;
}

function translateMarkup( docNameStr, siteRootStr, inStr )
{
var pos = 0;
var patternFound = false;
var outStr = '';
var depPath = '';
var remainInStr = inStr;
smartyRegExp = new RegExp("(" + LDELIM + "[ \t]*include[ \t]+file[ \t]*=[ \t]*[\"|'][ \t]*([^\"^']*)[ \t]*[\"|'][ \t]*[^"+RDELIM+"]*" + RDELIM + ")", "im");
while ((pos = remainInStr.search(smartyRegExp)) >= 0)
{
var matchStr = RegExp.$1;
var templateFileName = RegExp.$2;
var templateFullName = templateFileName;
var smartyFile;
outStr += remainInStr.substr(0, pos);
smartyFile = new File(templateFullName, docNameStr);
if (smartyFile.exists())
{
smartyContent = smartyFile.getContents();
if (smartyContent.length <= 0)
{
// this is an empty file
smartyContent = "&nbsp;";
}
depPath = smartyFile.getAbsolutePath();
}
else
{
// file doesn't exist
smartyContent = "File Error!";
}

// Do translation
outStr += '<MM:BeginLock translatorClass="' + getTranslatorInfo()[0] + '" type="smartyInclude" orig="' + escape(matchStr) + '"';
if (depPath.length > 0)
outStr += ' depFiles="' + depPath + '"';
outStr += '>' + smartyContent + '<MM:EndLock>';

// Re-search text following match
remainInStr = remainInStr.substring(pos + matchStr.length);
// Remember that at least one translation was performed
patternFound = true;
}
outStr += remainInStr;
return patternFound ? outStr : "";
}
</script>
</head>
<body>
</body>
</html>

・参考サイト
Use Smarty in Dreamweaver
DreamweaverでSmartyを扱う

AD:

今日のひと言

呑みいきたい!

磨者のはてなブックマーク はてなブックマーク

PHOTO COLLECTION

【WordPress】Ktai Entryをさくらで使う【メール投稿プラグイン】 : Go-PEARを使ったPEARのインストール : PEAR2.gif EmEditor で ダイレクトタグジャンプ : emeditor.gif WindowsXP へ XAMPP をインストール : xammp.jpg 携帯サイトで文字化け : 070707.gif 動的ページを静的URLで表示させる(PATH_INFO使用) : 400-300.gif PHP4でSmarty、tplファイルしか表示されないのは参照渡しが原因でした : php4%2Bsmarty.gif Dreamwerver で Smarty : Macromedia-Dreamweaver.gif MySQLの自動バックアップ phpMyBackupPro : logo.png さくらのレンタルサーバ へ PHP5.2.2 をインストールした : php.gif ダイナミックディスク⇔ベーシックディスクにはまる・・。 : 294574802_636f6f5e8c.jpg
RSS 2.0(XML)

Add to Google
My Yahoo!に追加
ADD TO Hatena::RSS
Subscribe with livedoor Reader

(→RSS/FEEDとは?

CLUB BASE st.215 最新NEWS