这一定是一个非常愚蠢的问题,但我一直在寻找它的答案而无法找到问题...我在尝试显示一个聪明的模板时遇到了一些麻烦,我使用的是旧版本的smarty,一切正常,但我更新到smarty 3,我得到了一个例外,它的消息说:
调用未知方法'显示'。
这是我的代码:
的index.php
require_once './GeneralFunctions.php';
$smartyVariables = getSmartyVariablesToAssign();
tryToDisplaySmartyTemplate('Index.tpl', $smartyVariables);
function getSmartyVariablesToAssign() {
$userAndOrPasswordError = $_GET['userAndOrPasswordError'];
return array(
'userAndOrPasswordError' => $userAndOrPasswordError
);
}
GeneralFunctions.php
require_once './smarty/libs/Smarty.class.php';
function tryToDisplaySmartyTemplate($templateName, $variablesToAssign = null) {
try {
$mySmarty = callSmarty();
assignSmartyVariables($mySmarty, $variablesToAssign);
$mySmarty->display($templateName);
} catch (Exception $exc) {
showCatchedExceptionTraceAndMessage($exc);
}
}
function callSmarty() {
$mySmarty = new Smarty();
$mySmarty->template_dir = 'smarty/templates';
$mySmarty->compile_dir = 'smarty/templates_c';
$mySmarty->config_dir = 'smarty/config';
$mySmarty->cache_dir = 'smarty/cache';
return $mySmarty;
}
function assignSmartyVariables($mySmarty, $variablesToAssign) {
foreach ($variablesToAssign as $key => $value) {
$mySmarty->assign($key, $value);
}
}
function showCatchedExceptionTraceAndMessage(Exception $exc) {
echo "Ocurrió un error desconocido, por favor, notifique al departamento de sistemas.",
"<br>",
"<br>",
$exc->getTraceAsString(),
"<br>",
"<br>",
$exc->getMessage();
}
我一直在调查,直到现在我才知道存在一个聪明的方法:testInstall() 其中提供了以下信息:
Smarty安装测试...测试模板目录... C:\ xampp \ htdocs \ develop \ Registro_de_Tramites \ smarty \ templates即可。 测试编译目录...... C:\ xampp \ htdocs \ develop \ Registro_de_Tramites \ smarty \ templates_c没问题。 测试插件目录... C:\ xampp \ htdocs \ develop \ Registro_de_Tramites \ smarty \ libs \ plugins是 好。测试缓存目录...... C:\ xampp \ htdocs \ develop \ Registro_de_Tramites \ smarty \ cache即可。 测试配置目录... C:\ xampp \ htdocs \ develop \ Registro_de_Tramites \ smarty \ config没问题。
测试sysplugin文件... FAILED:libs / sysplugins中缺少的文件: smarty_internal_extension_codeframe.php, smarty_internal_extension_config.php, smarty_internal_extension_defaulttemplatehandler.php, smarty_internal_filter_handler.php, smarty_internal_function_call_handler.php, smarty_internal_get_include_path.php。
测试插件文件......好的 测试完成。
我已经分开了我唯一失败的失败者。似乎libs / sysplugins文件夹中缺少一些php文件,但是从smarty releases再次下载它,只是提供了我所拥有的相同文件...
要安装它,我只需将libs文件夹复制到我的项目中,内部&#34; smarty&#34;夹。
希望得到一些帮助:/
答案 0 :(得分:0)
我知道这是一个愚蠢的问题......通过重新安装smarty 3它一切正常,你看,似乎有一个问题,tortoiseSVN(谁知道为什么)第一次没有正确上传所有智能文件。
奇怪的是,缺少的文件不是testInstall()所说的......
无论如何,如果你们中的任何人有同样的问题,请先尝试重新安装smarty。