Smarty:调用未知方法'显示'

时间:2016-04-25 16:57:34

标签: php display smarty3

这一定是一个非常愚蠢的问题,但我一直在寻找它的答案而无法找到问题...我在尝试显示一个聪明的模板时遇到了一些麻烦,我使用的是旧版本的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;夹。

希望得到一些帮助:/

1 个答案:

答案 0 :(得分:0)

我知道这是一个愚蠢的问题......通过重新安装smarty 3它一切正常,你看,似乎有一个问题,tortoiseSVN(谁知道为什么)第一次没有正确上传所有智能文件。

奇怪的是,缺少的文件不是testInstall()所说的......

无论如何,如果你们中的任何人有同样的问题,请先尝试重新安装smarty。