webForumDet fria alternativet

While-loop i bTemplate

1 svar · 176 visningar · startad av Melea

MeleaMedlem sedan juli 20032 667 inlägg
#1

Morsning korsning wF!

Har suttit och bitit ner mina naglar till grunden pga. att jag inte får ihop det här.
Jag kör bTemplate som framgår i rubriken, och försöker formatera text som jag hämtar från databasen.
Såhär ser det ut just nu, och det funkar finfint.

while($row = $result->fetch_array()) {
   $gb[] = $row;
}
 
$guestbook->set('guestbook', $gb);

Och i template-filen

<loop:guestbook>
 
   <h3><tag:guestbook[].name /> - <tag:guestbook[].cdate /></h3>
   <p><tag:guestbook[].text /></p>
 
</loop:guestbook>

Men om jag nu vill formatera texten med några funktioner så, ja, det är alltså detta jag inte får ihop. :l
Jag har testat att skriva såhär:

while($row = $result->fetch_array()) {
   $gb[] = $row;
}
 
$gb['text'] = nl2br(text_code(url_to_link(censor(htmlspecialchars($gb['text'])))));
 
$guestbook->set('guestbook', $gb);

Men efter ett tag förstår jag ju att det endast lägger till en ny rad i $gb-arrayen.
Så, hur ska jag gå tillväga för att snygga upp att?

Tack så väldans på förhand!

MVH

MeleaMedlem sedan juli 20032 667 inlägg
#2

The allmighty Peeer hjälpte mig med denna!

Såhär ser lösningen ut:

$counter = 0;

while($row = $result->fetch_array()) {

	$gb[$counter]['name'] = (strlen($row['email']) > 0) ? '<a href="mailto:'.$row['email'].'">'.$row['name'].'</a>' : $row['name'];
	$gb[$counter]['cdate'] = str_replace("-", "/", substr($row['cdate'],0,16));
	$gb[$counter]['text'] = nl2br(text_code(url_to_link(censor(htmlspecialchars($row['text'])))));

	$counter++;

}

Tack Peeer! :)

Genererad på 371 ms · cache AV · v20260730165559-full.f96bc7eb