Требуются очки пользователя JomSocial

Я пытаюсь заставить систему UserPoints в JomSocial 2.8 работать как кредиты. Я хочу ТРЕБУЕТ определенное количество баллов, чтобы использовать правило. Прямо сейчас у них есть баллы «Дать» и «Вычесть», но нет возможности потребовать определенную сумму.

Может ли кто-нибудь указать мне решение, чтобы понять это. Я ищу либо плагин/расширение, либо идею логики того, как это разработать. Я Front End Developer со знанием PHP, поэтому любая помощь приветствуется!


person diskrim    schedule 16.04.2013    source источник


Ответы (2)


С небольшой помощью я нашел плагин для joomla, который интегрируется с jomsocial и kunena. Он называется AlphaUserPoints - www.alphaplug.com все, что мне нужно, и даже больше, со многими расширениями. Надеюсь, это поможет кому-то!

Изменить: это не полностью интегрируется с jomsocial, а это означает, что большинство действий при недостаточном количестве баллов не работают. Они вызываются ajax и не видны компоненту aup вовремя, чтобы остановить операцию.

person diskrim    schedule 16.04.2013

Я знаю, что это старый вопрос, но недавно у меня была точно такая же потребность. Посмотрев вокруг несколько дней, я решил разобраться в этом сам. Большинство из них взято из документов AUP, так что вот что вы делаете: Jomsocial 4.2 — последний релиз.

$preMessage = '';

        if (CLimitsLibrary::exceedDaily('photos', $my->id)) {

            $preMessage = JText::_('COM_COMMUNITY_PHOTOS_LIMIT_PERDAY_REACHED');

            $disableUpload = true;

        } else {

            $preMessage = JText::_('COM_COMMUNITY_PHOTOS_DEFAULT_UPLOAD_NOTICE');

            $disableUpload = false;

        }

Добавлять:

//AlphaUserPoints start
$api_AUP =  JPATH_SITE.DS.'components'.DS.'com_alphauserpoints'.DS.'helper.php';
if ( file_exists($api_AUP))
{
require_once ($api_AUP);            
}
//Alphauserpoints Get user points
    $user = & JFactory::getUser(); 
    $userid = $user->id ; 
    $totalPoints = AlphaUserPointsHelper::getCurrentTotalPoints( '', $userid  ); 
// Function to check if enough points
if ($totalPoints < 5) { // enter your Points Cost per Upload

            $preMessage = JText::_('COM_COMMUNITY_PHOTOS_LIMIT_POINTS_REACHED');

            $disableUpload = true;

        } else {

            $preMessage = JText::_('COM_COMMUNITY_PHOTOS_POINTS_UPLOAD_NOTICE');

            $disableUpload = false;

        }

Теперь переходим к строке 61601 — ищем:

if ($my->id == 0) {

            $tokenId = $jinput->request->get('token', '', 'NONE');

            $userId = $jinput->request->get('uploaderid', '', 'NONE');

            $my = CFactory::getUserFromTokenId($tokenId, $userId);

            $session = JFactory::getSession();

            $session->set('user', $my);

        }

Добавить после:

//AlphaUserPoints start
$api_AUP = JPATH_SITE.DS.'components'.DS.'com_alphauserpoints'.DS.'helper.php';
if ( file_exists($api_AUP))
{
require_once ($api_AUP);            
}
//Alphauserpoints Get user points
$user = & JFactory::getUser(); 
$userid = $user->id ; 
$totalPoints = AlphaUserPointsHelper::getCurrentTotalPoints( '', $userid  ); 
  if (CLimitsLibrary::exceedDaily('photos', $my->id)) {
  $this->_showUploadError(true, JText::_('COM_COMMUNITY_PHOTOS_LIMIT_PERDAY_REACHED'));
            return;
        }
// Function to check if enough points
    if ($totalPoints < 5) {
    $this->_showUploadError(true, JText::_('COM_COMMUNITY_PHOTOS_LIMIT_POINTS_REACHED'));
    return;
        }

Теперь перейдите к файлу langauge/en-GB/en-GB.com_community.ini и добавьте в любом месте:

COM_COMMUNITY_PHOTOS_LIMIT_POINTS_REACHED="You do not have enough points to upload images. Images are 5 points each."

Измените свое сообщение на то, что вы взимаете за баллы. Также убедитесь, что вы отрегулировали количество точек в коде. Вы также можете адаптировать и использовать этот код для загрузки видео или файлов.
Если кто-то сможет превратить его в устанавливаемый ПЛАГИН для AUP или JomSocial, это будет здорово.
Надеюсь, это поможет другим!

person Charlie Trig    schedule 10.05.2016