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

savosik

  • Осваиваюсь на форуме
  • 42
  • 1 / 0
Здравствуйте уважаемые форумчане.
Я решил продавать своим социалистам (jomsociаl) баллы или поинты. Порылся в паутине решений готовых не нашел.
Компонент AlphaUserPoints не устраивает т.к. не интегрируется постоянно дописки с API везде делать, свои рулзы для поинтов  у него  и прочий шутняк.

Купоны решил продавать в VirtueMart  как скачиваемый товар, который исчезает после скачки... ну естественно в скачиваемом товаре будет лежать картинка с купоном который нужно ввести. Благо VirtueMart RE много платежных систем поддерживает, теперь уже и СМС, т.е. купить купон у меня смогут.

Теперь самый животрепещущий вопрос... нужен модуль, который читал бы купон, сверял со сгенерированными в админке купонами, и добавлял социалисту очков.
Может быть я уже хожу по кругу, но решение я вижу такое.

Ставим злополучный AlphaUserPoints в котором есть генератор купонов (ради него и ставим, остальное в бэк-энде можно удалить чтоб глаза не мозолило своей нефункциональностью)http://www.alphaplug.com/index.php/downloads.html?func=download&id=10&chk=8b7735f0a588a6a9d8e8d21957b041c0&no_html=1
К нему модуль во фронтэнд http://www.alphaplug.com/index.php/downloads.html?func=startdown&id=24
Генерируем пару купонов в админке AlphaUserPoints... -купоны сгенерились.
Казалось пользователь может вводить купон и получать поинты себе в JomSocial, а нет! >:( Поинты начисляются в этот гадкий AlphaUserPoints, который к черту не нужен.
Теперь вопрос! !==================================================
Нужно доработать вышеизложенный модуль, чтоб он добавлял поинты не своему компоненту AlphaUserPoint, а добавлял поинты нашей Jomsocial
==
Посмотрел код модуля, у тут меня хватило, что знаний не хватает... ==
Модуль состоит из      mod_alphauserpoints_couponcode.php   и      helper.php
вот текста каждого соответственно:
 
Цитировать
defined('_JEXEC') or die('Restricted access');

// Include the syndicate functions only once
require_once (dirname(__FILE__).DS.'helper.php');

if ( JRequest::getVar('modAUP_CPsCouponValue', '', 'post', 'string') ) {
   $coupon = trim(JRequest::getVar('modAUP_CPsCouponValue', '', 'post', 'string'));
   if ( $coupon ) modAlphaUserPointsCouponCodeHelper::checkcoupon($params, $coupon);
}
require(JModuleHelper::getLayoutPath('mod_alphauserpoints_couponcode'));

?>

И
Цитировать
defined('_JEXEC') or die('Restricted access');

class modAlphaUserPointsCouponCodeHelper {

   function checkcoupon(&$params, $coupon) {
      global $mainframe;
      
      // check if user is logged in      
      $user = & JFactory::getUser();
      if ( !$user->id )
      {
         echo "<script> alert('".JText::_( 'MODAUP_CP_YOU_MUST_BE_LOGGED' )."'); </script>";
         return;
      }
      
      // insert API AlphaUserPoint
      $api_AUP = JPATH_SITE.DS.'components'.DS.'com_alphauserpoints'.DS.'helper.php';
      if ( file_exists($api_AUP))
      {
         require_once ($api_AUP);   
         
         $db =& JFactory::getDBO();
         
         $nullDate   = $db->getNullDate();
         $date =& JFactory::getDate();
         $now  = $date->toMySQL();
         
         $query = "SELECT * FROM #__alpha_userpoints_coupons WHERE `couponcode`='$coupon' AND (`expires`>='$now' OR `expires`='0000-00-00 00:00:00')";
         $db->setQuery( $query );
         $result  = $db->loadObjectList();
         if ( $result )
         {         
            $resultCouponExist = 0;
            // active user      
            $referrerid = @$_SESSION['referrerid'];
            
            // check if public or private coupon
            if ( !$result[0]->public )
            {
               // private -> usable once per one user
               $query = "SELECT count(*) FROM #__alpha_userpoints_details WHERE `keyreference`='$coupon'";
               $db->setQuery( $query );
               $resultCouponExist = $db->loadResult();
               if ( !$resultCouponExist )
               {
                  // insert points
                  AlphaUserPointsHelper::newpoints( 'sysplgaup_couponpointscodes', $referrerid, $result[0]->couponcode, $result[0]->description, $result[0]->points );
               }
               else
               {
                  $mainframe->enqueueMessage(JText::_('MODAUP_CP_THIS_COUPON_WAS_ALREADY_USED'));
               }
            }
            elseif ( $result[0]->public )
            {
               // public -> usable once per all users
               $keyreference = $coupon . "##" . $user->id;
               $query = "SELECT count(*) FROM #__alpha_userpoints_details WHERE `keyreference`='$keyreference'";
               $db->setQuery( $query );
               $resultCouponExist = $db->loadResult();
               if ( !$resultCouponExist )
               {
                  // insert points                  
                  AlphaUserPointsHelper::newpoints( 'sysplgaup_couponpointscodes', $referrerid, $keyreference, $result[0]->description, $result[0]->points );
               }
               else
               {
                  $mainframe->enqueueMessage(JText::_('MODAUP_CP_THIS_COUPON_WAS_ALREADY_USED'));
               }            
            }
         }
         else
         {
            $mainframe->enqueueMessage(JText::_('MODAUP_CP_PLEASE_CHECK_YOUR_COUPON'));
            return;
         }      
      }
   }
}
?>

Чувствую тут нужно строчку поменять или дописать, чтоб модуль проверял купоны у своего компонента, но поинты записывал в базу JomSocial,  стало быть нужно
найти как это делаеться для JomSocial т.е. добавляются юзеру поинты и вбить в этот модуль... помогите братцы! проект горит! :'( !
*

savosik

  • Осваиваюсь на форуме
  • 42
  • 1 / 0
Re: JomSocial продажа поинтов (points)
« Ответ #1 : 08.02.2010, 01:54:12 »
Цитировать
{
                  // insert points                 
                  AlphaUserPointsHelper::newpoints( 'sysplgaup_couponpointscodes', $referrerid, $keyreference, $result[0]->description, $result[0]->points );
               }
походу эту строчку как-то надо кастомизировать...
*

Zombeee

  • Захожу иногда
  • 328
  • 55 / 3
Re: JomSocial продажа поинтов (points)
« Ответ #2 : 08.02.2010, 10:20:31 »
скок платишь? :)
*

