Среднее значение starRating

Здравствуйте. Есть сниппет starRating, с помощью которого можно выводить рейтинг для голосования пользователями, и все у этого сниппета хорошо, кроме того, что он не выводит среднее бал голосования. Есть таблица modx_star_rating в которой содержатся поля – id, star_id, group_id, vote_total, vote_count. Нужно разделить значение из vote_total(общий бал) на значение vote_count(общее количество голосов) где id=*id(айди ресурса), а затем результат округлить до одного знака после запятой (что бы не получать значения типа 3.43434354). Но моих знаний не хватает что бы получить эти значения из базы и провести вышеописанное действие. Возможно кто-то поможет?
Вот код сниппета
<?php
/**
 * Star Rating snippet
 *
 * @package star_rating
 */
$snippetPath = $modx->getOption('core_path').'components/star_rating/';
$modx->addPackage('star_rating',$snippetPath.'model/');

$manager = $modx->getManager();
$manager->createObjectContainer('starRating');

$starId = isset($starId) ? $starId : null;
$groupId = isset($groupId) ? $groupId : '';

$c = $modx->newQuery('starRating');
$c->where(array('star_id' => $starId));
if ($groupId != '') $c->where(array('group_id' => $groupId));

$starRating = $modx->getObject('starRating', $c);
if ($starRating == null) {
    $starRating = $modx->newObject('starRating');
    $starRating->set('star_id',$starId);
    $starRating->set('group_id',$groupId);
}
$starRating->initialize();

/* parameters */
$starRating->setConfig($scriptProperties);

/* process star rating */
$starRating->loadTheme();

$groupIdCheck = isset($_GET['group_id']) && $starRating->get('group_id') !== $_GET['group_id'] ? false : true;

if (isset($_GET['vote']) && isset($_GET['star_id']) && $starRating->get('star_id') == $_GET['star_id'] && $groupIdCheck) {
    $starRating->setVote($_GET['vote']);
    $starRating->addVote();
    $modx->sendRedirect($starRating->getRedirectUrl());
}

return $starRating->renderVote();
Если нужна еще какая-нибудь информация, с радостью предоставлю
Dolce
15 сентября 2016, 14:06
modx.pro
1 542
0

Комментарии: 4

Алексей
16 сентября 2016, 06:44
0
Так вызови сниппет.
{$_modx->runSnippet('!starRating', [
       'starId' => $id,
       'starTpl' => 'starTpl'
 ])}
Он по умолчанию выводит с точностью до двух знаков после запятой, если я правильно помню.
    Dolce
    20 сентября 2016, 15:17
    0
    Здравствуйте. Создал сниппет с Вашим кодом, получаю ошибку из за {} — убрал. Теперь другая ошибка
    Fatal error: Call to a member function runSnippet() on a non-object
      Антон
      21 сентября 2016, 06:14
      0
        Алексей
        21 сентября 2016, 07:04
        0
        это синтаксис на феноме, если не используете его, перепишите под стандартный в modx
        [[!starRating?
        &starId = `[[+id]]`
        &starTpl = `starTpl`
        ]]
        вроде бы так
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      4