
Too complicated and too much things for me and my users. There are many and many options
showing message time is also vital (Achat lacks).
But we still have too many Chat modules, so we need to make a list of features what you like in each module, and what reasons do you have not to use a particular chat module, so we could maybe merge them into one, with all the good features and none of the bad.
function b_mycomments2_show($options)
{
global $xoopsUser;
include_once XOOPS_ROOT_PATH.'/modules/mycomments/include/comment_constants.php';
$limit = 10; // If you are not getting suficient results, please increase a little more this number
$block = $comment_config = $trackedItems = array();
$comment_handler =& xoops_getmodulehandler('comment','mycomments');
$moduleperm_handler =& xoops_gethandler('groupperm');
$member_handler =& xoops_gethandler('member');
$module_handler =& xoops_gethandler('module');
$criteria = new CriteriaCompo(new Criteria('com_status', MYCOM_ACTIVE));
$criteria->setLimit(intval($options[0] * $limit));
$criteria->setSort('com_created');
$criteria->setOrder('DESC');
$comments = $comment_handler->getObjects($criteria, true);
$modules = $module_handler->getObjects(new Criteria('hascomments', 1), true);
$count = 0;
foreach (array_keys($comments) as $i) {
if ( $count == $options[0]) continue;
$mid = $comments[$i]->getVar('com_modid');
if ($xoopsUser) {
if (!$moduleperm_handler->checkRight('module_read', $mid, $xoopsUser->getGroups())) {
continue;
}
} else {
if (!$moduleperm_handler->checkRight('module_read', $mid, XOOPS_GROUP_ANONYMOUS)) {
continue;
}
}
$com['module'] = '.XOOPS_URL.'/modules/'.$modules[$mid]->getVar('dirname').'/">'.'
.XOOPS_URL . '/modules/' . $modules[$mid]->getVar('dirname', 'n') . '/images/ico.gif" />'.'';
if (!isset($comment_config[$mid])) {
$comment_config[$mid] = $modules[$mid]->getInfo('comments');
}
$com['id'] = $i;
$com['title'] = '.XOOPS_URL.'/modules/'.$modules[$mid]->getVar('dirname').'/'.$comment_config[$mid]['pageName'].'?'.$comment_config[$mid]['itemName'].'='.$comments[$i]->getVar('com_itemid').'&com_id='.$i.'&com_rootid='.$comments[$i]->getVar('com_rootid').'&'.htmlspecialchars($comments[$i]->getVar('com_exparams')).'#comment'.$i.'">'.$comments[$i]->getVar('com_title').'';
$com['icon'] = htmlspecialchars( $comments[$i]->getVar('com_icon'), ENT_QUOTES );
$com['icon'] = ($com['icon'] != '') ? $com['icon'] : 'icon1.gif';
$com['time'] = formatTimestamp($comments[$i]->getVar('com_created'),'s');
if ($comments[$i]->getVar('com_uid') > 0) {
$poster =& $member_handler->getUser($comments[$i]->getVar('com_uid'));
if (is_object($poster)) {
$com['poster'] = '.XOOPS_URL.'/userinfo.php?uid='.$comments[$i]->getVar('com_uid').'">'.$poster->getVar('uname').'';
} else {
$com['poster'] = $GLOBALS['xoopsConfig']['anonymous'];
}
} else {
$com['poster'] = $GLOBALS['xoopsConfig']['anonymous'];
}
if (count($trackedItems) > 0) {
$itemMatch = false;
foreach (array_keys($trackedItems) as $j) {
if ($comments[$i]->getVar('com_modid') == $trackedItems[$j]['modid'] && $comments[$i]->getVar('com_itemid') == $trackedItems[$j]['itemid']) {
$itemMatch = true;
}
}
if (!$itemMatch) {
$block['comments'][] =& $com;
$trackedItems[] = array('modid' => $comments[$i]->getVar('com_modid'), 'itemid' => $comments[$i]->getVar('com_itemid') );
$count++;
}
} else {
$block['comments'][] =& $com;
$trackedItems[] = array('modid' => $comments[$i]->getVar('com_modid'), 'itemid' => $comments[$i]->getVar('com_itemid') );
$count++;
}
unset($com);
}
return $block;
}