Один из моих сайтов часто имеет более 1000 одновременных посетителей и просто для согласованности. Я хочу добавить разделитель тысяч на дисплей, чтобы он показывал 1000.Joomla's Who's Online Counter - Как добавить тысячу разделителей?
Моя первоначальная мысль состояла только в том, чтобы добавить number_format перед переменной, содержащей счет гостя, но это почему-то останавливает работу счетчика.
Функция в helper.php подсчета гостей выглядит следующим образом:
// show online count
static function getOnlineCount() {
$db = JFactory::getDbo();
// calculate number of guests and users
$result = array();
$user_array = 0;
$guest_array = 0;
$query = $db->getQuery(true);
$query->select('guest, usertype, client_id');
$query->from('#__session');
$query->where('client_id = 0');
$db->setQuery($query);
$sessions = (array) $db->loadObjectList();
if (count($sessions)) {
foreach ($sessions as $session) {
// if guest increase guest count by 1
if ($session->guest == 1 && !$session->usertype) {
$guest_array ++;
}
// if member increase member count by 1
if ($session->guest == 0) {
$user_array ++;
}
}
}
$result['user'] = $user_array;
$result['guest'] = $guest_array;
return $result;
}
И в шаблоне данные отображаются с помощью следующих действий:
<?php if ($showmode == 0 || $showmode == 2) : ?>
<?php $guest = JText::plural('MOD_WHOSONLINE_GUESTS', $count['guest']); ?>
<?php $member = JText::plural('MOD_WHOSONLINE_MEMBERS', $count['user']); ?>
<p><?php echo JText::sprintf('MOD_WHOSONLINE_WE_HAVE', $guest, $member); ?></p>
Где я поставил number_format, поэтому добавляется разделитель?
Вам не хватает одного закрывающего кронштейна. Я пробовал это, поскольку ранее не добавлял бит за ['guest'] Теперь номер отображается, но только до тех пор, пока он не достигнет 999, после чего он показывает «один гость онлайн» –
. Интересно, может ли проблема частично с JText :: множественным битом. Попробуйте это для тестирования: $ guest = number_format ($ count ['guest'], 0, '.', ','); –
Я абсолютно уверен, что вам не понадобится «множественное число», по крайней мере, так как это плюрализует строку, которая не имеет смысла с числами. –