А

Александр

+731
Репутация
15744
Рейтинг
#1 13 июля 2010 в 12:31

скорей всего это настройки сервера)))


но о единичных личных приходят же ..!?


Ребята, чего гадать??? При массовой рассылке уведомления на почту не приходят! Двиг не умеет делать этого!
Причем тут сервер!
#2 13 июля 2010 в 12:10
Нет вру!

Вот так!

  1. $user_sql = "UPDATE cms_users u,
  2. {$info['target_table']} t
  3. SET u.rating = u.rating + ({$points}*{$info['user_weight']})
  4. WHERE u.id = t.user_id AND t.id = '$item_id'
  5. ";
#3 13 июля 2010 в 01:57
modules\mod_comments\module.php

Вместо
  1. echo '<div><a class="mod_com_userlink" href="'.$user_url.'">'.$author.'</a> &#8594; ';
Напиши

  1. echo '<div><a class="mod_com_userlink" href="'.$user_url.'">'.usrImage($con['user_id']).'</a>';
#4 13 июля 2010 в 01:50
После такого исправления вроде рейтинг стал прибавляться предсказуемо. И именно тому, кто писал пост/коммент.
#5 13 июля 2010 в 01:41
В файле lib_karma.php ошибка в запросе в базу, приводящая к неправильному пополнению
столбца rating в таблице com_users !!!!

Ошибочный запрос!!!


  1. //получаем информацию о цели
  2. $info = $inDB->get_fields('cms_rating_targets', "target='{$target}'", '*');
  3.  
  4. //если нужно, изменяем рейтинг автора цели
  5. if ($info['is_user_affect'] && $info['user_weight'] && $info['target_table']){
  6.  
  7. $user_sql = "UPDATE cms_users u,
  8. {$info['target_table']} t
  9. SET u.rating = u.rating + ({$points}*{$info['user_weight']})
  10. WHERE t.user_id = u.id";
  11.  
  12. $inDB->query($user_sql);
  13.  
  14. }



Правильный запрос!!!


  1. //получаем информацию о цели
  2. $info = $inDB->get_fields('cms_rating_targets', "target='{$target}'", '*');
  3.  
  4. //если нужно, изменяем рейтинг автора цели
  5. if ($info['is_user_affect'] && $info['user_weight'] && $info['target_table']){
  6.  
  7. $user_sql = "UPDATE cms_users u,
  8. {$info['target_table']} t
  9. SET u.rating = u.rating + ({$points}*{$info['user_weight']})
  10. WHERE u.id = t.user_id AND t.id = '$item_id'
  11. LIMIT 1";
  12.  
  13. $inDB->query($user_sql);
  14.  
  15. }
#6 12 июля 2010 в 23:56
Я тут вообще не понимаю. Запутался. В user.class.php есть такая функция!!!
  1.  
  2. /**
  3.   * Возвращает рейтинг пользователя
  4.   * @param int $user_id
  5.   * @return int
  6.   */
  7. public static function getRating($user_id) {
  8.  
  9. $inDB = cmsDatabase::getInstance();
  10.  
  11. $sql = "SELECT SUM( r.points ) AS rating
  12. FROM cms_ratings r
  13. LEFT JOIN cms_content c ON r.item_id = c.id AND r.target = 'content'
  14. LEFT JOIN cms_photo_files f ON r.item_id = f.id AND r.target = 'photo'
  15. LEFT JOIN cms_blog_posts p ON r.item_id = p.id AND r.target = 'blogpost'
  16. WHERE c.user_id = $user_id OR f.user_id = $user_id OR p.user_id = $user_id";
  17.  
  18. $result = $inDB->query($sql);
  19.  
  20. if (!$inDB->num_rows($result)){ return 0; }
  21.  
  22. $data = $inDB->fetch_assoc($result);
  23.  
  24. return $data['rating'] * 5;
  25.  
  26. }
  27.  
В двух словах она собирает инфу с фото, блога и статей. Из этого формирует рейтинг! Комменты идут боком...

Но есть еще и в таблице cms_users такой столбец rating. Так вот в него и добавляет рейтинг при плюсовке коментов, голосовании за блог и т.п.
При этом вызывается функция cmsKarma!
Так что подразумевается под рейтингом???
Инфа, которую смогла собрать функция getRating
или тупо вывести из cms_users значение rating????

Если второе — так зачем тогда функция getRating. Или она со старой версии тянется???

Если так — то для чего ее вызывать в components\users\frontend.php ????????????
#7 12 июля 2010 в 22:36
Хотелось бы услышать ответ от разработчиков по этому вопросу. Объясните, Уважаемые…
#8 12 июля 2010 в 22:31
Ага, только посмотри в самом верху в шаблоне должны быть такие строки!
  1.  
  2. <?php
  3. if(!defined('VALID_CMS')) { die('ACCESS DENIED'); }
  4. $inUser = cmsUser::getInstance();
  5. ?>
#9 12 июля 2010 в 19:36
А давай я помогу!

