отображение данных в шаблоне smarty только в случае их вывода print_r'ом

  • Автор темы Автор темы sniper_9
  • Дата начала Дата начала

sniper_9

Новичок
отображение данных в шаблоне smarty только в случае их вывода print_r'ом

Всем привет. Столкнулся с довольно интересной ситуацией. Есть функция, ктотрая возвращает ассоциативный массив данных и отправляет их в шаблон. Примеры кода - ниже. Но вот парадокс. Даныые не поступают в шаблон за исключением их предварительного вывода на экран print_r'ом. ТО есть делаю print_r фугкции данные на экране появляются. не делаю - нет.
вот пример print_r:
Array ( [0] => Array ( [id_news] => 1 [name] => Первая новость [body] => Заработала система новостей.Заработала система новостей.Заработала система новостей.Заработала система новостей.Заработала система новостей.Заработала система новостей.Заработала система новостей.Заработала система новостей.Заработала система новостей.Заработала система новостей.Заработала система новостей.Заработала система новостей.Заработала система новостей.Заработала система новостей.Заработала система новостей.Заработала система новостей.Заработала система новостей.Заработала система новостей.Заработала система новостей.Заработала система новостей.Заработала система новостей.Заработала система новостей.Заработала система новостей.Заработала система новостей.Заработала система новостей. [putdate] => 2007-12-03 10:02:27 [hide] => show [anons] => Заработала система новостей.Заработала... ) )код шаблона:
{if $aNews neq false}

<ul>
{foreach name="news" item="news" from=$aNews}
<li><u>{$smarty.foreach.news.iteration}.</u><span>{$news.anons}</span><br />
<a href="{$http_address}/news/{$news.id_news}">Подробнее</a></li>
{/foreach}
</ul>
{/if}

Заранее, спасибо.
 
ок.
вот её вызов:

index.php:
......
$aData = $oNews->read_news('client','all',&$mdb2);
$oSmarty->assign('aNews',$aData);
......

код функции:

function read_news($from,$how_much,$db)
{
if (isset($how_much)){
$numchar = 50;
$sql = "SELECT * FROM news";
if ($from <> 'admin')
if ($how_much <> 'all')
$sql .= " WHERE hide='show' AND putdate <= NOW() and `id_news`=".$how_much;
else
$sql .= " WHERE hide='show' AND putdate <= NOW()";
else
if ($how_much <> 'all')
$sql.= ' WHERE `id_news`='.$how_much;

$sql .= " ORDER BY putdate DESC
LIMIT ".news_number;

$aNews=array();$i=0;
//echo $sql;
$result =& $db->query($sql);

if (PEAR::isError($result))
{
die($result->getMessage());
}

if(!MDB2::isError($result))
while($aRes = $result -> fetchRow(MDB2_FETCHMODE_ASSOC))
{

$aNews[$i] = $aRes;
}
if (count($aNews) <1)
return false;
else return $aNews;

-~{}~ 03.12.07 10:22:

Функция данные возвращает проверял. Проверял.
 
{debug} - посмотри какие переменные есть в шаблоне.
в смарти есть функция очистки заасайненых переменных, посмотри, может она где-то вызывается.
 
спасибо. за подсказку. ошибку нашёл. смарти отработал нормально. код сгенерился. ошибка была в вёрстке, то есть в стилях.
есть ещё не большой офтоп фопрос : бывает ситуация когда страница отображается в мозилле норамльно, а в IE вообшем не отображется. чистый лист. нажимаешь просмотр html кода - там вёрстка. сталкивался с таким и как пользователь и как разработчик. кто нить сталкивался с таким уже?
 
У меня в тот день пятна на солнце были :)
А вообще причина может быть любая -> несовместимость (css, js, или просто вёрстки) разными броузерами и т.п.
 
sniper_9 советую почитать о tidy.
И использую отступы.
Код:
<html>
    <head>
        <title>......</title>    
    </head>
    <body>
        <p>.....</p>
        <div>
            ......
            ......
    </body>
</html
 
sniper_9
кто нить сталкивался с таким уже?
Бывает, когда кодировка страницы не совпадает с определенной браузером. Особенно когда одна из них юникод.
Еще бывает, когда недогрузилось.
Можно искусственно запрограммировать такой эффект.
 
а, вспомнил случай, ИЕшка проявила себя с положительной стороны.
у меня на одном сайте завёлся вирь, который совал в конец страницы скрытый iframe, так иешка не открывала эту страницу, так и нашли проблему, а вот остальные работали нормально :(
 
Сверху