DKsN

  • Захожу иногда
  • 258
  • 15 / 0
  • [BODY]
Re: JomSocial продажа поинтов (points)
« Ответ #3 : 08.02.2010, 11:17:35 »
скок платишь? :)
100 поинтов :)
*

savosik

  • Осваиваюсь на форуме
  • 42
  • 1 / 0
Re: JomSocial продажа поинтов (points)
« Ответ #4 : 08.02.2010, 12:32:14 »
скок платишь? :)
платят на платной ветке, здесь бесплатная. код выложу всем.
*

Hansik

  • Захожу иногда
  • 95
  • 12 / 0
Re: JomSocial продажа поинтов (points)
« Ответ #5 : 08.02.2010, 12:46:04 »
Тут по хорошему надо дописать JomSocial. Добавить страницу активизации купона. Которая будет из БД брать номер купона и сверять его с введеным. И реализовать еще кучу проверок. Боюсь за бесплатно такую фигню никто делать не будет, т.к. мало кому нужна.
*

savosik

  • Осваиваюсь на форуме
  • 42
  • 1 / 0
Re: JomSocial продажа поинтов (points)
« Ответ #6 : 08.02.2010, 12:51:40 »
зачем дописки  - я предложил вариант. но только модуль от alphauserpoint кидает эти поинты своему компоненту, а не обновляет поинты юзверя.
дайте мне строчку от JomSocial которая добавляет юзерям поинты вот что только мне и нужно... зачем платные дописки переписки... и прочее... генератор купонов есть, модуль ввода есть, коды есть, только нужно чтоб модуль кидал поинты в jomsocial.
*

