Acajoom plugin for CB 1.2.3 ?

13 years 5 months ago #144595 by carsten888
Acajoom plugin for CB 1.2.3 ? was created by carsten888
I need a Acajoom plugin which will work with CB 1.2.3.

Please Log in to join the conversation.

13 years 5 months ago #145586 by bdawwg8569
Replied by bdawwg8569 on topic Re:Acajoom plugin for CB 1.2.3 ?
I am also in need of this plugin. Anybody have anything?

Please Log in to join the conversation.

13 years 5 months ago #145587 by carsten888
Replied by carsten888 on topic Re:Acajoom plugin for CB 1.2.3 ?
I spent hours coding this, but somehow it does not seem too stable.


[code:1]<?php
defined('_JEXEC') OR defined('_VALID_MOS') OR die('...Direct Access to this location is not allowed...');
/**
* @copyright Copyright (C) 2009 Joobi Limited All rights reserved.
* @license This file is released under the GPL license (www.gnu.org/licenses )
* @link www.ijoobi.com
*/


if ( !defined('ACA_JPATH_ROOT') ) {
if ( defined('JPATH_ROOT') AND class_exists('JFactory')) { // joomla 15
define ('ACA_JPATH_ROOT' , JPATH_ROOT );
} else { //joomla 1x
define( 'ACA_JPATH_ROOT', $GLOBALS);
}
}//endif
require_once( ACA_JPATH_ROOT . '/components/com_acajoom/defines.php');

$_PLUGINS->registerFunction( 'onUserActive', 'userActivated','getAcajoomTab' );
$_PLUGINS->registerFunction( 'onAfterDeleteUser', 'userDeleted','getAcajoomTab' );

global $mainframe;
define('_ACAJOOMCLASS', ACA_JPATH_ROOT_NO_ADMIN . '/administrator/components/com_acajoom/classes/class.acajoom.php');

if(!$mainframe->isAdmin()){
$Itemid = @$GLOBALS[ACA.'itemidAca'];
}

