Create beautiful Joomla websites with a flexible layout from iJoomla.com
On one of my sites running Joomla I wanted users to be able to comment on articles. I had akoComments installed, but I found it lacking. It wouldn't tell me which article was commented on! SO I upgraded to !JoomlaComment, which has lots of great features; like AJAX posting and replying capabilities. However, upon installing !JoomlaComment 2.4 final, right away I found a bug. One every page I was getting the following error:
Warning: Invalid argument supplied for foreach() in /home/username/public_html/components/com_comment/joscomment/properties.php on line 160
The problem was that it was trying to access the UserList array, without first checking if it there was anything there! I believe this was caused by the fact that I wasn't using Community Builder component. So I added a line to check first if there is a value for the UserList array, and prevent passing an empty array.
So open the properties.php file, and edit the lines 152-169 to look like this:
function loadProfiles()
{
global $database;
$database->setQuery('SELECT #__users.username, #__comprofiler.user_id,
#__comprofiler.avatar FROM #__users, #__comprofiler
WHERE #__users.id = #__comprofiler.user_id');
$userList = $database->loadAssocList();
$this->_profiles = array();
//add this line
if(count($userList)){
//add the above line
foreach ($userList as $item) {
if ($this->_avatar) $this->_profiles[$item['username']]['avatar'] = $item['avatar'];
else $this->_profiles[$item['username']]['avatar'] = false;
if ($this->_profile) $this->_profiles[$item['username']]['id'] = $item['user_id'];
else $this->_profiles[$item['username']]['id'] = false;
}
//add this curly bracket
}
//add the above curly bracket
unset($userList);
}
Create beautiful Joomla websites with a flexible layout from iJoomla.com