Система баллов на сайте

  • 153 Ответов
  • 4538 Просмотров

0 Пользователей и 1 Гость просматривают эту тему.

*

mila_serdnaya

  • Завсегдатай
  • *****
  • 432
  • 3
Система баллов на сайте
« : 28.01.2016, 00:17:58 »
Здравствуйте!
Хотим на сайте сделать систему баллов следующего вида:
1. Плюс балл за оставленный комментарий
2. Плюс балл за полученный комментарий
3. Плюс балл за за просмотр статьи (только новые просмотры)
4. Минус балл за публикацию статьи

Пока что столкнулись только с расширением AlphaUserPoints, которое позволяет добавлять и вычитать баллы за различные действия на сайте.
С официального сайта скачали документацию для разработчика о том, как создавать свои правила (плагины) для расширения. Эта документация на английском языке.
Может быть, есть у кого-нибудь переведённая документация? Или какое-то руководство о том, как создавать собственные правила?

*

NewUsers

  • Завсегдатай
  • *****
  • 578
  • 46
Re: Система баллов на сайте
« Ответ #1 : 28.01.2016, 10:08:39 »
Пока что столкнулись только с расширением AlphaUserPoints

Молодец что выбрал именно этот компонент. Это самый лучший компонент для создания виртуальной валюты на сайте...
Создать правило в этом компоненте теперь уже просто. На странице списка правил есть кнопка создать. Создай новое правило операясь на уже существующее....

*

mila_serdnaya

  • Завсегдатай
  • *****
  • 432
  • 3
Re: Система баллов на сайте
« Ответ #2 : 28.01.2016, 16:59:46 »
NewUsers, спасибо, будем сегодня пробовать. Подскажите, пожалуйста, а где можно посмотреть количество баллов, которые заработал пользователь? Или, иными словами, как их вывести во фронтенде на сайте? Создавать отдельный модуль? Или это можно сделать в профиле пользователя? (у нас комьюнити билдер)
Вы как эту задачу для себя решили?

*

NewUsers

  • Завсегдатай
  • *****
  • 578
  • 46
Re: Система баллов на сайте
« Ответ #3 : 28.01.2016, 21:38:19 »
Подскажите, пожалуйста, а где можно посмотреть количество баллов, которые заработал пользователь?

Если надо вывести кол-во баллов пользователя в другом компоненте, используйте вот это...
Код: php
<?php
require_once JPATH_SITE.DS.'components'.DS.'com_alphauserpoints'.DS.'helper.php';
require_once $_SERVER['DOCUMENT_ROOT'].DS.'administrator'.DS.'components'.DS.'com_alphauserpoints'.DS.'assets'.DS.'includes'.DS.'functions.php';
$aup = AlphaUserPointsHelper::getUserInfo( '', $userid );
echo getFormattedPointsAdm($aup->points);

// переменная $userid содержит id текущего пользователя
// переменная $aup->points содержит кол-во баллов пользователя,
// но используя функцию getFormattedPointsAdm можно вывести кол-во баллов в разном виде,
// это можно изменить в настройках компонента...

?>

*

mila_serdnaya

  • Завсегдатай
  • *****
  • 432
  • 3
Re: Система баллов на сайте
« Ответ #4 : 30.01.2016, 04:40:57 »
Сделали тестовый сайт: установили на него Joomla 3.3.3, AlphaUserPoints 2.0.4 for Joomla 3.x.x и communitybuilder_2.0.12.
-
NewUsers, посмотрели правила, которые есть в AlphaUserPoints. Нашли одно правило, которое нам подходит - это "Присвоение баллов автору за прочтение его статьи" (нам нужно за каждый просмотр статьи (только новые просмотры) плюсовать 1 балл участнику). Количество баллов, которые нужно плюсовать, поставили.
Создали материал.
Создали второго участника и пошли смотреть на материал первого (сделали 7 просмотров материала).
Вернулись в аккаунт первого участника и пошли смотреть количество баллов. Количество баллов не изменилось. Правило почему-то не работает.
Подскажите, пожалуйста, где нам искать ошибку?
« Последнее редактирование: 30.01.2016, 17:55:58 от mila_serdnaya »

*

mila_serdnaya

  • Завсегдатай
  • *****
  • 432
  • 3
Re: Система баллов на сайте
« Ответ #5 : 30.01.2016, 17:54:30 »
Пытаемся разобраться, почему же у нас не добавляются баллы за просмотр статьи. Скачали с официального сайта документацию для разработчиков на английском языке, начали переводить её.
В ней сказано, что добавление нового правила состоит из двух шагов. Первый шаг - это добавление готового кода (API) в нужный компонент. У нас баллы должны начисляться за просмотр статьи. Скажите, пожалуйста, это означает, что нам нужно вставить API в компонент com_content?
Или у нас не добавляются баллы за просмотр по каким-то другим причинам? Странно, ведь это правило в компоненте изначально было...мы его активировали...может быть, мы его как-то не так активировали?
Скрины прикрепляем.

