On my Joomla module, we are using the following code to get shouts from the database
function getShouts($number, $timezone, $message) {
$shouts = array();
$db = JFactory::getDBO();
$query = $db->getQuery(true);
$query->select('*')
->from('#__shoutbox')
->order('id DESC');
$db->setQuery($query , 0 , $number);
$rows = $db->loadObjectList();
$i=0;
foreach ( $rows as $row ) {
$shouts[$i]->id = $row->id;
$shouts[$i]->name = $row->name;
$shouts[$i]->msg = $row->msg;
$i++;
}
return $shouts;
}
and the following code to display it in the default.php
print stripslashes($shouts[$i]->msg);
However this is causing problems when someone wants to input something like the following:
test line 1
test line 2
If they go onto a new line, the post displays like so after being submitted:
test line 1rntest line 2
So I did some research and realised I had to use nl2br()
which I did as shown below:
print stripslashes(nl2br($shouts[$i]->msg));
however, it didn't seem to resolve the issue. I also tried creating another function in the helper to replace it using preg_replace
but this didn't help either.
Can anyone explain why line breaking isn't working after adding nl2br()
and how to fix it?