2013-11-10 2 views
0

Один из моих сайтов часто имеет более 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, поэтому добавляется разделитель?

ответ

0

Это не работает?

$guest = JText::plural('MOD_WHOSONLINE_GUESTS',number_format($count['guest'],0,'.',',')); 
+0

Вам не хватает одного закрывающего кронштейна. Я пробовал это, поскольку ранее не добавлял бит за ['guest'] Теперь номер отображается, но только до тех пор, пока он не достигнет 999, после чего он показывает «один гость онлайн» –

+0

. Интересно, может ли проблема частично с JText :: множественным битом. Попробуйте это для тестирования: $ guest = number_format ($ count ['guest'], 0, '.', ','); –

+0

Я абсолютно уверен, что вам не понадобится «множественное число», по крайней мере, так как это плюрализует строку, которая не имеет смысла с числами. –

 Смежные вопросы

  • Нет связанных вопросов^_^