Вот смотри. Сам по себе модуль "Новое в Блогах" написан с ошибкой. Запрс в базу немного некорректный.
Если в настройках модуля в Админке выставить: "Формат имени личных блогов: Имя пользователя";
То перейдя к модулю нас ждет разочарование! Можешь убедиться сам.
Да и LIMIT 50 смущает… У нас же в настройках указывается сколько надо выводить записей...


Если есть желание поправить это — скачай Архив и скопируй к себе с заменой.


Если хочется чтоб вместо имени пользователя выводился Аватар, скачай ЭТОТ АРХИВ и скопируй с заменой!

Не забываем про CACHE!!! И в настройках пишем Формат имени личных блогов: Имя пользователя"
#10 12 июля 2010 в 18:07

Давай похимичим....

laugh

В файле components\board\frontend.php

  1.  
  2. /////////////////////////////// EDIT BOARD ITEM //////////////
  3. if ($do=='edititem'){
  4.  
  5. ......................
  6. .............................
  7. ..................................
  8.  
Вместо строчки

  1.  
  2. $content = $inCore->request('content', 'str', '');
  3.  
Напиши

  1.  
  2. $content = $inCore->request('content', 'html', '');
  3.  

И наконец, в шаблоне в com_board_edit.tpl

Вместо

  1. <textarea name="content" style="width:400px" rows="5" id="content">{$content}</textarea>
Надо

  1. {wysiwyg name='content' value=$content height=300 width='100%' toolbar='Basic'}

Все.

smoke
#11 12 июля 2010 в 16:59
Я так понимаю речь идет о универсальном каталоге?

Если ДА — Поправь шаблон. com_catalog_cats.tpl

Вместо:
  1. <li class="uc_cat_item"><a href="/catalog/{$cat.id}">{$cat.title}</a> ({$cat.content_count})</li>
Надо:
  1. <li class="uc_cat_item"><a href="/catalog/{$cat.id}">{$cat.title}</a></li>
#12 12 июля 2010 в 16:41
<a href="/users/<?php echo $inUser->login; ?>" id="ht_profile">Мой профиль</a>
#13 12 июля 2010 в 16:39
Обратил внимание как вызывается рейтинг в шаблоне.

Как? — Да никак!

По крайней мере я так и не догнал, откуда его тянет шаблон!
Сразу оговорюсь. Зрение у меня плохое, мож че и пропустил.

Вот пример: файл com_users_pofile.tpl

  1. <div class="rating">
  2. <div class="title">{$LANG.RATING}</div>
  3. <div class="value">{$usr.user_rating}</div>
  4. </div>
А в \components\users\frontend.php
найдем строку отвечающую за подсчет рейтинга и вывод его в шаблон.

  1. $usr['rating'] = cmsUser::getRating($id);
И что мы отдаем в шаблон???????????????????????

Такая же загвоздка (МОГУ ОШИБАТЬСЯ!!! — НОГАМИ НЕ ПИНАТЬ!) при выводе списка пользователей.

Вот мое решение, но его не проверял. Желающие рискнуть — сделайте BACKUP своих файлов!




Должно быть так. См. коммент "// Выводим рейтинг"


  1. /////////////////////////////// VIEW USERS LIST ////////////
  2. if ($do=='view'){
  3.  
  4. ...................
  5. .......................
  6. ..........................
  7.  
  8.  
  9.  
  10. if ($is_users){
  11. while($usr = $inDB->fetch_assoc($result)){
  12. $rownum++;
  13. $usr['avatar'] = usrLink(usrImageNOdb($usr['id'], 'small', $usr['imageurl'], $usr['is_deleted']), $usr['login'], $menuid);
  14. $usr['nickname'] = cmsUser::getProfileLink($usr['login'], $usr['nickname']);
  15. $usr['flogdate'] = $inCore->dateFormat($usr['flogdate'], true, true);
  16. $usr['status'] = usrStatusList($usr['id'], $usr['flogdate'], false, $usr['gender']);
  17. $usr['num'] = $rownum + ($page-1)*$perpage;
  18. $usr['rating'] = cmsUser::getRating($usr['id']); // Выводим рейтинг
  19. if (($orderby!='karma' || $orderto!='asc') || strip_tags($usr['karma'])<0){
  20. $users[] = $usr;
  21. }
  22. }
  23. }
  24.  
И вниз по тексту...



  1. /////////////////////////////// VIEW PROFILE ///////////
  2. if ($do=='profile'){
  3. .......................................
  4. ...................................
  5. ...........................
  6.  
Вместо строки

  1. $usr['rating'] = cmsUser::getRating($id);

Напишем такую
  1. $usr['user_rating'] = cmsUser::getRating($usr['id']);
#14 поменять название компонента 11 июля 2010 в 18:43

но в глубинометре всё равно отображается старое название


Админка — Меню — Клубы — переименовать (например Группы)
Должно поправиться laugh
#15 10 июля 2010 в 17:01

Где я могу отредактировать то? что отвечает за вывод добавления статей?


com_content_edit.tpl
🍪Мы используем файлы cookie для работы сайта. Читать подробнее.