0

自从我开始开发自己的修改器函数以使我的 Smarty 环境以应有的方式工作以来,我一直在苦苦挣扎。具体来说,我似乎必须在能够使用“内置”功能或我自己的功能之间做出选择,但不能同时使用两者。我确定我缺少一些东西,希望有人能指出我需要做的事情。

我目前所做的是:

  1. 当使用内置函数时——诸如大写、@debug_print_var 等修饰符——它似乎可以正常工作,而无需专门指向这些内置脚本所在的目录
  2. 当我开发自己的脚本时——我现在有两个——我必须明确说明它们在哪里才能让它们被识别,所以我添加了下面的代码:

代码:

 public static function init () {
    $object = new Smarty();
    $object->setTemplateDir ( LG_FE_DIR . '/templates/uncompiled' );
    $object->setCompileDir ( LG_FE_DIR . '/templates/compiled'  );
    $object->setCacheDir ( LG_FE_DIR . '/templates/cache' );
    $object->setConfigDir ( LG_FE_DIR . '/templates/configs' );
    // $object->setPluginsDir ( LG_FE_DIR . '/externals/Smarty/libs/plugins');
    $object->setPluginsDir ( LG_FE_DIR . '/templates/plugins_dir' );

    return $object;
}

正如您从注释掉的行中看到的那样,我还尝试对默认 Smarty 库和我自己的库进行两次“setPluginsDir()”调用,但它显然只允许注册一个目录。

任何和所有的帮助将不胜感激。

4

1 回答 1

1

试试addPluginsDir。使用这种方法,您可以添加一个或多个插件目录,而不是重写现有的。http://www.smarty.net/docs/en/api.add.plugins.dir.tpl您还可以使用 setPluginsDir 设置多个目录 ...setPluginsDir(array(DIR_1,DIR_2))

于 2012-10-29T10:32:20.570 回答