Pytanie zapewne banalne ale nie mogę sam dojść ładu a siedzę nad tym już kupę czasu. Próbuję napisać system newsów i chciałbym, żeby na stronie głównej wyświetlała się lista newsów ale w takiej formie, żeby nie było widać całej treści tylko część. Nie chcę żeby skrypt operował na pobranych danych (funkcja substr z PHP), tylko pobierał z bazy już "skróconą" wersję. I tak mam w silniku funkcję, która pobiera taką wartość:

function krotkaTresc() {
  $ret = array();
  $q = mysql_query("select substring(tresc, 1, 20) as x from news limit 1");
  while ($txt = mysql_fetch_assoc($q)) {
    $ret[] = $txt;
  }
  return $ret;
}

Wywołuję ją tak:

$f = $b->krotkaTresc();
$smarty->assign("Krotka", $f);

A w szablonie mam taki kod:

{section name=c loop=$Nowosc}
{$Nowosc[c].id}
<a href="nowosc.php?id={$Nowosc[c].id}">{$Nowosc[c].tytul}
{section name=f loop=$Krotka}{$Krotka[f].x}{/section}...
{$Nowosc[c].autor}
{$Nowosc[c].data}
{/section}

Na 99% jestem przekonany, że problem tkwi w drugim wywołaniu {section} w szablonie bo gdy w zapytaniu jest limit 1 to pobiera 20 pierwszych znaków tylko z pierwszego rekordu, gdy nie ma limit 1 to po 20 znaków z każdego rekordu. Pomożecie?