我们开发了一个可以在 Joomla 1.5 和 2.5 上正常工作的喊话箱。我通过更改 XML 中的版本和其他一些位 n bobs 使其与 Joomla 3.0 兼容。
当我尝试加载分配了喊话框模块的页面时,我收到以下错误消息:
Notice: Trying to get property of non-object in C:\wamp\www\XXX\libraries\legacy\module\helper.php on line 150
Notice: Undefined property: stdClass::$content in C:\wamp\www\XXX\templates\system\html\modules.php on line 17
我将其缩小到导致问题的一行,即:
$rows = $db->loadObjectList();
此行来自以下用于检索喊声的函数:
function getShouts($number, $timezone, $message) {
global $mainframe;
$shouts = array();
$db =& JFactory::getDBO();
$query = 'SELECT * FROM #__shoutbox ORDER BY id DESC';
$db->setQuery($query , 0 , $number);
$rows = $db->loadObjectList();
$i=0;
$timezone=$timezone*60*60;
foreach ( $rows as $row ) {
$shouts[$i]->id = $row->id;
$shouts[$i]->name = $row->name;
$adjustedtime = strtotime($row->when) + $timezone;
$shouts[$i]->when = date( 'Y-m-d H:i:s', $adjustedtime);
$shouts[$i]->ip = $row->ip;
$shouts[$i]->msg = $row->msg;
$i++;
}
return $shouts;
}
老实说,我不知道为什么会出现这两个错误,因为它们的模块在以前的 Joomla 版本中运行良好。我尝试使用不同的方法来获得呼喊声,但没有任何效果。
有没有人知道为什么会发生这种情况并有解决方案?