*

mila_serdnaya

  • Завсегдатай
  • *****
  • 432
  • 3
Re: Система баллов на сайте
« Ответ #6 : 30.01.2016, 21:58:31 »
В документации сказано, что есть метод, который добавляет баллы автору статьи, когда статья была прочитана кем-то на сайте.
Вот этот метод:

Код
$api_AUP = JPATH_SITE.DS.'components'.DS.'com_alphauserpoints'.DS.'helper.php';
if ( file_exists($api_AUP))
{
require_once ($api_AUP);
$aupid = AlphaUserPointsHelper::getAnyUserReferreID( $userID );
if ( $aupid ) AlphaUserPointsHelper::newpoints( 'function_name', $aupid );
}

function_name - это имя функции, которая должна добавлять баллы за просмотр статьи. Мы зашли в настройки правила "Читатель автору", в них прописано название этой функции: sysplgaup_reader2author

Изменяем метод, который мы указали выше с учётом полученной информации:

Код
$api_AUP = JPATH_SITE.DS.'components'.DS.'com_alphauserpoints'.DS.'helper.php';
if ( file_exists($api_AUP))
{
require_once ($api_AUP);
$aupid = AlphaUserPointsHelper::getAnyUserReferreID( $userID );
if ( $aupid ) AlphaUserPointsHelper::newpoints( 'sysplgaup_reader2author', $aupid );
}

Подскажите, пожалуйста, что нам теперь с этим кодом делать? Куда его вставлять?

*

mila_serdnaya

  • Завсегдатай
  • *****
  • 432
  • 3
Re: Система баллов на сайте
« Ответ #7 : 31.01.2016, 00:52:37 »
Продолжаем разбираться, почему не работает правило "Читатель автору".
-
В Правилах отжали кнопку Автоматическое утверждение. Затем от имени первого пользователя пошли смотреть статью второго пользователя. Сделали шесть просмотров.

*

mila_serdnaya

  • Завсегдатай
  • *****
  • 432
  • 3
Re: Система баллов на сайте
« Ответ #8 : 31.01.2016, 01:06:05 »
У второго пользователя появились баллы, которые ожидают утверждения. Их количество соответствует количеству просмотров, которые мы сделали.

*

mila_serdnaya

  • Завсегдатай
  • *****
  • 432
  • 3
Re: Система баллов на сайте
« Ответ #9 : 31.01.2016, 01:11:37 »
Заходим в панель управления AlphaUserPoints. Видим баллы, которые нужно утвердить.

*

mila_serdnaya

  • Завсегдатай
  • *****
  • 432
  • 3
Re: Система баллов на сайте
« Ответ #10 : 31.01.2016, 01:18:41 »
Утверждаем.Второму пользователю начисляются 6 баллов за 6 просмотров его статьи.

*

mila_serdnaya

  • Завсегдатай
  • *****
  • 432
  • 3
Re: Система баллов на сайте
« Ответ #11 : 31.01.2016, 01:27:41 »
Что нас не устраивает?
1. Нужно, чтобы работало Автоматическое утверждение баллов за просмотры статьи автора
2. Нужно, чтобы баллы начислялись только за новые просмотры (т.е. балл начисляется за просмотр статьи каждым новым пользователем).
-
Специалисты, просто пользователи программы AlphaUserPoints и знающие (или догадывающиеся) люди, подскажите, пожалуйста, что нужно сделать, чтобы заработало автоматическое утверждение баллов за просмотры?

*

mila_serdnaya

  • Завсегдатай
  • *****
  • 432
  • 3
Re: Система баллов на сайте
« Ответ #12 : 31.01.2016, 01:42:32 »
Так. Непонятно, что произошло, но автоматическое утверждение баллов (после всех наших манипуляций) заработало! =) Ура!

*

mila_serdnaya

  • Завсегдатай
  • *****
  • 432
  • 3
Re: Система баллов на сайте
« Ответ #13 : 31.01.2016, 02:01:33 »
Сейчас баллы начисляются за каждый просмотр статьи. Это означает, что любой пользователь может (по просьбе автора статьи) накрутить любое количество просмотров. Нам это не нужно.
Нам нужно, чтобы баллы начислялись только за новые просмотры (т.е. балл начисляется за просмотр статьи каждым новым пользователем).
-
Мы так понимаем, что нужно править код данного правила.
Начинаем думать: в настройках правила "Читатель автору" указано, что данное правило связано с уникальной функцией sysplgaup_reader2author. Это означает, что нам нужно править код этой функции. Начинаем искать папку на нашем сервере, где должна находиться эта функция.

