Столкнулся с такой задачей: выводить оценки фотографиям в тултипе (при наведении на рейтинг) не до сотых (2 знака после запятой) а до тысячных или более.
Дотошные пользователи попросили для фотоконкурса)))
Полвечера убил пока разобрался, где это править.
Если кому пригодится, делюсь, чтобы хоть людям время сэкономить)
Файл components/com_joomgallery/helpers/helper.php
Там в конце функция public static function getSQLRatingClause($tablealias = '')
В ней в 4 местах нужно поправить выделенные числа на нужное вам значение точности после запятой:
--------------------------------------------------
// Standard rating clause
$clause = 'ROUND(LEAST(IF(imgvotes > 0, '.$imgvotesum.'/'.$imgvotes.', 0.0), '.(float)$maxvoting.'), 2)';
// Advanced (weigthed) rating clause (Bayes)
if($config->get('jg_ratingcalctype') == 1)
{
if(!$avgdone)
{
// Needed values for weighted rating calculation
$query = $db->getQuery(true)
->select('count(*) As imgcount')
->select('SUM(imgvotes) As sumimgvotes')
->select('SUM(imgvotesum/imgvotes) As sumimgratings')
->from(_JOOM_TABLE_IMAGES)
->where('imgvotes > 0');
$db->setQuery($query);
$row = $db->loadObject();
if($row != null)
{
if($row->imgcount > 0)
{
$avgimgvote = round($row->sumimgvotes / $row->imgcount, 2 );
$avgimgrating = round($row->sumimgratings / $row->imgcount, 2);
$avgdone = true;
}
}
}
if($avgdone)
{
$clause = 'ROUND(LEAST(IF(imgvotes > 0, (('.$avgimgvote.'*'.$avgimgrating.') + '.$imgvotesum.') / ('.$avgimgvote.' + '.$imgvotes.'), 0.0), '.(float)$maxvoting.'), 2)';
--------------------------------------------------
Но это ещё не всё! )))
Чтобы жизнь мёдом не казалась, разработчики ещё включили указание точности в языковой файл)
Идём в language/ru-RU/ru-RU.com_joomgallery.ini
В нём ищем строчку с COM_JOOMGALLERY_COMMON_RATING_TIPTEXT_VAR (или нечто похожее - в зависимости от версии).
И там меняем значение точности, выделенное цветом:
COM_JOOMGALLERY_COMMON_RATING_TIPTEXT_VAR="%1$.2f (%2$d голосов)"
При этом если просто увеличить в языковом файле, не трогая helper, то так, как надо, работать, естественно, не будет.