We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 31246 ☆ A M B ☆
    • 428 Posts
    я никогда им не пользовался, но глянув код, я так понял, там нужно передавать идентификатор ресурса... т. привязка к ресурсу как идёт?
      Valentin Rasulov - Industrial design (Hobbies - Web Development)
      Development not standard projects on CMF MODx Revolution.
      Small sample of extensions
      • 39569
      • 9 Posts
      В итоге получилось, что я изначально неправильно думал. В общем все свелось к этому (сниппет [[!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.]
        • 31246 ☆ A M B ☆
        • 428 Posts
        Я же выше Вам привёл код и говорил, загляните в снипет и посмотрите...
        Зачем вы через одно место делаете, зачем соеденение создавать?
        Дело в принцепе хозяйское, нельзя сказать, что так не льзя как вы сделали, но нужно работать с имеющим материалом.

        $snippetPath = $modx->getOption('core_path').'components/star_rating/';
        $modx->addPackage('star_rating',$snippetPath.'model/');
        
        $docId = $modx->resource->get('id');
        
        $c = $modx->newQuery('starRating');
        $c->where(array('star_id' => $docId));
        if ($groupId != '') $c->where(array('group_id' => $groupId));
         
        $voteTotal = '';
        $starRating = $modx->getObject('starRating', $c);
        if($starRating){
              $voteTotal =$starRating->vote_total;
        }
        return $voteTotal;


        ну а если его обрезать до вашего примера выше, то выйдет так
        $snippetPath = $modx->getOption('core_path').'components/star_rating/';
        $modx->addPackage('star_rating',$snippetPath.'model/');
        $docId = $modx->resource->get('id');
        $starRating = $modx->getObject('starRating', array('star_id' => $docId));
        $voteTotal = isset($starRating) ? $starRating->vote_total : '';
        return $voteTotal;
        [ed. note: valikras last edited this post 14 years, 6 months ago.]
          Valentin Rasulov - Industrial design (Hobbies - Web Development)
          Development not standard projects on CMF MODx Revolution.
          Small sample of extensions
          • 39569
          • 9 Posts
          Уметь бы еще с ним работать как следует =)) К тому же Вы даете код на получение значения vote_total, а я уже объяснил что оно мне не нужно. Но это уже не по теме =)) [ed. note: tyrun444 last edited this post 14 years, 6 months ago.]
            • 31246 ☆ A M B ☆
            • 428 Posts
            я согласен, что вам после Ево легче как вы привели код. Я же и говорю, никто не запрещайт использовать PDO.
            А работать - нужно время, я когда начал вообще с Рево работать (с Ево я не работал), так там вообще мраки были, тупо SQL.... и пхп...
              Valentin Rasulov - Industrial design (Hobbies - Web Development)
              Development not standard projects on CMF MODx Revolution.
              Small sample of extensions