插件目录冲突

时间:2012-10-28 19:15:50

标签: smarty smarty3

自从我开始开发自己的修改器功能以使我的Smarty环境以其应有的方式工作时,我一直在努力。具体来说,我似乎必须在能够使用“内置”功能或我自己的功能之间进行选择,而不是两者兼而有之。我确信有些东西我不知道,希望有人能指出我需要做的事情。

我目前所做的是:

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

     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()”调用,但它显然只允许注册一个目录。

    非常感谢任何和所有帮助。

1 个答案:

答案 0 :(得分:1)

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

设置多个目录