make Acajoom CB plugin save subscriptions on registration page
CB 1.2.2
Acajoom 5.1.0
CB plugin for Acajoom 1.2
file: components/com_comprofiler/plugin/user/plug_acajoomcbplugin/acajoom_cb.php
find the function saveRegistrationTab()
function saveRegistrationTab($tab, &$user, $ui, $postdata) {
global $ueConfig;
require_once(ACA_JPATH_ROOT_NO_ADMIN . '/administrator/components/com_acajoom/classes/class.acajoom.php');
$erro = new xerr( __FILE__ , __FUNCTION__ );
if ($user->user_id >0 ) {
$erro->ck = subscribers::updateOneSubscriber($user->user_id, $user );
if (!$erro->Eck(__LINE__ , '7002') ) {
$this->_setErrorMSG(_ACA_ERROR);
return;
}
}
return;
}
replace by:
function saveRegistrationTab($tab, &$user, $ui, $postdata) {
/*
global $ueConfig;
require_once(ACA_JPATH_ROOT_NO_ADMIN . '/administrator/components/com_acajoom/classes/class.acajoom.php');
$erro = new xerr( __FILE__ , __FUNCTION__ );
if ($user->user_id >0 ) {
$erro->ck = subscribers::updateOneSubscriber($user->user_id, $user );
if (!$erro->Eck(__LINE__ , '7002') ) {
$this->_setErrorMSG(_ACA_ERROR);
return;
}
}
*/
//get subscriptions from form as array
$subscriptions = JRequest::getVar('subscribed', null, 'post', 'array');
$subscriptions_temp = array();
while($subscription = each($subscriptions)){
$subscriptions_temp[] = $subscription['key'];
}
//if there are any subscriptions
if(count($subscriptions_temp)){
$user_id = $user->user_id;
$username = $user->username;
$email = $user->email;
//add user as subscriber
$database = JFactory::getDBO();
$database->setQuery( "INSERT INTO #__acajoom_subscribers SET user_id='$user_id', name='$username', email='$email', receive_htm='1', confirmed='1', params='' ");
$database->query();
//get subscribers id
//$subscriber_id = $database->insertid(); don't know why that does not work
$database->setQuery("SELECT id "
."FROM #__acajoom_subscribers "
."WHERE user_id='$user_id' "
."LIMIT 1 "
);
$rows = $database->loadObjectList();
foreach($rows as $row){
$subscriber_id = $row->id;
}
//add subscriptions
for($n = 0; $n < count($subscriptions_temp); $n++){
$subscription_id = $subscriptions_temp[$n];
$database->setQuery( "INSERT INTO #__acajoom_queue SET type='1', subscriber_id='$subscriber_id', list_id='$subscription_id' ");
$database->query();
}
}
return;
}
Acajoom 5.1.0
CB plugin for Acajoom 1.2
file: components/com_comprofiler/plugin/user/plug_acajoomcbplugin/acajoom_cb.php
find the function saveRegistrationTab()
function saveRegistrationTab($tab, &$user, $ui, $postdata) {
global $ueConfig;
require_once(ACA_JPATH_ROOT_NO_ADMIN . '/administrator/components/com_acajoom/classes/class.acajoom.php');
$erro = new xerr( __FILE__ , __FUNCTION__ );
if ($user->user_id >0 ) {
$erro->ck = subscribers::updateOneSubscriber($user->user_id, $user );
if (!$erro->Eck(__LINE__ , '7002') ) {
$this->_setErrorMSG(_ACA_ERROR);
return;
}
}
return;
}
replace by:
function saveRegistrationTab($tab, &$user, $ui, $postdata) {
/*
global $ueConfig;
require_once(ACA_JPATH_ROOT_NO_ADMIN . '/administrator/components/com_acajoom/classes/class.acajoom.php');
$erro = new xerr( __FILE__ , __FUNCTION__ );
if ($user->user_id >0 ) {
$erro->ck = subscribers::updateOneSubscriber($user->user_id, $user );
if (!$erro->Eck(__LINE__ , '7002') ) {
$this->_setErrorMSG(_ACA_ERROR);
return;
}
}
*/
//get subscriptions from form as array
$subscriptions = JRequest::getVar('subscribed', null, 'post', 'array');
$subscriptions_temp = array();
while($subscription = each($subscriptions)){
$subscriptions_temp[] = $subscription['key'];
}
//if there are any subscriptions
if(count($subscriptions_temp)){
$user_id = $user->user_id;
$username = $user->username;
$email = $user->email;
//add user as subscriber
$database = JFactory::getDBO();
$database->setQuery( "INSERT INTO #__acajoom_subscribers SET user_id='$user_id', name='$username', email='$email', receive_htm='1', confirmed='1', params='' ");
$database->query();
//get subscribers id
//$subscriber_id = $database->insertid(); don't know why that does not work
$database->setQuery("SELECT id "
."FROM #__acajoom_subscribers "
."WHERE user_id='$user_id' "
."LIMIT 1 "
);
$rows = $database->loadObjectList();
foreach($rows as $row){
$subscriber_id = $row->id;
}
//add subscriptions
for($n = 0; $n < count($subscriptions_temp); $n++){
$subscription_id = $subscriptions_temp[$n];
$database->setQuery( "INSERT INTO #__acajoom_queue SET type='1', subscriber_id='$subscriber_id', list_id='$subscription_id' ");
$database->query();
}
}
return;
}