savosik

  • Осваиваюсь на форуме
  • 42
  • 1 / 0
Re: JomSocial продажа поинтов (points)
« Ответ #7 : 08.02.2010, 12:55:31 »
т.к. мало кому нужна.
думаю ты не прав. смотри сайты знакомств - там все подарки платные, у меня же будет либерально, поинты можно заработать активностью., например написав сообщения в блоге и пр. ну а если влом то можно купить за купон. все справедливо. подарки на сайте подключены и работают, подарить их можно имея поинты.
*

savosik

  • Осваиваюсь на форуме
  • 42
  • 1 / 0
Re: JomSocial продажа поинтов (points)
« Ответ #8 : 08.02.2010, 12:56:46 »
 :D Вернемся же к теме :D
*

Hansik

  • Захожу иногда
  • 95
  • 12 / 0
Re: JomSocial продажа поинтов (points)
« Ответ #9 : 08.02.2010, 13:01:58 »
http://www.jomsocial.com/docs/User_Point_and_Activity_Stream

Советую прочитать, чтобы понять как работают поинты. Прямой функции добавления поинтов не нашел.
*

savosik

  • Осваиваюсь на форуме
  • 42
  • 1 / 0
Re: JomSocial продажа поинтов (points)
« Ответ #10 : 08.02.2010, 13:12:24 »
http://www.jomsocial.com/docs/User_Point_and_Activity_Stream
Спасибо кое что понял...
думаю в модуль запихнуть
Цитировать
include_once( JPATH_ROOT . DS . 'components' . DS . 'com_community' . DS . 'libraries' . DS . 'userpoints.php');
CuserPoints::assignPoint('your.action.string', 62);
  как я понимаю 62 -это id юзера.... эх... 
« Последнее редактирование: 08.02.2010, 13:17:44 от savosik »
*

Hansik

  • Захожу иногда
  • 95
  • 12 / 0
Re: JomSocial продажа поинтов (points)
« Ответ #11 : 08.02.2010, 13:18:15 »
Нет, вы не правы.
(Пока я вам писал ответ, вы поправили свое сообщение:) -как я понимаю 62 -это количество очков   )
Код
/**
* add points to user based on the action.
*/
function assignPoint( $action, $userId=null)
{

Первое - название действия, второе - айдиюзера.
СО вторым все ясно. А вот первое - это Action.


Я тут еще вспомнил, что есть CActivityStream - файл activities.php в libraries.
Там вот там есть функция: function add($activity, $params='', $points = 1){

}

$activity - объект stdClass с набором параметров.
Если судить по коду функции вот его параметры (объекта):
$activity->cmd
$activity->actor
$activity->target
$activity->title
$activity->content
$activity->app
$activity->cid
$activity->points

А вот пример из той Доки, что я дал ранее:
$act = new stdClass();
$act->cmd    = 'wall.write';
$act->actor    = $my->id;
$act->target    = 0; // no target
$act->title    = JText::_('{actor} write on {target} wall');
$act->content    = '';
$act->app    = 'wall';
$act->cid    = 0;
 
CFactory::load('libraries', 'activities');
CActivityStream::add($act);
*

savosik

  • Осваиваюсь на форуме
  • 42
  • 1 / 0
Re: JomSocial продажа поинтов (points)
« Ответ #12 : 08.02.2010, 13:25:38 »
так так ... начинаю разбираться...   думаю в рулзах написать пару рулов...  на 1, 5, 10, 50, 100  поинтов за рул.
блин.... такой тупняк в понедельник... а что кидать в модуль, условия прописывать млин... геморно...
неужели в каком хелпере или библиотеке не завалялась функция AddUserPoints? ;D
*

savosik

  • Осваиваюсь на форуме
  • 42
  • 1 / 0
Re: JomSocial продажа поинтов (points)
« Ответ #13 : 08.02.2010, 13:28:22 »
модуль сессию устанавливает см.код.   казалось бы дело в шляпе.  запросить id юзера, дать этому id еще поинтов..
у кого есть какие предложения кода в вышеприведенный модуль...
*

savosik

  • Осваиваюсь на форуме
  • 42
  • 1 / 0
Re: JomSocial продажа поинтов (points)
« Ответ #14 : 08.02.2010, 13:46:43 »
Залез в базу данных:
в таблице:
 jos_community_users

есть колонки:
Цитировать
userid     status   points   posted_on   avatar   thumb   invite   params   view   friendcount

что дописать в модуль, код которого я выложил в начале поста, чтоб этот модуль добавлял points в строке с нужным userid.

 !Чуйка у меня что все тривиально... PHP не знаю! :'(
*

Hansik

  • Захожу иногда
  • 95
  • 12 / 0
Re: JomSocial продажа поинтов (points)
« Ответ #15 : 08.02.2010, 13:57:20 »
Ухты..нашел тут такие вот строки. И все оказалось просто:)
Код
require_once( JPATH_ROOT . DS . 'components' . DS . 'com_community' . DS . 'libraries' . DS . 'core.php' );

