2010-11-23 81 views
1

我試圖讓Smarty的設置和工作,這樣我可以安裝在這裏的開源項目Smarty的修飾符PHP

http://sourceforge.net/projects/assign-calc/

按照安裝說明後,我被卡住,出現以下錯誤消息

<b>Fatal error</b>: Uncaught exception 'SmartyCompilerException' with message 'Syntax Error in template &quot;/var/www/dev/calendar/skins/rpc/tmpl/page/rpc_header.tpl&quot; on line 5 &quot;   {$application.long_name|escape}&quot; unknown modifier &quot;escape&quot;' in /usr/lib/php5/Smarty/Smarty/sysplugins/smarty_internal_templatecompilerbase.php:423 
Stack trace: 
#0 /usr/lib/php5/Smarty/Smarty/sysplugins/smarty_internal_compile_private_modifier.php(62): Smarty_Internal_TemplateCompilerBase-&gt;trigger_template_error('unknown modifie...', 5) 
#1 /usr/lib/php5/Smarty/Smarty/sysplugins/smarty_internal_templatecompilerbase.php(279): Smarty_Internal_Compile_Private_Modifier-&gt;compile(Array, Object(Smarty_Internal_SmartyTemplateCompiler), Array, NULL, NULL) 
#2 /usr/lib/php5/Smarty/Smarty/sysplugins/smarty_internal_templatecompilerbase.php(123): Smarty_Internal_TemplateCompilerBase-&gt;callTagCompiler('private_modifie...', Array, Array) 
#3 /usr/lib/php5/Smarty/Smarty/sysplugins/smarty_internal_compile_private_print_expression.php(68): Smarty_Internal_TemplateCompilerBase in <b>/usr/lib/php5/Smarty/Smarty/sysplugins/smarty_internal_templatecompilerbase.php</b> on line <b>423</b><br /> 

經過一番谷歌搜索之後,我認爲這個問題是因爲Smarty沒有閱讀插件目錄中的轉義修飾符。

我該如何解決這個問題?我甚至已經嘗試過777在smarty上的權限,但這並沒有改變任何東西...

回答

1

你加載smarty配置是否正確?特別是,您是否正確設置了插件路徑,通過命令

$smarty->addPluginsDir('path/to/plugins'); 

+0

我沒有,但我正在使用的是乾淨安裝的Smarty,並乾淨安裝assign-calc。基於smarty沒有在配置文件中設置(對於assign-calc),我認爲它應該公平地假設這個文件夾應該被自動加載(至少它應該基於我見過的Smarty文檔......你會在哪裏推薦我把這條線放在 – 2010-11-23 15:56:12

0

絕對系統路徑是最快和最安全的方法。你可以使用相對路徑,但要確定php include_path包含找到它所需的東西。您也可以使用SMARTY_DIR來根據您的路徑。

1

我是研究計劃計算器的開發人員,在爲其他用戶研究相同問題時發現了這個問題。這些代碼只有幾個星期纔會出現,我們正在發現其他機構安裝它的一些事情。

我可以通過在inc/rpc_smarty.inc.php類構造函數中的任何其他用戶之前顯式調用parent::__construct();來讓它爲其他用戶運行。我會很快發佈一個新的發佈,但現在你應該能夠修改該構造函數如下。

如果您有更多問題或遇到其他問題,請隨時通過項目安裝說明wiki頁面上的鏈接與我聯繫。

public function __construct($config) 
{ 
    parent::__construct(); 
    $this->config = $config; 
    ... 
    ... 
}