Smarty, страницы в подкаталогах

Я пытаюсь понять, как хранить страницы в подкаталогах (категориях), используя механизм шаблонов php Smarty.

Например, если моя структура:

index.php
category1/page1.php
category2/page2.php

и т.п.

корень index.php отображается просто отлично

используя настройку smarty по умолчанию:

<?php 
require_once('lib/smtemplate.php');

$data = array(
    'meta_keywords' =>'key1, key2',
    'category' =>'category1'
    );

$tpl = new SMTemplate();
$tpl->render('page', $data);

?>

но если я скопирую его в подкаталог, он сломается, даже если я перейду на

require_once('../lib/smtemplate.php');

и я не могу найти решение до сих пор.

Ценю твою помощь. Спасибо.


person devjs11    schedule 09.01.2011    source источник
comment
И где находятся ваши файлы шаблонов? Какой у вас код для SMTemplate? Вы устанавливаете правильное свойство template_dir объекта Smarty? Вы удосужились прочитать документацию [smarty.net/docs/en/variable .template.dir.tpl ] перед тем, как спросить?   -  person dev-null-dweller    schedule 09.01.2011


Ответы (1)


Определите базовый путь:

define("BASEPATH", "/var/www/yoursite/");

И включить вот так:

require_once(BASEPATH.'lib/smtemplate.php');
person Nanne    schedule 09.01.2011
comment
только что попробовал, и это не сработало. Вот ошибка, которую я получаю: Неустранимая ошибка: необработанное исключение «SmartyException» с сообщением «Невозможно загрузить файл шаблона «hello.tpl» в E:\wamp\www\smarty\lib\smarty\sysplugins\smarty_internal_template.php:163 Трассировка стека: #0 E:\wamp\www\smarty\lib\smarty\sysplugins\smarty_internal_template.php(541): Smarty_Internal_Template-›isExisting(true) #1 E:\wamp\www\smarty\lib\smarty\Smarty .class.php(337): Smarty_Internal_Template->getRenderedTemplate() #2 E:\wamp\www\smarty\lib\smtemplate.php(30): Smarty->fetch('hello.tpl') - person devjs11; 09.01.2011
comment
или оболочку, которую я использую, определить (БАЗОВЫЙ ПУТЬ, /var/www/yoursite/); также через все файлы конфигурации? - person devjs11; 09.01.2011
comment
вам следует. но также есть проблемы с поиском hello.tpl ... я думаю, что лучшее решение - исправить ваши пути: D - person Nanne; 09.01.2011
comment
мой корневой файл index.php отлично отображается с hello.tpl, поэтому я просто не могу поверить, что Smarty не имеет ничего для управления страницами из подкаталогов. - person devjs11; 09.01.2011
comment
Если вы настроили загрузку с относительных путей, боюсь, у вас возникнут проблемы. Это всегда проблема с включением из разных подкаталогов, извините, но так оно и есть .... Например, для вас также подходит каталог template_c .... - person Nanne; 09.01.2011
comment
идеально, изменение пути решает проблему. Хотя нормально ли, что теперь я получаю следующее уведомление на страницах: Примечание: константа SMARTY_DIR уже определена в E:\wamp\www\smarty\lib\smarty\smtemplate.php в строке 6. - person devjs11; 09.01.2011