Ошибка при удалении поста в блоге

Минусуется рейтинг у другого блога

#1 28 сентября 2012 в 20:01
При удалении поста в блогах рейтинг удаляемого поста списывается НЕ с того блога в котором пост расположен, а с другого блога. Ошибка точно встречается в версиях 1.8 и 1.9, другие версии не смотрела.

Вызвано это тем, что в функции deletePost в blogs/model.php неправильно составлен sql-запрос
  1.  
  2. $sql = "SELECT p.blog_id as blog_id,
  3. r.total_rating as rating
  4. FROM cms_blog_posts p, cms_ratings_total r
  5. WHERE r.item_id = {$post_id} AND r.target='blogpost'
  6. LIMIT 1";
  7.  
В результате выводится не id блога в котором располагается удаляемый пост, а id другого блога.

Исправления:
Открываем blogs/model.php
Находим следующую часть кода (строки ориентировочно 980-990):
  1.  
  2. public function deletePost($post_id){
  3.  
  4. cmsCore::callEvent('DELETE_POST', $post_id);
  5.  
  6. $inCore = cmsCore::getInstance();
  7. $inCore->loadLib('tags');
  8. $inCore->loadLib('karma');
  9.  
Под этим кодом будет следующий код:
  1.  
  2. $sql = "SELECT p.blog_id as blog_id,
  3. r.total_rating as rating
  4. FROM cms_blog_posts p, cms_ratings_total r
  5. WHERE r.item_id = {$post_id} AND r.target='blogpost'
  6. LIMIT 1";
  7.  
Заменяем его на нижеприведённый код:
  1.  
  2. $sql = "SELECT p.blog_id as blog_id,
  3. r.total_rating as rating
  4. FROM cms_blog_posts p, cms_ratings_total r
  5. WHERE r.item_id = {$post_id} AND r.target='blogpost' AND p.id = {$post_id}
  6. LIMIT 1";
  7.  
===========================================

Ошибка номер 2:
При удалении поста в блоге с автора записи НЕ списывается рейтинг, заработанный на этом посте. Решение на данный момент кривое, потому не привожу.
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.