Изменить рейтинг комментарии

ЕСТЬ РЕШЕНИЕ ЗАКРЫТО InstantCMS 2.X
#1 17 апреля 2018 в 06:27
за + давали не 1, а 0,5 и за минус так же в комментариях, где нужно поменять?
#2 17 апреля 2018 в 12:15

где нужно поменять ?

@gogem
В файле \system\controllers\comments\model.php переделываете функцию rateComment таким образом:
  1. public function rateComment($comment_id, $user_id, $score){
  2.  
  3. $this->insert('comments_rating', array(
  4. 'comment_id' => $comment_id,
  5. 'user_id' => $user_id,
  6. 'score' => $score/2
  7. ));
  8.  
  9. $this->filterEqual('id', $comment_id);
  10.  
  11. $this->increment('comments', 'rating', $score/2);
  12.  
  13. return true;
  14.  
  15. }
В файле \templates\default\js\comments.js 13 и 18 строки поменять так:
  1. $('#comments_widget .rating .buttons .rate-up').click(function(){
  2. return icms.comments.rate(this, 0.5);
  3. });
  4.  
  5. $('#comments_widget .rating .buttons .rate-down').click(function(){
  6. return icms.comments.rate(this, -0.5);
  7. });
В базе данных в таблице cms_comments поле rating меняете тип поля на float(11), в таблице cms_comments_rating поле score меняете тип поля на float(11).
#3 17 апреля 2018 в 13:21



значение float(11) ставлю в comments поле rating и в таблице comments_rating, он сохраняет, но все равно пустое оно, в комментах ставиться 0,5, когда страницу обновляешь, то пропадает

Ris
#4 17 апреля 2018 в 13:52
@gogem,
Ну тогда верните comments.js к первоначальному виду.
Тогда будет все наоборот. При голосовании показывается 1, а после обновления будет 0,5
#5 17 апреля 2018 в 14:05


@gogem,
Ну тогда верните comments.js к первоначальному виду.
Тогда будет все наоборот. При голосовании показывается 1, а после обновления будет 0,5

Ris
в комментах показывает 0.5, но рейтинг то все равно 1 зачитывается, смысл тогда
#6 17 апреля 2018 в 14:12

в комментах показывает 0.5, но рейтинг то все равно 1 зачитывается

@gogem
Кстати, а какой в этом вообще смысл изначально? Есть подозрение, что все это приведет к неработоспособности других функций движка и придется допиливать системные файлы еще в куче мест.
#7 17 апреля 2018 в 14:23


в комментах показывает 0.5, но рейтинг то все равно 1 зачитывается

@gogem
Кстати, а какой в этом вообще смысл изначально? Есть подозрение, что все это приведет к неработоспособности других функций движка и придется допиливать системные файлы еще в куче мест.

Ris

Я имел виду что в профиле отражается как 1, как бы на сайте контет будут делать пользователи, было бы честно если за коменты +- довало 0.5, а за новости 1+-
#8 17 апреля 2018 в 14:37

довало 0.5, а за новости 1+-

@gogem
Давайте за новости +2 Это сделать в сто раз проще.

\system\controllers\rating\actions\vote.php
  1. // Объединяем всю информацию о голосе
  2. $vote = array(
  3. 'user_id' => ($this->cms_user->id ? $this->cms_user->id : null),
  4. 'target_controller' => $target_controller,
  5. 'target_subject' => $target_subject,
  6. 'target_id' => $target_id,
  7. 'score' => ($direction == 'up' ? 2 : -2),
  8. 'ip' => sprintf('%u', ip2long(cmsUser::getIp()))
  9. );
#9 17 апреля 2018 в 14:58
Так и сделаю )спасибо большое за помощь)
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.