*

mila_serdnaya

  • Завсегдатай
  • *****
  • 432
  • 3
Re: Система баллов на сайте
« Ответ #14 : 31.01.2016, 02:14:09 »
По такому пути: Z:\home\site\www\plugins\content\sysplgaup_reader2author на нашем виртуальном сервере находятся файлы, которые регулируют работу правила "Читатель автору".

В папке sysplgaup_reader2author содержатся 3 файла:
1.index.html
2.sysplgaup_reader2author.php
Спойлер
[свернуть]

3.sysplgaup_reader2author.xml
Спойлер
[свернуть]

Мы так понимаем, что нам нужно внести изменения в код файла sysplgaup_reader2author.php. Подскажите, пожалуйста, какие ограничения нам нужно поставить, чтобы баллы начислялись только за просмотры статьи новыми пользователями? На какую строку в коде нам нужно обратить внимание?


 

*

vipiusss

  • Профи
  • ********
  • 5508
  • 318
  • JoomlaNet
Re: Система баллов на сайте
« Ответ #15 : 31.01.2016, 12:43:51 »
Почитал Вашу тему: Вы сами спрашиваете-сами себе и отвечаете потом.
Скоро и мануал будет готовый!  :D
Миграция, установка, обновление версий Joomla  |  Создание сайтов "под ключ"  |  Эксклюзивные заглушки "offline"  |  Работа с "напильником" над шаблонами и расширениями

*

vipiusss

  • Профи
  • ********
  • 5508
  • 318
  • JoomlaNet
Re: Система баллов на сайте
« Ответ #16 : 31.01.2016, 12:49:14 »
Подскажите, пожалуйста, какие ограничения нам нужно поставить, чтобы баллы начислялись только за просмотры статьи новыми пользователями?

Не совсем тут понятно?!
А как у вас движок понимает, кто новый?
Лимит по времени после регистрации?
Что значит "новый"?
Или новый у вас тот, кто ещё ни разу не смотрел?

Миграция, установка, обновление версий Joomla  |  Создание сайтов "под ключ"  |  Эксклюзивные заглушки "offline"  |  Работа с "напильником" над шаблонами и расширениями

*

mila_serdnaya

  • Завсегдатай
  • *****
  • 432
  • 3
Re: Система баллов на сайте
« Ответ #17 : 31.01.2016, 19:23:52 »
vipiusss, спасибо за ответ.
"Новый" - это тот, кто ещё ни разу не смотрел. Как только пользователь посмотрел материал, он прекращает быть "новым". И нам нужно сделать, чтобы его дальнейшие просмотры материала не учитывались.
« Последнее редактирование: 31.01.2016, 19:27:29 от mila_serdnaya »

*

mila_serdnaya

  • Завсегдатай
  • *****
  • 432
  • 3
Re: Система баллов на сайте
« Ответ #18 : 31.01.2016, 22:10:20 »
Подскажите, пожалуйста, что нам нужно поменять в коде файла sysplgaup_reader2author.php, чтобы баллы начислялись только за уникальные просмотры?
Спойлер
[свернуть]

*

mila_serdnaya

  • Завсегдатай
  • *****
  • 432
  • 3
Re: Система баллов на сайте
« Ответ #19 : 31.01.2016, 22:32:32 »
Не совсем понятно, может быть нам нужно начать с того, чтобы внести изменения в таблицу #__content?
Сейчас в ней есть поле hits, которое отвечает за просмотры материала. Оно считает все просмотры. С одного IP-адреса можно накрутить хоть миллион просмотров.
Может, нам нужно добавить ещё одно поле, которое будет отвечать только за уникальные просмотры? Можно ли IP-адрес сделать этим полем?
Или таблицу #__content трогать не нужно и все изменения делать только в файле sysplgaup_reader2author.php?
« Последнее редактирование: 31.01.2016, 22:40:02 от mila_serdnaya »

*

robert

  • Профи
  • ********
  • 4002
  • 371
Re: Система баллов на сайте
« Ответ #20 : 31.01.2016, 22:35:33 »
Никогда не работал с данным компонентом, но чисто по приведенному вами коду можно сказать, что фильтр посетителей по IP уже есть. Если не ошибаюь, то userpoints начисляется только 1 раз с каждого IP. Другое дело, что IP можно подменять.
Hits - это, опять же, если не ошибаюсь, не баллы.
  • Не будь паразитом, сделай что-нибудь самостоятельно!
  • В личке и по Skype не даю советов.

*

vipiusss

  • Профи
  • ********
  • 5508
  • 318
  • JoomlaNet
