Linux サーバ構築 ( Fedora Core5 ) - PHP + Smarty
Smarty と Dreamweaver 8 の連携
Dreamweaver 8 のデザイン・ビューで、Smarty の include されたファイルを表示可能にするなど、Smarty と Dreamweaver 8 の連携に関する Tips です。
- Dreamweaver 8 のデザイン・ビューで、Smarty の include されたファイルを表示可能にする。
Smarty Dreamweaver - SmartyWiki を参考に、下記ファイルを作成する。 ( ファイル名は "任意~.htm ")
尚、サブディレクトリの テンプレート・ファイル のインクルードに対応するため、太字部分を修正している。
これにより、{ include file = "subdir/foo.tpl" } などの場合でも、表示可能となる。C:\Program Files\Macromedia\Dreamweaver 8\Configuration\Translators/Smartyinclude-systemo.htm
<html> <head> <title>Smarty Include Tag Translator</title> <meta http-equiv="Content-Type" content="text/html; charset="> <script language="JavaScript"> /** * This translator will only work on this format: * {include file="foo.tpl"} * filename must surrounded by double or single quotes * if 'assign' or '[var]' attribute exists, it will not tranlated * the include tag must be in one line * extra spaces are allowed, e.g. { include file = " foo.tpl " } * all templates file suppose to stay in the same top 'templates' folder * you can include subfolder in the include tag * all other formats will be displayed as a simple 'inc' icon */ /** * define smarty delimiters */ var LDELIM = "{"; var RDELIM = "}"; var smartyTemplateDir = "templates"; template_dir の root の名前を定義 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 + ")", "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); */ var posSmarty = docNameStr.indexOf(smartyTemplateDir, 0); var samrtyTemplateUrl = docNameStr.substring(0, posSmarty + smartyTemplateDir.length) + "/"; smartyFile = new File(templateFullName, samrtyTemplateUrl); template_dir のフルパスに変更 if (smartyFile.exists()) { smartyContent = smartyFile.getContents(); if (smartyContent.length <= 0) { // this is an empty file smartyContent = " "; } 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>
- Dreamweaver 8 のデザイン・ビューで、Smarty のタグをアイコンで分かりやすく表示する。
- Smarty Dreamweaver より、dreamweaver_smartytags.zip をダウンロードする。
- 適当なフォルダで、dreamweaver_smartytags.zip を解凍する。
- smartytags フォルダの全ファイル ( smarty.xml および gif ファイル 11 個 )を下記のフォルダに、すべてコピーする。
C:\Program Files\Macromedia\Dreamweaver 8\Configuration\ThirdPartyTags
( 最終更新日時 : 2008/08/31 21:24:47 )