дмитрий

дмитрий

Был в сети 16 января 2026, 21:38
Заказы не принимаю
ок, спс, разобрался, вся проблема в этом участке кода в снипете:
$modx->setPlaceholders(array(
   'rating_count' => $middle,
   'rating' => $result,
   'ratingCount' => "(".count($all).")"
));
заменил его на просто
return $middle;
, не знаю насколько это правильно, но работает
в коде чанка:
<div><span class="reviews_param_value stars" data-rating="[[!Test2? &id=`[[+id]]`]][[+rating_count]]" data-num-stars="5"></span></div>
            </div>
снипет:
<?php
$d1 = $modx->getPlaceholder('id');



$sql = "SELECT C.properties AS prop FROM modx_tickets_comments C LEFT JOIN modx_tickets_threads D
ON C.thread=D.id WHERE D.resource = ".$d1;


$q = $modx->prepare($sql);
$q->execute(array(0));
$arr = $q->fetchAll(PDO::FETCH_ASSOC);
foreach ($arr as $arr_one) {
    $tmp = json_decode($arr_one["prop"], true)["starrating"];
    $all[] = $tmp;
}
$middle = number_format(array_sum($all)/count($all), 1, '.', '' );
if (count($all) == 0) {
   $result = ""; 
} else {
$result = '<span itemprop="review" itemscope itemtype="http://data-vocabulary.org/Review-aggregate"><span class="stars"
 itemprop="rating">'.$middle.'</span>Рейтинг '.$middle.' на основе <span itemprop="count">'.count($arr).'</span> отзывов</span>';


}

$middle = $middle== "nan" ? 0 : $middle;



$modx->setPlaceholders(array(
   'rating_count' => $middle,
   'rating' => $result,
   'ratingCount' => "(".count($all).")"
));