...........

$points = CUserPoints::_getActionPoint($action, $aid); // ТУТ СТАВИШЬ КОЛИЧЕСТВО ТВОИХ КУПЛЕННЫХ ПОИНТОВ

$user =& CFactory::getUser($userId);
$points += $user->getKarmaPoint();
$user->_points = $points;
$user->save();


Это чисто добавление поинтов. Не проверял! Но должно работать.
*

savosik

  • Осваиваюсь на форуме
  • 42
  • 1 / 0
Re: JomSocial продажа поинтов (points)
« Ответ #16 : 08.02.2010, 14:06:14 »
 yes! спасибо сейчас попробую проверить...
*

savosik

  • Осваиваюсь на форуме
  • 42
  • 1 / 0
Re: JomSocial продажа поинтов (points)
« Ответ #17 : 08.02.2010, 14:31:12 »
Как ни странно - работает!
Код пользую такой..
Цитировать
<?php

defined('_JEXEC') or die('Restricted access');

class modAlphaUserPointsCouponCodeHelper {

   function checkcoupon(&$params, $coupon) {
      global $mainframe;
      
      // check if user is logged in      
      $user = & JFactory::getUser();
      if ( !$user->id )
      {
         echo "<script> alert('".JText::_( 'MODAUP_CP_YOU_MUST_BE_LOGGED' )."'); </script>";
         return;
      }
      
      // insert API AlphaUserPoint
      $api_AUP = JPATH_SITE.DS.'components'.DS.'com_alphauserpoints'.DS.'helper.php';
      if ( file_exists($api_AUP))
      {
         require_once ($api_AUP);   
         
         $db =& JFactory::getDBO();
         
         $nullDate   = $db->getNullDate();
         $date =& JFactory::getDate();
         $now  = $date->toMySQL();
         
         $query = "SELECT * FROM #__alpha_userpoints_coupons WHERE `couponcode`='$coupon' AND (`expires`>='$now' OR `expires`='0000-00-00 00:00:00')";
         $db->setQuery( $query );
         $result  = $db->loadObjectList();
         if ( $result )
         {         
            $resultCouponExist = 0;
            // active user      
            $referrerid = @$_SESSION['referrerid'];
            
            // check if public or private coupon
            if ( !$result[0]->public )
            {
               // private -> usable once per one user
               $query = "SELECT count(*) FROM #__alpha_userpoints_details WHERE `keyreference`='$coupon'";
               $db->setQuery( $query );
               $resultCouponExist = $db->loadResult();
               if ( !$resultCouponExist )
               {
                  // insert points
                  AlphaUserPointsHelper::newpoints( 'sysplgaup_couponpointscodes', $referrerid, $result[0]->couponcode, $result[0]->description, $result[0]->points );
                  require_once( JPATH_ROOT . DS . 'components' . DS . 'com_community' . DS . 'libraries' . DS . 'core.php' );
                  
                  $points=1;
                  $user   =& CFactory::getUser($userId);
                  $points   += $user->getKarmaPoint();
                  $user->_points = $points;
                  $user->save();
               }
               else
               {
                  $mainframe->enqueueMessage(JText::_('MODAUP_CP_THIS_COUPON_WAS_ALREADY_USED'));
               }
            }
            elseif ( $result[0]->public )
            {
               // public -> usable once per all users
               $keyreference = $coupon . "##" . $user->id;
               $query = "SELECT count(*) FROM #__alpha_userpoints_details WHERE `keyreference`='$keyreference'";
               $db->setQuery( $query );
               $resultCouponExist = $db->loadResult();
               if ( !$resultCouponExist )
               {
                  // insert points                  
                  AlphaUserPointsHelper::newpoints( 'sysplgaup_couponpointscodes', $referrerid, $keyreference, $result[0]->description, $result[0]->points );
                  require_once( JPATH_ROOT . DS . 'components' . DS . 'com_community' . DS . 'libraries' . DS . 'core.php' );
                  
                  $points=1;
                  $user   =& CFactory::getUser($userId);
                  $points   += $user->getKarmaPoint();
                  $user->_points = $points;
                  $user->save();
               }
               else
               {
                  $mainframe->enqueueMessage(JText::_('MODAUP_CP_THIS_COUPON_WAS_ALREADY_USED'));
               }            
            }
         }
         else
         {
            $mainframe->enqueueMessage(JText::_('MODAUP_CP_PLEASE_CHECK_YOUR_COUPON'));
            return;
         }      
      }
   }
}
?>

