В итоге получилось, что я изначально неправильно думал. В общем все свелось к этому (сниппет [[!getVote]]):
$host='localhost';
$database='***';
$user='***';
$pswd='****';
$docId = $modx->resource->get('id');
$dbh = mysql_connect($host, $user, $pswd) or die("Не удалось подключиться к БД.");
mysql_select_db($database) or die("Нет базы");
$query = "SELECT star_id FROM `modx_star_rating` ORDER BY vote_total DESC";
$res = mysql_query($query);
if ($res) {
while ($row = mysql_fetch_array($res, MYSQL_ASSOC)) {
$rating .= $row['star_id'] . ",";
}
}
$rating = trim($rating, ',');
return $rating;
mysql_close($dbh);
В итоге получаем строку с ID ресурсов отсортированных по vote_total.
Далее организуем вывод ресурсов через getResources:
[[!getResources?
&tpl=`toppost`
&parents=`33`
&sortby=`FIELD(modResource.id, [[!getVote]])`
&sortdir=`ASC`
&limit=`6`
&showHidden=`0`
&hideContainers=`1`
]]
По идее все работает, но дело в том что целью была сортировка статей по рейтингу, а vote_total это общий счет ресурса вне зависимости от числа проголосовавших. Т.е. теперь необходимо допилить сниппет Star_rating, чтобы он заносил, в свежесозданную колонку rating в базе данных, значение полученное от деления vote_total на vote_count. Здесь собственно и возникло затруднение на данный момент...
Затем можно будет только изменить критерий сортировки с vote_total на rating
[ed. note: tyrun444 last edited this post 14 years, 6 months ago.]