Как в стандатртном жумлавском модуле mod_whosonline (Кто онлайн?) сделать что бы эти самые "кто онлайн" показывались на странице не в столбик а в строчку допустим через запятую?
Ответ: "Кто онлайн?" Открываете modules/mod_whosonline.php с 78 строки и до конца заменяете код на этот: Код (CODE): // show online member names if ($showmode > 0) { $query = "SELECT DISTINCT a.username" ."\n FROM #__session AS a" ."\n WHERE a.guest = 0" ; $database->setQuery($query); $rows = $database->loadObjectList(); if ( count( $rows ) ) { // output $output .= '<br>'; foreach($rows as $row) { $output .= '<strong>'; $output .= $row->username; $output .= '</strong>'; } $output .= ','; } } echo $output; ?>
Ответ: "Кто онлайн?" Спасибо, помогло. Хотя пришлось и доработать. От твоего кода запятая ставилась в конце после перечисления всех пользователей подряд, без пробелом между. Но все исправил. Тока вот убрать бы запятую в конце списка пользователей. Ато она там ни к чему...
Ответ: "Кто онлайн?" мой вариант какой: Код (PHP): // show online member names if ($showmode > 0) { $query = "SELECT DISTINCT a.username" ."\n FROM #__session AS a" ."\n WHERE a.guest = 0" ; $database->setQuery($query); $rows = $database->loadObjectList(); if ( count( $rows ) ) { // output $output .= '<br/>'; $names=array(); foreach($rows as $row) { $names[] = $row->username; } $output .= "<strong>".implode("</strong>, <strong>", $names)."</strong>"; } } echo $output; ?>
Подскажите, а как в модуле mod_whosonline jommla 1.5.6 сделать так, чтобы он показывал не логины пользователей, находящихся на сайте, а имена. ( Или по другому: не имена пользователей, а имена, кому как нравится называть)
Это я сделал в первую очередь файл называется helper.php: Код (PHP): // show online member names function getOnlineMemberNames() { $db =& JFactory::getDBO(); $result = null; $query = 'SELECT DISTINCT a.username' . ' FROM #__session AS a' . ' WHERE client_id = 0' . ' AND a.guest = 0'; $db->setQuery($query); $result = $db->loadObjectList(); if ($db->getErrorNum()) { JError::raiseWarning( 500, $db->stderr() ); } return $result; } Перестал писать список этих пользователей вообще, только количество
На первый взгляд: Боюсь, что так сделать стало гораздо сложнее, потому что имя пользователя берется из таблицы сессий, и хранится там только одно имя. Поэтому изменения должны быть более сильные и не только в модуле, но и в местах где сохраняется сессия. ... Но присмотревшись к таблице: Понял, что тоже не все так просто. ... И посмотрел я третий раз на этот модуль и получил такой результат, который сам не тестировал, может быть будут ошибки: Код (PHP): // show online member names function getOnlineMemberNames() { $db =& JFactory::getDBO(); $result = null; $query = 'SELECT a.* ' . ' FROM #__session AS a' . ' WHERE client_id = 0' . ' AND a.guest = 0 GROUP BY a.username'; $db->setQuery($query); $result = $db->loadObjectList(); foreach ($result as $key=>$user) { $a=explode('|',$user->data); $a=unserialize($a[1]); $result[$key]->username = $a['user']->name; } if ($db->getErrorNum()) { JError::raiseWarning( 500, $db->stderr() ); } return $result; } на самом деле с joomla 1.5.* я не разбирался, так что, возможно, это можно сделать элегантнее
Сейчас попробую этот вариант - расскажу, что получилось ))) Добавлено через 15 минут Все работает, огромное спасибо. Можно, конечно, будет поработать над элегантностью, но самое главное уже сделано. Sectus, +1 Добавлено через 14 минут Может я совсем обнаглею, но все-таки спрошу. Реально добавить в этот модуль такое изменение - отображение не только количество и список имен пользователей онлайн, но и администраторов (вместе с суперадминистраторами в одной куче), редакторов ??? joomla 1.5.6
Можно и цветом))) Обчно пишется так: N гостей и N пользователей онлайн: -автор -пользователь -админ А я говорю о таком варианте: Гостей: N Пользователей: N -user1 -user2 Авторов: N -автор1 -автор2 Администраторов: N -админ1 -админ2 Естественно, не логины, а имена Добавлено через 7 минут Хотя, может даже лучше просто разными цветами написать их, а снизу карту цветов добавить. Добавлено через 40 секунд Как на некоторых движках форумов
Цветом, проще, но будет не совсем правильно : ) По группам сложнее, потому как надо будет шаблон еще менять % )
Почему не правильно? гости обычным, пользователи одним, авторы вторым, редакторы третьим, админы и суперадмины четвертым. От этого варианта я уже отказался, но все-таки, а зачем шаблон-то менять?
Тогда в файле tmpl/default.php Код (PHP): <li><strong><?php echo $name->username; ?></strong></li> поменять на Код (PHP): <li><?php echo "<span class='".str_replace(" ", "_", $name->usertype)."'>".$name->username."</span>"; ?></li> а потом через класс к этому спану добавить цвет в соответствии с каждым типом. (p.s. не тестировал : ) )