Re: Система баллов на сайте
« Ответ #21 : 31.01.2016, 22:43:38 »
хотел помочь, посмотреть как у меня, а я себе не ставил для статей, а на вскидку не смогу так сразу.
И Хитс тут не причём.
И кстати, у них есть готовое бесплатное! правило для чтения материала:
http://www.alphaplug.com/index.php/downloads.html?func=fileinfo&id=50
Чем вас не устраивает?насколько я помню там можно указывать и валировать вариантами:разово прочтение или иные "пошлости"...

а если Custom read article, то у них 10$.
Вот что в нём-я не покупал.
« Последнее редактирование: 31.01.2016, 22:46:39 от vipiusss »
Миграция, установка, обновление версий Joomla  |  Создание сайтов "под ключ"  |  Эксклюзивные заглушки "offline"  |  Работа с "напильником" над шаблонами и расширениями

*

mila_serdnaya

  • Завсегдатай
  • *****
  • 432
  • 3
Re: Система баллов на сайте
« Ответ #22 : 31.01.2016, 22:47:07 »
robert, спасибо за ответ!
Hits - это поле в джумловской таблице #__content, которое отвечает за количество просмотров материала.

*

mila_serdnaya

  • Завсегдатай
  • *****
  • 432
  • 3
Re: Система баллов на сайте
« Ответ #23 : 31.01.2016, 22:48:30 »
Поле Hits и таблицу #__content не трогаем, поняли.

*

mila_serdnaya

  • Завсегдатай
  • *****
  • 432
  • 3
Re: Система баллов на сайте
« Ответ #24 : 31.01.2016, 22:54:42 »
robert, мы с одного компьютера зашли на страницу с материалом. Нажали кнопку "обновить" 10 раз. После этого зашли на сайт как автор материала. Userpoints начислил 10 баллов. Если всё так, как Вы говорите, то должен был начислиться 1 балл.
-
Мы вчера проделали такую манипуляцию 2 раза. Сейчас пойдём повторим эти действия. Сделаем - отпишусь о результате.

*

mila_serdnaya

  • Завсегдатай
  • *****
  • 432
  • 3
Re: Система баллов на сайте
« Ответ #25 : 31.01.2016, 23:10:30 »
vipiusss, спасибо за ответ!
Мы установили расширение AlphaUserPoints для Joomla 3. Вот ссылка: http://www.alphaplug.com/index.php/downloads.html?func=fileinfo&id=54
Установили это расширение. В нём уже изначально есть несколько правил, одно из которых мы и используем для начисления баллов за просмотры материала. Называется оно "Читатель автору".
Но начисляет оно баллы за все просмотры материала. А нам нужны только уникальные просмотры (один IP - один просмотр).
В настройках данного правила мы не нашли, где можно "указывать и валировать вариантами:разово прочтение или иные "пошлости"..."
Может быть, мы что-то пропустили?
Скрины прикрепляем.

*

mila_serdnaya

  • Завсегдатай
  • *****
  • 432
  • 3
Re: Система баллов на сайте
« Ответ #26 : 31.01.2016, 23:13:26 »
vipiusss, прошли по ссылке, которую Вы оставили, скачали плагин. Сейчас попробуем его установить и посмотреть, что у него в настройках.

*

vipiusss

  • Профи
  • ********
  • 5508
  • 318
  • JoomlaNet
Re: Система баллов на сайте
« Ответ #27 : 31.01.2016, 23:15:05 »
Вы скачайте правило по моей ссылке, дефолтное правило отличается(не зря же его вынесли отдельно)
И помоему как раз в доп.функциях разница.
Вот честно не помню.Поставьте, удалите потом если что.
Миграция, установка, обновление версий Joomla  |  Создание сайтов "под ключ"  |  Эксклюзивные заглушки "offline"  |  Работа с "напильником" над шаблонами и расширениями

*

mila_serdnaya

  • Завсегдатай
  • *****
  • 432
  • 3
Re: Система баллов на сайте
« Ответ #28 : 31.01.2016, 23:38:20 »
robert, повторили наши действия: с одного компьютера зашли на страницу с материалом. Нажали кнопку "обновить" 10 раз. После этого зашли на сайт как автор материала. Userpoints начислил 10 баллов.
Также повторили эти действия с материалом другого пользователя. Userpoints также начислил 10 баллов. Выходит, в предустановленном правиле нет фильтра посетителей по IP, либо этот фильтр не работает.

*

robert

  • Профи
  • ********
  • 4002
  • 371
Re: Система баллов на сайте
« Ответ #29 : 31.01.2016, 23:46:54 »
Я не знаю этот компонент, делал предположение только по вашему коду. Выключите этот плагин и посмотрите, начислятся ли баллы.
  • Не будь паразитом, сделай что-нибудь самостоятельно!
  • В личке и по Skype не даю советов.