Как видите у меня насильно стоит $points =1

давайте теперь подумаем, что в вышеизложенном коде отвечает за возврат количества поинтов _из купона_
ну чтобы можно было писать $points =$колво_поинтов_из_купона
кое-что сейчас разберем и выложу сборку для пополнения поинтов через купоны!
*

Hansik

  • Захожу иногда
  • 95
  • 12 / 0
Re: JomSocial продажа поинтов (points)
« Ответ #18 : 08.02.2010, 14:38:01 »
$points=1;
заменить на
$points = $result[0]->points;
*

savosik

  • Осваиваюсь на форуме
  • 42
  • 1 / 0
Re: JomSocial продажа поинтов (points)
« Ответ #19 : 08.02.2010, 14:52:36 »
 *DRINK* ;D yes! Все работает на ура!
теперь урезаю бэкэнд alphauserpoints до одной кнопки "купоны"
руссифицирую модуль,  и Выложу на общее расмотрение этот кастом!
Спасибо всем!
*

savosik

  • Осваиваюсь на форуме
  • 42
  • 1 / 0
Re: JomSocial продажа поинтов (points)
« Ответ #20 : 08.02.2010, 17:08:43 »
а вот с бэкэндом от alphauserpoints черт ногу сломит... может кто сможет урезать до двух необходимых иконок users и cupons
*

Deni

  • Захожу иногда
  • 61
  • 2 / 0
Re: JomSocial продажа поинтов (points)
« Ответ #21 : 08.02.2010, 18:35:55 »
Блин. мужики, молдцы, дай бог вам сил довести это до конца))
*

Deni

  • Захожу иногда
  • 61
  • 2 / 0
Re: JomSocial продажа поинтов (points)
« Ответ #22 : 20.02.2010, 12:23:09 »
*DRINK* ;D yes! Все работает на ура!
теперь урезаю бэкэнд alphauserpoints до одной кнопки "купоны"
руссифицирую модуль,  и Выложу на общее расмотрение этот кастом!
Спасибо всем!

Есть какие ниудь новости? ))
*

savosik

  • Осваиваюсь на форуме
  • 42
  • 1 / 0
Re: JomSocial продажа поинтов (points)
« Ответ #23 : 26.02.2010, 17:50:27 »
нет... пока что никаких..... бэкэнд alfausers не обрезали... но хотя и так все отлично работает- модуль забирает у компонента alfausers  инфу о сгенерированном купоне и добавляет в жумсоциал юзеру поинты, а купон зачеркивает...одно что только хотелось бы бэкэнд до купонов обрезать - но там черт ногу сломит...
как работают купоны можно проверить на Odnokursniki(точка) BY 
*

Klaf

  • Захожу иногда
  • 58
  • 0 / 0
Re: JomSocial продажа поинтов (points)
« Ответ #24 : 28.02.2010, 09:38:07 »
А возможно сделать так, что бы вообще все поинты из AlphaUserPoints начислялись в JomSocial??
т.е. по всем правилам которые там есть.
*

Deni

  • Захожу иногда
  • 61
  • 2 / 0
Re: JomSocial продажа поинтов (points)
« Ответ #25 : 05.03.2010, 17:46:16 »
у меня странная ситуация, когда я поставил компонент AlphaUserPoints, очки в социалке для пользователей пропали совсем, т.е они есть. но заработать их правилами JS стало невозможно, правила переключились на AUP. Банальный вопрос )) -- Это нормально?
*

savosik

  • Осваиваюсь на форуме
  • 42
  • 1 / 0
Re: JomSocial продажа поинтов (points)
« Ответ #26 : 08.03.2010, 00:41:10 »
Если не работают правила JomSocial - видимо в настройках альфаюзерпоинтс указано интегрироваться с jomsocial... убери оттуда галочку и они должны жить своими жизнями но поотдельности... и альфаюзерпоинтс нужен будет только как генератор купонов...
*

Klaf

  • Захожу иногда
  • 58
  • 0 / 0
Re: JomSocial продажа поинтов (points)
« Ответ #27 : 10.04.2010, 16:21:06 »
У мну не работает :(
Скопировал код в helper.php, но ничерта :(
*

Mypagebg

  • Новичок
  • 4
  • 0 / 0
Re: JomSocial продажа поинтов (points)
« Ответ #28 : 10.04.2010, 18:59:53 »
Здраствуте ребята,
Я не говорю хорошо рускам язике, простите пожалеста для того :)

Сдес моя интеграция поинт систем Alphauserpoint и Jomsocial 1.6.285 и rules for AUP

http://www.mypagebg.com/Joomla-1-5/Joomla-уроци-и-хакове/125-AlphaUserPoints-и-Jomsocial-интеграция
« Последнее редактирование: 11.04.2010, 00:07:45 от Mypagebg »
*

Klaf

  • Захожу иногда
  • 58
  • 0 / 0
Re: JomSocial продажа поинтов (points)
« Ответ #29 : 10.04.2010, 23:08:32 »
Спасибо за информацию конечно, но разбираться на болгарском языке будет сложновато.... :)

На твоем сайте ссылка на файл не работает!
Залей его сюда!
« Последнее редактирование: 11.04.2010, 14:08:05 от Klaf »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

миграция с CommunityBuilder на JomSocial

Автор anthophyta

Ответов: 6
Просмотров: 3545
Последний ответ 22.03.2021, 13:27:40
от bizzy3
Интеграция JomSocial с компонентом голосований NorrCompetition

Автор Sulpher

Ответов: 0
Просмотров: 1883
Последний ответ 20.06.2018, 11:33:52
от Sulpher
Интеграция Kunena и JomSocial

Автор se_demon

Ответов: 100
Просмотров: 27842
Последний ответ 05.03.2016, 05:12:15
от Amigos
JAchievements - Система достижений пользователей социальной сети JomSocial

Автор foodgy

Ответов: 87
Просмотров: 18726
Последний ответ 29.01.2016, 10:31:27
от ubo
Модификация видео плагина на JomSocial

Автор artliffe

Ответов: 119
Просмотров: 33913
Последний ответ 16.03.2014, 16:48:39
от DenEremeii