class getAcajoomTab extends cbTabHandler {
function getAcajoomTab() {
$this->cbTabHandler();
}

function _memGetTabParameters($user){
$params = $this->params;

$TabParams["show_archive"] = $params->get('show_archive', 1);
$TabParams["public_view"] = $params->get('public_view', 0);
$TabParams["acajoom_itemid"] = $params->get('acajoom_itemid', '');

return $TabParams;
}

function _editSubscriber($user, $subscriber, $listings, $queues, $forms, $access=false, $frontEnd=false, $cb=false ) {

$br = "\n\r";
$html = '<div style="width:100%; align:left;">'.$br;
$html .= '<fieldset class="acajoomcss" style="padding: 10px; text-align: left">'.$br;
$html .= '<legend><strong>'._ACA_SUB_INFO.'</strong></legend>'.$br;
$html .= '<table cellpadding="0" cellspacing="0" align="center">'.$br;

if ($subscriber->receive_html) {
$receive_html = _CMN_YES;
} else {
$receive_html = _CMN_NO;
}
$html .= acajoom::miseEnHTML(_ACA_RECEIVE_HTML , _ACA_RECEIVE_HTML_TIPS, $receive_html);

if ($GLOBALS==1) {
$html .= acajoom::miseEnHTML(_ACA_TIME_ZONE_ASK , _ACA_TIME_ZONE_ASK_TIPS, $subscriber->timezone);
}

$html .= '</table>';
$html .= '</fieldset></div>';

$html .= getAcajoomTab::_showSubscriberLists($user, $subscriber, $listings, $queues, $frontEnd, $access);

return $html;
}

function _showSubscriberLists($user, $subscriber, $lists, $queues, $frontEnd, $accessAdmin) {
global $Itemid;
$tabparams = $this->_memGetTabParameters($user);

if (!empty($lists)) {
$br = "\n\r";
$html = '<fieldset class="acajoomcss" style="padding: 4px; text-align: left">'.$br;
$html .= '<legend><strong>'._ACA_SUBSCRIPTIONS.'</strong></legend>' .$br;
$html .= '<table width="100%" border="0" cellspacing="0" cellpadding="4" class="adminlist">' .$br;
$html .= '<tr><th class="title">#</th>' .$br;
$html .= '<th class="title">'._ACA_LIST_NAME.'</th>' .$br;
$html .= '<th class="title" style="text-align: center;">'._ACA_LIST_T_SUBSCRIPTION.'</th>' .$br;

if ($tabparams) {$html .= '<th class="title" style="text-align: center;">'._ACA_VIEW_ARCHIVE.'</th>' .$br;}

$html .= '</tr>' .$br;

$subscribed = '';
$i = 0;
foreach ($lists as $list) {
$i++;
$subscribed = 0;
if (!empty($queues)) {
foreach ($queues as $queue) {
if ($queue->list_id == $list->id) {
$subscribed =1;
}
}
}

if (!empty($tabparams)) {
$item_id = $tabparams;
} else {
$item_id = $Itemid;
}

$html .= '<tr><td>'.$i.'</td><td>' .$br;
$link = ( $list->hidden AND ($list->list_type =='1' or $list->list_type =='7') AND $GLOBALS[ACA.'show_archive'] ) ? 'index.php?option=com_acajoom&act=mailing&task=archive&listid='.$list->id.'&Itemid='.$item_id : '#';

$html .= '<span class="aca_letter_names"';
if ($link == "#"«»){$html .= " onclick='return false;' ";}
$html .= '>'. compa::toolTip($list->list_desc ,$list->list_name,'', '', $list->list_name, $link, 1).' </span>' .$br;
$html .= '</td><td style="text-align: center;">' .$br;

if ( $subscribed == 1 ) {$html .= _CMN_YES;}
if ( $subscribed == 0 ) {$html .= _CMN_NO;}

$html .= '</td>' .$br;

if ($tabparams && ($list->list_type == 1 or $list->list_type == 7)) {
$link = '.php?option=com_acajoom&act=mailing&listid=' .$list->id . '&listype=' .$list->list_type .'&task=archive&Itemid=' . $item_id;
compa::completeLink($link,false);

$img = 'move_f2.png';
$html .= '<td height="20" style="text-align: center;">';
$html .= '<a href="' . $link. '" >'."\n\r" ;
$html .= '<img src="components/com_acajoom/images/' . $img. '" width="20" height="20" border="0" alt="'._ACA_VIEW_ARCHIVE.'" /></a></td>'."\n\r" ;
}elseif($tabparams) {
$html .= '<td height="20"><center>-</center></td>'."\n\r";
}

}
$html .= '<tr></table></fieldset>';
return $html;
}

}

function getDisplayTab( $tab, $user, $ui) {
global $Itemid;

if ( ACA_CMSTYPE ) { // joomla 15
$my =& JFactory::getUser();
$document=& JFactory::getDocument();
$document->addStyleSheet( 'components/com_acajoom/css/acajoom.css', 'text/css' );
} else { //joomla 1x
global $my;
global $mainframe;
$mainframe->addCustomHeadTag( '<link rel="stylesheet" href="components/com_acajoom/css/acajoom.css" type="text/css" >' );
}//endif


if(!getAcajoomTab::checkInstalled()) {
return _UE_NEWSLETTERNOTINSTALLED;
}

$tabparams = $this->_memGetTabParameters($user);

if (!$tabparams) {
if (empty($my->id) OR $my->id != $user->user_id) {return;}
}

$html = '';
require_once(ACA_JPATH_ROOT_NO_ADMIN . '/administrator/components/com_acajoom/classes/class.acajoom.php');
require_once(ACA_JPATH_ROOT_NO_ADMIN . '/administrator/components/com_acajoom/subscribers.acajoom.html.php');

if (!empty($user->id)) {
$userId = $user->user_id;
$subscriber = subscribers::getSubscriberInfoFromUserId($userId, false);
$subscriberId = $subscriber->id;
$queues = queue::getSubscriberLists($subscriberId);

$access = acajoom::checkPermissions('admin', $my->id);

} else {
$userId = 0;
$queues = '';
$access = false;
$subscriberId = 0;
$subscriber->id = '' ;
$subscriber->user_id = 0 ;
$subscriber->name = '' ;
$subscriber->email = '' ;
$subscriber->receive_html = 1 ;
$subscriber->confirmed = 1;
$subscriber->blacklist = 0;
$subscriber->timezone = '00:00:00';
$subscriber->language_iso = 'eng';
$subscriber->params = '';
$subscriber->subscribe_date = acajoom::getNow();
}

$lists = lists::getLists(0, 0, $subscriberId, '', false , true, false);
$doShowSubscribers = false;

$html .= getAcajoomTab::_editSubscriber($user, $subscriber, $lists, $queues, '', $access, false, true );
$html .= acajoom::noShow();

return $html;
}



function getEditTab( $tab, $user, $ui) {

global $Itemid;

if ( ACA_CMSTYPE ) { // joomla 15
$my =& JFactory::getUser();
if ($my->get('id') < 1) {
echo JText::_('ALERTNOTAUTH');
echo "<br />" . JText::_( 'You need to login.' );
return false;
}
} else { //joomla 1x
global $my;
if(intval($my->id) < 1) {
mosNotAuth();
return false;
}
}//endif

if(!getAcajoomTab::checkInstalled()) {
return _UE_NEWSLETTERNOTINSTALLED;
}

$html = '';
require_once(ACA_JPATH_ROOT_NO_ADMIN . '/administrator/components/com_acajoom/classes/class.acajoom.php');
require_once(ACA_JPATH_ROOT_NO_ADMIN . '/administrator/components/com_acajoom/subscribers.acajoom.html.php');

if (!empty($user->id)) {
$userId = $user->id;
$subscriber = subscribers::getSubscriberInfoFromUserId($userId);
if(empty($subscriber)){
subscribers::«»syncSubscribers(true);
$subscriber = subscribers::getSubscriberInfoFromUserId($userId);
}
$subscriberId = $subscriber->id;
$queues = queue::getSubscriberLists($subscriberId);

$access = acajoom::checkPermissions('admin', $my->id);

} else {
$userId = 0;
$queues = '';
$access = false;
$subscriberId = 0;
$subscriber->id = '' ;
$subscriber->user_id = 0 ;
$subscriber->name = '' ;
$subscriber->email = '' ;
$subscriber->receive_html = 1 ;
$subscriber->confirmed = 1;
$subscriber->blacklist = 0;
$subscriber->timezone = '00:00:00';
$subscriber->language_iso = 'eng';
$subscriber->params = '';
$subscriber->subscribe_date = acajoom::getNow();
}

$lists = lists::getLists(0, 0, $subscriberId, '', false , true, false);
$doShowSubscribers = false;

$mainLink = '.php?option=com_acajoom';
$selectLink = '.php?option=com_acajoom&act=subscriber';
compa::completeLink($mainLink,false);
compa::completeLink($selectLink,false);

//$forms = '<form method="post" action="'.$mainLink.'" onsubmit="submitbutton();return false;" name="mosForm" >' ."\n\r";
//$forms = '<form method="post" action="'.$selectLink.'" name="AcajoomFilterForm">';

$forms = '';
$html .= subscribersHTML::editSubscriber($subscriber, $lists, $queues, $forms, $access, false, true );

//$html .= '<input type="hidden" name="Itemid" value="'.$Itemid.'" />';
$html .= '<input type="hidden" name="subscriber_id" value="'.$subscriber->id.'" />';

return $html;
}


function saveEditTab($tab, &$user, $ui, $postdata) {

/*
echo print_r($tab);
echo '<br />';
echo print_r($user);
echo '<br />';
echo print_r($ui);
echo '<br />';
echo print_r($postdata);
echo '<br />';
exit;
*/
if ( ACA_CMSTYPE ) { // joomla 15
$my =& JFactory::getUser();
if ($my->get('id') < 1) {
echo JText::_('ALERTNOTAUTH');
echo "<br />" . JText::_( 'You need to login.' );
return;
}
} else { //joomla 1x
global $my;
if(intval($my->id) < 1) {
mosNotAuth();
return;
}
}//endif

//carsten
/*
require_once(ACA_JPATH_ROOT_NO_ADMIN . '/administrator/components/com_acajoom/classes/class.acajoom.php');

if(!subscribers::updateOneSubscriber($user->user_id, $user)){
$this->_setErrorMSG(_ACA_ERROR);
}
*/
//echo 'useris'.$user->id;
//print_r($postdata);
$should_be_on_these_lists = array();
$loops = count($postdata)+1;
for($n = 1; $n < $loops; $n++){
//echo 'n='.$n;
if($postdata[$n]){
//wants to be on this list, so get list id
$list_id = $postdata[$n];
//echo 'should go on list='.$list_id;
$should_be_on_these_lists[] = $list_id;
}

}

$subscriber_id = $postdata;

$database = JFactory::getDBO();

//check which lists the user is on now
$database->setQuery("SELECT qid, list_id "
." FROM #__acajoom_queue "
." WHERE subscriber_id='$subscriber_id' "
);
$lists = $database->loadObjectList();
$list_rows_dealt_with = array();
foreach($lists as $list){
//echo $list->list_id;
if(!in_array($list->list_id, $should_be_on_these_lists)){
//it should not be on there, take it out
//delete row
$database->setQuery("DELETE FROM #__acajoom_queue WHERE qid='$list->qid' "«»);
$database->query();
//echo $list->qid;
}
$list_rows_dealt_with[] = $list->list_id;
}

//print_r($list_rows_dealt_with);
//exit;

foreach($should_be_on_these_lists as $should_be_on_this_list){
if(!in_array($should_be_on_this_list, $list_rows_dealt_with)){
//echo $should_be_on_this_list;
//should be on the list, but is not yet, so insert
$database->setQuery( "INSERT INTO #__acajoom_queue SET type='1', subscriber_id='$subscriber_id', list_id='$should_be_on_this_list' "«»);
$database->query();
}
}

//exit;
}

function getDisplayRegistration($tab, $user, $ui) {

if ( ACA_CMSTYPE ) { // joomla 15
$my =& JFactory::getUser();
} else { //joomla 1x
global $my;
}//endif

require_once(ACA_JPATH_ROOT_NO_ADMIN . '/administrator/components/com_acajoom/classes/class.acajoom.php');
$html = '';

if ($GLOBALS=='1' ) {
$lists = lists::getSpecifiedLists($GLOBALS, false );
if (!empty($lists)) {

$i=0;
$accessLevel = 18; //default access level jack 31
$htmlOK = false;

if (!empty($GLOBALS)) {
$html .= '<tr><td class="titleCell" colspan="2">'. $GLOBALS .'</td></tr>';
}

if ($GLOBALS) {

foreach ($lists as $list) {
$i++;
$subscribed = 0;
if ($list->html ==1) $htmlOK = true;

$checked = $GLOBALS;
if ($list->hidden == 1) {
$subscriber->blacklist = 0;
if ($checked != 0) $checkedPrint = ' checked="checked" '; else $checkedPrint = '';
$html .= '<tr>';
if ($GLOBALS == 1) {
$text = "\n".'<td class="titleCell" style="text-align: right;"><input type="checkbox" class="inputbox" value="1" name="subscribed" checked="checked" /></td>';
} else {
$text = "\n".'<td class="titleCell" style="text-align: right;"><input type="checkbox" class="inputbox" value="1" name="subscribed" '.$checkedPrint.' /></td>';
}
$text .= "\n".'<input type="hidden" name="sub_list_id" value="'.$list->id.'" />';
$text .= "\n".'<td class="fieldCell"><span class="aca_list_name" onclick=\'return false;\'>'. compa::toolTip($list->list_desc ,$list->list_name, '', '', $list->list_name , '#', 1).'</span></td>';
$html .= $text;
$html .= '</tr>';
} else {
$html .= '<input type="hidden" value=1 name="subscribed" />';
$html .= "\n".'<input type="hidden" name="sub_list_id" value="'.$list->id.'" />';
}
$html .= "\n".'<input type="hidden" name="acc_level" value="'.$accessLevel.'" />';
}
} else {
foreach ($lists as $list) {
$i++;
$html .= '<input type="hidden" value="1" name="subscribed" />';
$html .= "\n".'<input type="hidden" name="sub_list_id" value="'.$list->id.'" />';
$html .= "\n".'<input type="hidden" name="acc_level" value="'.$accessLevel.'" />';
if ($list->html ==1) $htmlOK = true;
}
}

$checked = $GLOBALS;

if ($htmlOK) {
if ($GLOBALS) {
$html .= '<tr>';
if ($checked != 0) $checkedPrint = ' checked="checked" '; else $checkedPrint = '';
$text = '<td class="titleCell" style="text-align: right;"><input type="checkbox" class="inputbox" value="1" name="receive_html" '.$checkedPrint.' /></td>';
$text .= '<td class="fieldCell">'._ACA_RECEIVE_HTML.'</td>';
$html .= acajoom::«»printLine(false, $text);
$html .= '</tr>';
} else {
$html .= '<input type="hidden" value="'.$checked.'" name="receive_html" />' . "\n";
}
} else {
$html .= '<input type="hidden" value="'.$checked.'" name="receive_html" />' . "\n";
}
} else {
$html = '<input type="hidden" value="'.$GLOBALS.'" name="receive_html" />' . "\n";
}
}else{
$html = '<input type="hidden" value="'.$GLOBALS.'" name="receive_html" />' . "\n";
}

return $html;
}


function saveRegistrationTab($tab, &$user, $ui, $postdata) {
//carsten
/*
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;
}

//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;
}

function userActivated($user, $success) {

require_once(ACA_JPATH_ROOT_NO_ADMIN . '/administrator/components/com_acajoom/classes/class.acajoom.php');

$erro = new xerr( __FILE__ , __FUNCTION__ );
$erro->ck = subscribers::updateSubscribers( true );
$erro->Eck(__LINE__ , '7007');
$user->receive_html = -1;
if(!subscribers::updateOneSubscriber($user->user_id, $user, true )) {
$this->_setErrorMSG(_ACA_ERROR);
}

return;
}

function userDeleted($user, $success) {

require_once(ACA_JPATH_ROOT_NO_ADMIN . '/administrator/components/com_acajoom/classes/class.acajoom.php');
$erro = new xerr( __FILE__ , __FUNCTION__ );
if(!empty($user->user_id)){
$subscriberId = subscribers::getSubscriberIdFromUserId($user->user_id);
if(!empty($subscriberId)) subscribers::deleteOneSubscriber($subscriberId);
}
$erro->ck = subscribers::updateSubscribers();
$erro->Eck(__LINE__ , '7009');
return true;
}

function checkInstalled() {
if(!file_exists(_ACAJOOMCLASS)) {
return false;
}
return true;
}


}

[/code:1]

Please Log in to join the conversation.

13 years 1 month ago #155649 by carsten888
Replied by carsten888 on topic Re:Acajoom plugin for CB 1.2.3 ?
this one works on CB 1.4
<?php
 defined('_JEXEC') OR defined('_VALID_MOS') OR die('...Direct Access to this location is not allowed...');
/**
* @copyright Copyright (C) 2009 Joobi Limited All rights reserved.
* @license This file is released under the GPL license (http://www.gnu.org/licenses )
* @link http://www.ijoobi.com
*/


if ( !defined('ACA_JPATH_ROOT') ) {
	if ( defined('JPATH_ROOT') AND class_exists('JFactory')) {	// joomla 15
		define ('ACA_JPATH_ROOT' , JPATH_ROOT );
	} else {									//joomla 1x
		define( 'ACA_JPATH_ROOT', $GLOBALS['mosConfig_absolute_path']);
	}
}//endif
require_once( ACA_JPATH_ROOT . '/components/com_acajoom/defines.php');

$_PLUGINS->registerFunction( 'onUserActive', 'userActivated','getAcajoomTab' );
$_PLUGINS->registerFunction( 'onAfterDeleteUser', 'userDeleted','getAcajoomTab' );

global $mainframe;
 define('_ACAJOOMCLASS', ACA_JPATH_ROOT_NO_ADMIN . '/administrator/components/com_acajoom/classes/class.acajoom.php');

if(!$mainframe->isAdmin()){
	$Itemid = @$GLOBALS[ACA.'itemidAca'];
}

class getAcajoomTab extends cbTabHandler {
	function getAcajoomTab() {
		$this->cbTabHandler();
	}

    function _memGetTabParameters($user){
		$params = $this->params;

        $TabParams["show_archive"] = $params->get('show_archive', 1);
        $TabParams["public_view"] = $params->get('public_view', 0);
        $TabParams["acajoom_itemid"] = $params->get('acajoom_itemid', '');

        return $TabParams;
	}

	 function _editSubscriber($user, $subscriber, $listings, $queues, $forms, $access=false, $frontEnd=false, $cb=false ) {

		$br = "\n\r";
        $html = '<div style="width:100%; align:left;">'.$br;
		$html .= '<fieldset class="acajoomcss" style="padding: 10px; text-align: left">'.$br;
		$html .= '<legend><strong>'._ACA_SUB_INFO.'</strong></legend>'.$br;
		$html .= '<table cellpadding="0" cellspacing="0" align="center">'.$br;

        if ($subscriber->receive_html) {
            $receive_html = _CMN_YES;
        } else {
            $receive_html = _CMN_NO;
        }
		$html .= acajoom::miseEnHTML(_ACA_RECEIVE_HTML , _ACA_RECEIVE_HTML_TIPS, $receive_html);

        if ($GLOBALS['aca_time_zone']==1) {
			$html .= acajoom::miseEnHTML(_ACA_TIME_ZONE_ASK , _ACA_TIME_ZONE_ASK_TIPS, $subscriber->timezone);
 		}

		$html .= '</table>';
		$html .= '</fieldset></div>';

		$html .=  getAcajoomTab::_showSubscriberLists($user, $subscriber, $listings, $queues, $frontEnd, $access);

		return $html;
	}

	 function _showSubscriberLists($user, $subscriber, $lists, $queues, $frontEnd, $accessAdmin) {
		 global $Itemid;
		$tabparams = $this->_memGetTabParameters($user);

        if (!empty($lists)) {
			$br = "\n\r";
            $html = '<fieldset class="acajoomcss" style="padding: 4px; text-align: left">'.$br;
			$html .= '<legend><strong>'._ACA_SUBSCRIPTIONS.'</strong></legend>' .$br;
			$html .= '<table width="100%"  border="0" cellspacing="0" cellpadding="4" class="adminlist">' .$br;
			$html .= '<tr><th class="title">#</th>' .$br;
			$html .= '<th class="title">'._ACA_LIST_NAME.'</th>' .$br;
			$html .= '<th class="title" style="text-align: center;">'._ACA_LIST_T_SUBSCRIPTION.'</th>' .$br;

            if ($tabparams['show_archive']) {$html .= '<th class="title" style="text-align: center;">'._ACA_VIEW_ARCHIVE.'</th>' .$br;}

            $html .= '</tr>' .$br;

			$subscribed = '';
			$i = 0;
		  	foreach ($lists as $list) {
				$i++;
				$subscribed = 0;
				if (!empty($queues)) {
					foreach ($queues as $queue) {
							if ($queue->list_id == $list->id) {
								$subscribed =1;
							}
					}
				}

                if (!empty($tabparams['acajoom_itemid'])) {
                    $item_id = $tabparams['acajoom_itemid'];
                } else {
                    $item_id = $Itemid;
                }

				$html .= '<tr><td>'.$i.'</td><td>' .$br;
				$link = ( $list->hidden AND ($list->list_type =='1' or $list->list_type =='7') AND $GLOBALS[ACA.'show_archive'] ) ? 'index.php?option=com_acajoom&act=mailing&task=archive&listid='.$list->id.'&Itemid='.$item_id : '#';

				$html .= '<span class="aca_letter_names"';
				if ($link == "#"){$html .= " onclick='return false;' ";}
				$html .= '>'. compa::toolTip($list->list_desc ,$list->list_name,'', '', $list->list_name, $link, 1).' </span>' .$br;
				$html .= '</td><td style="text-align: center;">' .$br;

                if ( $subscribed == 1 ) {$html .= _CMN_YES;}
                if ( $subscribed == 0 ) {$html .= _CMN_NO;}

				$html .= '</td>' .$br;

				if ($tabparams['show_archive'] && ($list->list_type == 1 or $list->list_type == 7)) {
					$link = '.php?option=com_acajoom&act=mailing&listid=' .$list->id . '&listype=' .$list->list_type .'&task=archive&Itemid=' . $item_id;
					compa::completeLink($link,false);

					$img = 'move_f2.png';
					$html .=  '<td height="20" style="text-align: center;">';
					$html .=  '<a href="' . $link. '" >'."\n\r" ;
					$html .=  '<img src="components/com_acajoom/images/' . $img. '" width="20" height="20" border="0" alt="'._ACA_VIEW_ARCHIVE.'" /></a></td>'."\n\r" ;
				}elseif($tabparams['show_archive']) {
					$html .=  '<td height="20"><center>-</center></td>'."\n\r";
				}

			}
			$html .=  '<tr></table></fieldset>';
			 return $html;
		 }

	}

    function getDisplayTab( $tab, $user, $ui) {
	    global $Itemid;

		if ( ACA_CMSTYPE ) {	// joomla 15
			$my	=& JFactory::getUser();
			$document=& JFactory::getDocument();
			$document->addStyleSheet( 'components/com_acajoom/css/acajoom.css', 'text/css' );
		} else {									//joomla 1x
		    global $my;
			global $mainframe;
			$mainframe->addCustomHeadTag( '<link rel="stylesheet" href="components/com_acajoom/css/acajoom.css" type="text/css" >' );
		}//endif


      if(!getAcajoomTab::checkInstalled()) {
      	return _UE_NEWSLETTERNOTINSTALLED;
      }

	  $tabparams = $this->_memGetTabParameters($user);

      if (!$tabparams['public_view']) {
        if (empty($my->id) OR $my->id != $user->user_id) {return;}
      }

      $html = '';
      require_once(ACA_JPATH_ROOT_NO_ADMIN . '/administrator/components/com_acajoom/classes/class.acajoom.php');
      require_once(ACA_JPATH_ROOT_NO_ADMIN . '/administrator/components/com_acajoom/subscribers.acajoom.html.php');

      if (!empty($user->id)) {
      	$userId = $user->user_id;
        $subscriber = subscribers::getSubscriberInfoFromUserId($userId, false);
      	$subscriberId = $subscriber->id;
        $queues = queue::getSubscriberLists($subscriberId);

      	$access = acajoom::checkPermissions('admin', $my->id);

      } else {
      	$userId = 0;
      	$queues = '';
      	$access = false;
      	$subscriberId = 0;
      	$subscriber->id =  '' ;
      	$subscriber->user_id =  0 ;
      	$subscriber->name =  '' ;
      	$subscriber->email =  '' ;
      	$subscriber->receive_html =  1 ;
      	$subscriber->confirmed =  1;
      	$subscriber->blacklist =  0;
      	$subscriber->timezone = '00:00:00';
      	$subscriber->language_iso = 'eng';
      	$subscriber->params = '';
      	$subscriber->subscribe_date =  acajoom::getNow();
      }

      $lists = lists::getLists(0, 0, $subscriberId, '', false , true, false);
      $doShowSubscribers = false;

      $html .= getAcajoomTab::_editSubscriber($user, $subscriber, $lists, $queues, '', $access, false, true );
	  $html .= acajoom::noShow();

      return $html;
    }



	function getEditTab( $tab, $user, $ui) {
	
		global $Itemid;

		if ( ACA_CMSTYPE ) {	// joomla 15
			$my	=& JFactory::getUser();
			if ($my->get('id') < 1) {
				echo JText::_('ALERTNOTAUTH');
				echo "<br />" . JText::_( 'You need to login.' );
				return false;
			}
		} else {									//joomla 1x
		    global $my;
			if(intval($my->id) < 1) {
				mosNotAuth();
				return false;
			}
		}//endif

		if(!getAcajoomTab::checkInstalled()) {
			return _UE_NEWSLETTERNOTINSTALLED;
		}

		$html = '';
		require_once(ACA_JPATH_ROOT_NO_ADMIN . '/administrator/components/com_acajoom/classes/class.acajoom.php');
		require_once(ACA_JPATH_ROOT_NO_ADMIN . '/administrator/components/com_acajoom/subscribers.acajoom.html.php');

		if (!empty($user->id)) {
			$userId = $user->id;
		    $subscriber = subscribers::getSubscriberInfoFromUserId($userId);
			if(empty($subscriber)){
				subscribers::syncSubscribers(true);
				$subscriber = subscribers::getSubscriberInfoFromUserId($userId);
			}
			$subscriberId = $subscriber->id;
		    $queues = queue::getSubscriberLists($subscriberId);

			$access = acajoom::checkPermissions('admin', $my->id);

		} else {
			$userId = 0;
			$queues = '';
			$access = false;
			$subscriberId = 0;
			$subscriber->id =  '' ;
			$subscriber->user_id =  0 ;
			$subscriber->name =  '' ;
			$subscriber->email =  '' ;
			$subscriber->receive_html =  1 ;
			$subscriber->confirmed =  1;
			$subscriber->blacklist =  0;
			$subscriber->timezone = '00:00:00';
			$subscriber->language_iso = 'eng';
			$subscriber->params = '';
			$subscriber->subscribe_date =  acajoom::getNow();
		}

		$lists = lists::getLists(0, 0, $subscriberId, '', false , true, false);
		$doShowSubscribers = false;

		$mainLink = '.php?option=com_acajoom';
		$selectLink = '.php?option=com_acajoom&act=subscriber';
		compa::completeLink($mainLink,false);
		compa::completeLink($selectLink,false);

					
		$forms['main'] = '';
	    $html .= subscribersHTML::editSubscriber($subscriber, $lists, $queues, $forms, $access, false, true );		
	
		$html .=  '<input type="hidden" name="subscriber_id" value="'.$subscriber->id.'" />';
	
		return $html;
	}


	function saveEditTab($tab, &$user, $ui, $postdata) {

		if ( ACA_CMSTYPE ) {	// joomla 15
			$my	=& JFactory::getUser();
			if ($my->get('id') < 1) {
				echo JText::_('ALERTNOTAUTH');
				echo "<br />" . JText::_( 'You need to login.' );
				return;
			}
		} else {									//joomla 1x
		    global $my;
			if(intval($my->id) < 1) {
				mosNotAuth();
				return;
			}
		}//endif
		
		//echo 'useris'.$user->id;
		//print_r($postdata);
		$should_be_on_these_lists = array();
		$loops = count($postdata['subscribed'])+1;
		for($n = 1; $n < $loops; $n++){
			//echo 'n='.$n;			
			if($postdata['subscribed'][$n]){
				//wants to be on this list, so get list id
				$list_id = $postdata['sub_list_id'][$n];
				//echo 'should go on list='.$list_id;
				$should_be_on_these_lists[] = $list_id;
			}
			
		}
		
		$subscriber_id = $postdata['subscriber_id'];
		
		$database = JFactory::getDBO();
		
		//check which lists the user is on now
		$database->setQuery("SELECT qid, list_id "
		." FROM #__acajoom_queue "
		." WHERE subscriber_id='$subscriber_id' "
		);
		$lists = $database->loadObjectList();
		$list_rows_dealt_with = array();
		foreach($lists as $list){	
			//echo $list->list_id;
			if(!in_array($list->list_id, $should_be_on_these_lists)){				
			 	//it should not be on there, take it out
				//delete row				
				$database->setQuery("DELETE FROM #__acajoom_queue WHERE qid='$list->qid' ");
				$database->query();
				//echo $list->qid;
			}
			$list_rows_dealt_with[] = $list->list_id;
		}
		
		foreach($should_be_on_these_lists as $should_be_on_this_list){
			if(!in_array($should_be_on_this_list, $list_rows_dealt_with)){
				//echo $should_be_on_this_list;
				//should be on the list, but is not yet, so insert
				$database->setQuery( "INSERT INTO #__acajoom_queue SET type='1', subscriber_id='$subscriber_id', list_id='$should_be_on_this_list' ");
				$database->query();
			}
		}	
		
		//exit;
	}
	
	function getDisplayRegistration($tab, $user, $ui) {

		if ( ACA_CMSTYPE ) {	// joomla 15
			$my	=& JFactory::getUser();
		} else {									//joomla 1x
		    global $my;
		}//endif

		require_once(ACA_JPATH_ROOT_NO_ADMIN . '/administrator/components/com_acajoom/classes/class.acajoom.php');
		$html = '';

		if ($GLOBALS['aca_cb_plugin']=='1' ) {
			$lists = lists::getSpecifiedLists($GLOBALS['aca_cb_listIds'], false );
			if (!empty($lists)) {

				$i=0;
				$accessLevel = 18; //default access level jack 31
				$htmlOK = false;

				if (!empty($GLOBALS['aca_cb_intro'])) {
					$html .= '<tr><td class="titleCell" colspan="2">'. $GLOBALS['aca_cb_intro'] .'</td></tr>';
				}

				if ($GLOBALS['aca_cb_showname']) {

					 foreach ($lists as $list) {
						$i++;
						$subscribed = 0;
					 	if ($list->html ==1) $htmlOK = true;

						$checked = $GLOBALS['aca_cb_checkLists'];
						if ($list->hidden == 1) {
							 $subscriber->blacklist = 0;
							if ($checked != 0) $checkedPrint = ' checked="checked" '; else $checkedPrint = '';
							$html .= '<tr>';
							if ($GLOBALS['aca_cb_checkLists'] == 1) {
								$text = "\n".'<td class="titleCell" style="text-align: right;"><input type="checkbox" class="inputbox" value="1" name="subscribed['.$i.']" checked="checked" /></td>';
							} else {
								$text = "\n".'<td class="titleCell" style="text-align: right;"><input type="checkbox" class="inputbox" value="1" name="subscribed['.$i.']" '.$checkedPrint.' /></td>';
							}
							$text .= "\n".'<input type="hidden" name="sub_list_id['.$i.']" value="'.$list->id.'" />';
							$text .= "\n".'<td class="fieldCell"><span class="aca_list_name" onclick=\'return false;\'>'. compa::toolTip($list->list_desc ,$list->list_name, '', '', $list->list_name , '#', 1).'</span></td>';
							$html .= $text;
							$html .= '</tr>';
						} else {
							$html .=  '<input type="hidden"  value=1 name="subscribed['.$i.']" />';
							$html .=   "\n".'<input type="hidden" name="sub_list_id['.$i.']" value="'.$list->id.'" />';
						}
					 	$html .=  "\n".'<input type="hidden" name="acc_level['.$i.']" value="'.$accessLevel.'" />';
					 }
				} else {
					 foreach ($lists as $list) {
						$i++;
					 	$html .=  '<input type="hidden"  value="1" name="subscribed['.$i.']" />';
					 	$html .=  "\n".'<input type="hidden" name="sub_list_id['.$i.']" value="'.$list->id.'" />';
					 	$html .=  "\n".'<input type="hidden" name="acc_level['.$i.']" value="'.$accessLevel.'" />';
					 	if ($list->html ==1) $htmlOK = true;
					 }
				}

				 $checked = $GLOBALS['aca_cb_defaultHTML'];

				 if ($htmlOK) {
					 if ($GLOBALS['aca_cb_showHTML']) {
						$html .= '<tr>';
						if ($checked != 0) $checkedPrint = ' checked="checked" '; else $checkedPrint = '';
						$text = '<td class="titleCell" style="text-align: right;"><input type="checkbox" class="inputbox" value="1" name="receive_html" '.$checkedPrint.' /></td>';
						$text .= '<td class="fieldCell">'._ACA_RECEIVE_HTML.'</td>';
						$html .=  acajoom::printLine(false, $text);
						$html .= '</tr>';
					 } else {
						 $html .= '<input type="hidden" value="'.$checked.'" name="receive_html" />' . "\n";
					 }
				 } else {
					$html .= '<input type="hidden" value="'.$checked.'" name="receive_html" />' . "\n";
				 }
			} else {
				$html = '<input type="hidden" value="'.$GLOBALS['aca_cb_defaultHTML'].'" name="receive_html" />' . "\n";
			}
		}else{
			$html = '<input type="hidden" value="'.$GLOBALS['aca_cb_defaultHTML'].'" name="receive_html" />' . "\n";
		}

		return $html;
	}


	function saveRegistrationTab($tab, &$user, $ui, $postdata) {
		
		//get subscriptions from form as array
		$subscriptions = JRequest::getVar('subscribed', null, 'post', 'array');		
		$subscriptions_temp = array();
		if($subscriptions){
			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;
	}

	function userActivated($user, $success) {

		require_once(ACA_JPATH_ROOT_NO_ADMIN . '/administrator/components/com_acajoom/classes/class.acajoom.php');

		$erro = new xerr( __FILE__ , __FUNCTION__ );
		$erro->ck = subscribers::updateSubscribers( true );
		$erro->Eck(__LINE__ ,  '7007');
		$user->receive_html = -1;
		 if(!subscribers::updateOneSubscriber($user->user_id, $user, true )) {
		 	$this->_setErrorMSG(_ACA_ERROR);
		 }

		return;
	}

	function userDeleted($user, $success) {

		require_once(ACA_JPATH_ROOT_NO_ADMIN . '/administrator/components/com_acajoom/classes/class.acajoom.php');
		$erro = new xerr( __FILE__ , __FUNCTION__ );
		if(!empty($user->user_id)){
			$subscriberId = subscribers::getSubscriberIdFromUserId($user->user_id);
			if(!empty($subscriberId)) subscribers::deleteOneSubscriber($subscriberId);
		}
		$erro->ck = subscribers::updateSubscribers();
		$erro->Eck(__LINE__ ,  '7009');
		return true;
	}

	function checkInstalled() {
		if(!file_exists(_ACAJOOMCLASS)) {
			return false;
		}
		return true;
	}


}

Please Log in to join the conversation.

Moderators: beatnantkrileon
Time to create page: 0.222 seconds

Facebook Twitter LinkedIn