|
|
|
| Есть скрипт, который вытягивает массив значений из базы:
<?php
require_once ("../../../dbopen.php"); //соединение с базой
require ('../../../smarty/Smarty.class.php');
$result = mysql_query("SELECT * FROM `news`");
if(!$result) exit(mysql_error());
while ($rows = mysql_fetch_array($result)) {
$smarty = new Smarty;
$smarty->debugging = true;
//отправить массив из базы в шаблон
$smarty->assign('list', $rows);
$smarty->display("../../../templates/news.tpl");
}
?>
|
И есть код шаблона:
{foreach item=row from=$rows}
<tr><td>{$row.page_title}</td></tr>
<tr><td>{$row.date}</td></tr>
<tr><td>{$row.announce}</td></tr>
<a href="index.php?id={$row.main_file}">Читать далее (Весь текст)</a>
{/foreach}
|
Выводит ошибку:
Fatal error: Smarty error: the $compile_dir 'templates_c' does not exist, or is not a directory. in s:\home\myproject.ua\www\smarty\Smarty.class.php on line 1144
Директория templates_c на самом деле существует и с другими примерами было все нормально, скомпилированные шаблоны кидались в эту директорию, а этот почему-то не хочет | |
|
|
|
|
|
|
|
для: Лена
(16.05.2008 в 12:59)
| | космос какой-то:
$smarty->display("../../../templates/news.tpl");
|
обычно в шаблонах смарти наверх не ходят.
Лучше относительными путями не пользоваться. Иначе, при переносе скрипта из папки в папку всё полетит. Как в вашем случае.
Этот скрипт и папка с смарти относительно корня сайта как располагаются? | |
|
|
|
|
|
|
|
для: Axxil
(16.05.2008 в 15:08)
| | Смарти лежит в корне - www, а скрипт находится в C:\WebServers\home\myproject.ua\www\admin\moduls\news, поэтому и нужно от него подниматься вверх, как сделать? | |
|
|
|
|
|
|
|
для: Лена
(16.05.2008 в 15:38)
| | Не надо подниматься. Путь к шаблону указывается отностительно папки templates. Т.е. как она определена в переменной $smarty->template_dir. По умолчанию это smarty/templates/
Если шаблоны у вас там лежат, то и путь нужно писать самый простой
<?
$smarty->display('news.tpl');
?>
|
| |
|
|
|