Награждение Пользователей

Изменить , добавить условия получения награды

 
Посетитель
small user social cms
Сообщений: 68
Здравствуйте Уважаемые Пользователи Инстанта!!!
Подскажите в каком файле можно изменить или добавить условия награждение пользователей сайта - версия 1.10.6
В данный момент есть:
За комментарии
За сообщения на форуме
За опубликованные статьи
За одобренные записи в блоге
За баллы личной кармы
За фотографии в общих альбомах
За фотографии в личном альбоме

И вот появилась такая необходимость добавить еще несколько условий наград :
Например, За приглашенных 10 друзей ,
За добавление 500 роликов,
За ежедневное посещение сайта на протяжении месяца.
Может у кого есть еще другие варианты ... для награды своих пользователей.
Заранее благодарен Всем за добрые и полезные советы.
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатийПочетный донор проекта
Сообщений: 2610
Есть такой файлик \core\classes\user.class.php
В нем есть функция public static function checkAwards
Спойлер
А в файлике \admin\components\autoawards\backend.php настраиваются в админке условия автовыдачи наград:

Спойлер
Поэтому есть такая мысль, что можно добавить в юзеркласс что-нибудь типа $p_friends = $inDB->rows_count('cms_user_friends', "to_id='$user_id'", 'to_id'); а в бэкенде автоавардзов добавить количество друзей для получения награды $p_friends = cmsCore::request('p_friends', 'int', 0);
Редактировалось: 2 раз (Последний: 14 мая 2015 в 12:57)
Реклама
cms
Посетитель
small user social cms
Сообщений: 68
HiAndy:

Есть такой файлик \core\classes\user.class.php
В нем есть функция public static function checkAwards
[spoiler=Спойлер]
Код PHP:
  1. /**
  2.   * Проверяет условия получения наград и выдает награду пользователю, если нужно
  3.   * @param int $user_id
  4.   * @return bool
  5.   */
  6. public static function checkAwards($user_id=0){
  7.  
  8. if (!$user_id){ return false; }
  9.  
  10. $inDB = cmsDatabase::getInstance();
  11.  
  12. $awards = self::getAutoAwards();
  13. if (!$awards){ return false; }
  14.  
  15. $p_content = $inDB->rows_count('cms_content', "user_id='$user_id' AND published = 1");
  16. $p_comment = $inDB->rows_count('cms_comments', "user_id='$user_id' AND published = 1");
  17. $p_blog = $inDB->rows_count('cms_blog_posts', "user_id='$user_id' AND published = 1");
  18. $p_forum = $inDB->rows_count('cms_forum_posts', "user_id='$user_id'");
  19. $p_photo = $inDB->rows_count('cms_photo_files', "user_id='$user_id' AND published = 1");
  20. $p_privphoto = $inDB->rows_count('cms_user_photos', "user_id='$user_id'");
  21. $p_karma = $inDB->get_field('cms_user_profiles', "user_id='$user_id'", 'karma');
  22.  
  23. foreach ($awards as $award) {
  24.  
  25. if ($inDB->rows_count('cms_user_awards', "user_id = '$user_id' AND award_id = '{$award['id']}'")) { continue; }
  26.  
  27. $granted = ($award['p_content']
  28.  

Чего еще видать не хватает ... так как в админке не появилась вообще ничего нового.
Модератор
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 1675
Только на днях обсуждали в этой теме
«Главное “настрой”! И всё настроиться…» © ) Их знают все! А вы?
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатийПочетный донор проекта
Сообщений: 2610
Vladslav Li,
Известно, чего не хватает. smile
Оформить все это в виде новой формы ввода.
В \admin\components\autoawards\backend.php добавьте после привфото новую таблицу:

Спойлер
А в \languages\ru\admin\components\autoawards.php добавьте про друзей:

Спойлер
После еще в таблицу cms_user_autoawards добавить строку p_friends
Получается так:

Спойлер
Посетитель
small user social cms
Сообщений: 68
HiAndy:

Vladslav Li,
Известно, чего не хватает. smile
Оформить все это в виде новой формы ввода.
В \admin\components\autoawards\backend.php добавьте после привфото новую таблицу:

[spoiler=Спойлер]
Код PHP:
  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
[/spoiler]

А в \languages\ru\admin\components\autoawards.php добавьте про друзей:

[spoiler=Спойлер]
Код PHP:
  1. $_LANG['AD_PUBLIC_PHOTOS'] ='фотографий в общих альбомах';
  2. $_LANG['AD_PRIVATE_PHOTOS'] ='фотографий в личном альбоме';
  3. $_LANG['AD_FRIENDS'] ='друзей';
[/spoiler]

После еще в таблицу cms_user_autoawards добавить строку p_friends
Получается так:

[spoiler=Спойлер]
Награждение Пользователей
[/spoiler]

Спасибо Вам Добрый Человек!!! Все получилось именно так , как у Вас на скрине ... теперь буду пробовать пригласить, посмотреть как работать будет, но мне по сути и надо было просто дополнительные поля сделать.
Еще раз Вам благодарен от души , за Вашу поддержку ...

Mike - Вам тоже огромное спасибо за подсказку, я просто реально не видел этой темы, так бы не создавал новую.
На этом тему закрываю - Вопрос решен. v
В начало страницы
Предыдущая темаСледующая тема Перейти на форум: