Форум русской поддержки Joomla!® CMS
05.12.2016, 06:25:48 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1] 2 3 4 5 6   Вниз
  Добавить закладку  |  Печать  
Автор

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

 (Прочитано 2919 раз)
0 Пользователей и 1 Гость смотрят эту тему.
mila_serdnaya
Завсегдатай
*****

Репутация: +3/-0
Offline Offline

Сообщений: 419


« : 27.01.2016, 23:17:58 »

Здравствуйте!
Хотим на сайте сделать систему баллов следующего вида:
1. Плюс балл за оставленный комментарий
2. Плюс балл за полученный комментарий
3. Плюс балл за за просмотр статьи (только новые просмотры)
4. Минус балл за публикацию статьи

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

Репутация: +32/-0
Offline Offline

Пол: Мужской
Сообщений: 394


« Ответ #1 : 28.01.2016, 09:08:39 »

Пока что столкнулись только с расширением AlphaUserPoints

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

Репутация: +3/-0
Offline Offline

Сообщений: 419


« Ответ #2 : 28.01.2016, 15:59:46 »

NewUsers, спасибо, будем сегодня пробовать. Подскажите, пожалуйста, а где можно посмотреть количество баллов, которые заработал пользователь? Или, иными словами, как их вывести во фронтенде на сайте? Создавать отдельный модуль? Или это можно сделать в профиле пользователя? (у нас комьюнити билдер)
Вы как эту задачу для себя решили?
Записан
NewUsers
Давно я тут
****

Репутация: +32/-0
Offline Offline

Пол: Мужской
Сообщений: 394


« Ответ #3 : 28.01.2016, 20:38:19 »

Подскажите, пожалуйста, а где можно посмотреть количество баллов, которые заработал пользователь?

Если надо вывести кол-во баллов пользователя в другом компоненте, используйте вот это...
Код
<?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
Завсегдатай
*****

Репутация: +3/-0
Offline Offline

Сообщений: 419


« Ответ #4 : 30.01.2016, 03: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, 16:55:58 от mila_serdnaya » Записан
mila_serdnaya
Завсегдатай
*****

Репутация: +3/-0
Offline Offline

Сообщений: 419


« Ответ #5 : 30.01.2016, 16:54:30 »

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


* Правило Читатель автору.JPG (111.54 Кб, 1252x838 - просмотрено 113 раз.)

* Правило Читатель автору_настройки.JPG (77.12 Кб, 1258x822 - просмотрено 98 раз.)
Записан
mila_serdnaya
Завсегдатай
*****

Репутация: +3/-0
Offline Offline

Сообщений: 419


« Ответ #6 : 30.01.2016, 20: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
Завсегдатай
*****

Репутация: +3/-0
Offline Offline

Сообщений: 419


« Ответ #7 : 30.01.2016, 23:52:37 »

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

Записан
mila_serdnaya
Завсегдатай
*****

Репутация: +3/-0
Offline Offline

Сообщений: 419


« Ответ #8 : 31.01.2016, 00:06:05 »

У второго пользователя появились баллы, которые ожидают утверждения. Их количество соответствует количеству просмотров, которые мы сделали.

Записан
mila_serdnaya
Завсегдатай
*****

Репутация: +3/-0
Offline Offline

Сообщений: 419


« Ответ #9 : 31.01.2016, 00:11:37 »

Заходим в панель управления AlphaUserPoints. Видим баллы, которые нужно утвердить.

Записан
mila_serdnaya
Завсегдатай
*****

Репутация: +3/-0
Offline Offline

Сообщений: 419


« Ответ #10 : 31.01.2016, 00:18:41 »

Утверждаем.Второму пользователю начисляются 6 баллов за 6 просмотров его статьи.

Записан
mila_serdnaya
Завсегдатай
*****

Репутация: +3/-0
Offline Offline

Сообщений: 419


« Ответ #11 : 31.01.2016, 00:27:41 »

Что нас не устраивает?
1. Нужно, чтобы работало Автоматическое утверждение баллов за просмотры статьи автора
2. Нужно, чтобы баллы начислялись только за новые просмотры (т.е. балл начисляется за просмотр статьи каждым новым пользователем).
-
Специалисты, просто пользователи программы AlphaUserPoints и знающие (или догадывающиеся) люди, подскажите, пожалуйста, что нужно сделать, чтобы заработало автоматическое утверждение баллов за просмотры?
Записан
mila_serdnaya
Завсегдатай
*****

Репутация: +3/-0
Offline Offline

Сообщений: 419


« Ответ #12 : 31.01.2016, 00:42:32 »

Так. Непонятно, что произошло, но автоматическое утверждение баллов (после всех наших манипуляций) заработало! =) Ура!

Записан
mila_serdnaya
Завсегдатай
*****

Репутация: +3/-0
Offline Offline

Сообщений: 419


« Ответ #13 : 31.01.2016, 01:01:33 »

Сейчас баллы начисляются за каждый просмотр статьи. Это означает, что любой пользователь может (по просьбе автора статьи) накрутить любое количество просмотров. Нам это не нужно.
Нам нужно, чтобы баллы начислялись только за новые просмотры (т.е. балл начисляется за просмотр статьи каждым новым пользователем).
-
Мы так понимаем, что нужно править код данного правила.
Начинаем думать: в настройках правила "Читатель автору" указано, что данное правило связано с уникальной функцией sysplgaup_reader2author. Это означает, что нам нужно править код этой функции. Начинаем искать папку на нашем сервере, где должна находиться эта функция.
Записан
mila_serdnaya
Завсегдатай
*****

Репутация: +3/-0
Offline Offline

Сообщений: 419


« Ответ #14 : 31.01.2016, 01: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
Профи
********

Репутация: +260/-8
Offline Offline

Пол: Мужской
Сообщений: 4570


Skype: renor_


« Ответ #15 : 31.01.2016, 11:43:51 »

Почитал Вашу тему: Вы сами спрашиваете-сами себе и отвечаете потом.
Скоро и мануал будет готовый!  Cheesy
Записан
vipiusss
Профи
********

Репутация: +260/-8
Offline Offline

Пол: Мужской
Сообщений: 4570


Skype: renor_


« Ответ #16 : 31.01.2016, 11:49:14 »

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

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

Записан
mila_serdnaya
Завсегдатай
*****

Репутация: +3/-0
Offline Offline

Сообщений: 419


« Ответ #17 : 31.01.2016, 18:23:52 »

vipiusss, спасибо за ответ.
"Новый" - это тот, кто ещё ни разу не смотрел. Как только пользователь посмотрел материал, он прекращает быть "новым". И нам нужно сделать, чтобы его дальнейшие просмотры материала не учитывались.
« Последнее редактирование: 31.01.2016, 18:27:29 от mila_serdnaya » Записан
mila_serdnaya
Завсегдатай
*****

Репутация: +3/-0
Offline Offline

Сообщений: 419


« Ответ #18 : 31.01.2016, 21:10:20 »

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

Репутация: +3/-0
Offline Offline

Сообщений: 419


« Ответ #19 : 31.01.2016, 21:32:32 »

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

Репутация: +343/-11
Offline Offline

Пол: Мужской
Сообщений: 3576


« Ответ #20 : 31.01.2016, 21:35:33 »

Никогда не работал с данным компонентом, но чисто по приведенному вами коду можно сказать, что фильтр посетителей по IP уже есть. Если не ошибаюь, то userpoints начисляется только 1 раз с каждого IP. Другое дело, что IP можно подменять.
Hits - это, опять же, если не ошибаюсь, не баллы.
Записан
vipiusss
Профи
********

Репутация: +260/-8
Offline Offline

Пол: Мужской
Сообщений: 4570


Skype: renor_


« Ответ #21 : 31.01.2016, 21:43:38 »

хотел помочь, посмотреть как у меня, а я себе не ставил для статей, а на вскидку не смогу так сразу.
И Хитс тут не причём.
И кстати, у них есть готовое бесплатное! правило для чтения материала:
http://www.alphaplug.com/index.php/downloads.html?func=fileinfo&id=50
Чем вас не устраивает?насколько я помню там можно указывать и валировать вариантами:разово прочтение или иные "пошлости"...

а если Custom read article, то у них 10$.
Вот что в нём-я не покупал.
« Последнее редактирование: 31.01.2016, 21:46:39 от vipiusss » Записан
mila_serdnaya
Завсегдатай
*****

Репутация: +3/-0
Offline Offline

Сообщений: 419


« Ответ #22 : 31.01.2016, 21:47:07 »

robert, спасибо за ответ!
Hits - это поле в джумловской таблице #__content, которое отвечает за количество просмотров материала.


*  hits в джумловской таблице content.JPG (137.5 Кб, 1271x823 - просмотрено 93 раз.)
Записан
mila_serdnaya
Завсегдатай
*****

Репутация: +3/-0
Offline Offline

Сообщений: 419


« Ответ #23 : 31.01.2016, 21:48:30 »

Поле Hits и таблицу #__content не трогаем, поняли.
Записан
mila_serdnaya
Завсегдатай
*****

Репутация: +3/-0
Offline Offline

Сообщений: 419


« Ответ #24 : 31.01.2016, 21:54:42 »

robert, мы с одного компьютера зашли на страницу с материалом. Нажали кнопку "обновить" 10 раз. После этого зашли на сайт как автор материала. Userpoints начислил 10 баллов. Если всё так, как Вы говорите, то должен был начислиться 1 балл.
-
Мы вчера проделали такую манипуляцию 2 раза. Сейчас пойдём повторим эти действия. Сделаем - отпишусь о результате.
Записан
mila_serdnaya
Завсегдатай
*****

Репутация: +3/-0
Offline Offline

Сообщений: 419


« Ответ #25 : 31.01.2016, 22:10:30 »

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


* Правило Читатель автору_1.JPG (111.81 Кб, 1252x838 - просмотрено 93 раз.)

* Правило Читатель автору_настройки_1.JPG (63.99 Кб, 1258x822 - просмотрено 93 раз.)
Записан
mila_serdnaya
Завсегдатай
*****

Репутация: +3/-0
Offline Offline

Сообщений: 419


« Ответ #26 : 31.01.2016, 22:13:26 »

vipiusss, прошли по ссылке, которую Вы оставили, скачали плагин. Сейчас попробуем его установить и посмотреть, что у него в настройках.
Записан
vipiusss
Профи
********

Репутация: +260/-8
Offline Offline

Пол: Мужской
Сообщений: 4570


Skype: renor_


« Ответ #27 : 31.01.2016, 22:15:05 »

Вы скачайте правило по моей ссылке, дефолтное правило отличается(не зря же его вынесли отдельно)
И помоему как раз в доп.функциях разница.
Вот честно не помню.Поставьте, удалите потом если что.
Записан
mila_serdnaya
Завсегдатай
*****

Репутация: +3/-0
Offline Offline

Сообщений: 419


« Ответ #28 : 31.01.2016, 22:38:20 »

robert, повторили наши действия: с одного компьютера зашли на страницу с материалом. Нажали кнопку "обновить" 10 раз. После этого зашли на сайт как автор материала. Userpoints начислил 10 баллов.
Также повторили эти действия с материалом другого пользователя. Userpoints также начислил 10 баллов. Выходит, в предустановленном правиле нет фильтра посетителей по IP, либо этот фильтр не работает.
Записан
robert
Профи
********

Репутация: +343/-11
Offline Offline

Пол: Мужской
Сообщений: 3576


« Ответ #29 : 31.01.2016, 22:46:54 »

Я не знаю этот компонент, делал предположение только по вашему коду. Выключите этот плагин и посмотрите, начислятся ли баллы.
Записан
Страниц: [1] 2 3 4 5 6   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet