2013-09-05 2 views
2

Все!PHP с пространствами имен и ошибкой Smarty: неизвестный тег «цикл»

Я работаю с PHP и Smarty в своем проекте. Я использую пространство имен и у меня возникают проблемы, когда я звоню функции Smarty, для образца цикла

У меня эта ошибка:. Синтаксическая ошибка в шаблоне»\ SYS \ ADM \ шаблон \ поля \ inputFileField.tpl»в строке 23 "{значения цикла =" гм, Dois "}" неизвестный тег "цикл"

Я использую spl_autoload_register к классам авто нагрузки в проекте:

function smartyAutoloader($className) { 
    $file = "sys/classes/smarty/$className.class.php"; 

    if (file_exists($file)) { 
     require $file; 
     return true; 
    } 

    return false; 
} 

I не изменил пространство имен в классе Smarty, поэтому я импортирую Smarty this путь:

use \Smarty; 

Если я закомментировать цикл код, мой код работает правильно.

Следовать является problemmatic код:

{for $x = 0 to 10} 
    {cycle values="um,dois"} {*line 23 on inputFileField.tpl*} 
{/for} 

Я не зная использовать пространство имен и Smarty в одном проекте. Я уверен, что эта ошибка вызвана пространствами имен. Может кто-нибудь мне помочь?

Заранее спасибо

+0

Есть ли способ, что мы можем увидеть 'Line 23' от' inputFileField.tpl '? –

+0

Спасибо за ответ! Это часть моего кода: '{за $ х = 0 до 10} \t {значения цикла = "гм, Dois"} {* строка 23 *} {/ для}' – eliangela

+0

Что должен это отсечение код на самом деле делать? –

ответ

1

Я нашел это post at the Smarty forum

Проблема, кажется, неправильно или относительный путь к папке плагина. После установки пути к папке-расширителю absolut, он отлично работает даже с пространствами имен.

также посмотреть на Smarty documentation:

Technical Note

For best performance, do not setup your $plugins_dir to have to use the PHP include path. Use an absolute pathname, or a path relative to SMARTY_DIR or the current working directory.

2

Вы должны установить setPluginsDir так:

$dirSep = DIRECTORY_SEPARATOR; 
$path = dirname(dirname(__FILE__)).DIRECTORY_SEPARATOR; 
$smarty->setPluginsDir($path."smarty".$dirSep."libs".$dirSep."plugins");