function onAfterRoute() { $redirectlink = trim(JRequest::getString('redirectlink')); $fromSubscribe = JRequest::getVar('fromSubscribe', ''); // this is either we have a redirect setup or we come from the module if (empty($fromSubscribe) || empty($redirectlink)) { return ''; } if (strtolower(substr(JPATH_ROOT, strlen(JPATH_ROOT) - 13)) == 'administrator') { $adminPath = strtolower(substr(JPATH_ROOT, strlen(JPATH_ROOT) - 13)); } else { $adminPath = JPATH_ROOT; } if (!@(include_once $adminPath . DS . 'components' . DS . 'com_jnews' . DS . 'defines.php')) { return; } include_once JNEWSPATH_CLASS . 'class.jnews.php'; require_once JNEWS_JPATH_ROOT_NO_ADMIN . DS . 'administrator' . DS . 'components' . DS . JNEWS_OPTION . DS . 'classes' . DS . 'class.subscribers.php'; require_once JNEWS_JPATH_ROOT_NO_ADMIN . DS . 'administrator' . DS . 'components' . DS . JNEWS_OPTION . DS . 'classes' . DS . 'class.listssubscribers.php'; jimport('joomla.html.parameter'); $db = JFactory::getDBO(); $plugin = JPluginHelper::getPlugin('system', 'vmjnewssubs'); $registry = new JRegistry(); if (!method_exists($registry, 'loadString')) { $data = trim($plugin->params); $options = array('processSections' => false); if (substr($data, 0, 1) != '{' && substr($data, -1, 1) != '}') { $ini = JRegistryFormat::getInstance('INI'); $obj = $ini->stringToObject($data, $options); } else { $obj = json_decode($data); } $registry->loadObject($obj); } else { $registry->loadString($plugin->params); } $params = $registry; $reqfield = $params->get('reqfield', 'user_email'); $email = JRequest::getString('email'); $reqvalue = $reqfield == 'user_email' ? $email : JRequest::get($reqfield); if (is_array($reqvalue)) { //if we find any no we do no if (empty($reqvalue)) { return ''; } foreach ($reqvalue as $resultArVal) { if (empty($resultArVal)) { return ''; } } } else { if (empty($reqvalue) || empty($email) || in_array(strtolower($reqvalue), array('', '0', 'n', 'no', 'none', 'nein', 'non'))) { return; } } $user_id = JRequest::getInt('user_id'); $email = trim(strip_tags($email)); $fname = JRequest::getString('first_name', ''); $mname = JRequest::getString('middle_name', ''); $lname = JRequest::getString('last_name', ''); $name = ''; if (!empty($fname)) { $name .= $fname . ' '; } if (!empty($mname)) { $name .= $mname . ' '; } if (!empty($lname)) { $name .= $lname; } $name = trim($name); if (empty($name)) { $name = JRequest::getVar('username'); } $subscriber = new stdClass(); $subscriber->user_id = $user_id; $subscriber->name = $name; $subscriber->email = $email; $subscriber->ip = jNews_Subscribers::getIP(); $subscriber->receive_html = 1; $subscriber->confirmed = $GLOBALS[JNEWS . 'require_confirmation'] == '1' ? 0 : 1; $subscriber->subscribe_date = time(); $subscriber->language_iso = 'eng'; $subscriber->timezone = '00:00:00'; $subscriber->blacklist = 0; $subscriber->params = ''; $subscriber->admin_id = 62; $status = jNews_Subscribers::saveSubscriber($subscriber, $user_id, true); if (!$status) { return; } $listsToSubscribe = $params->get('lists', ''); $listsToSubscribe = str_replace(' ', '', $listsToSubscribe); if (!empty($listsToSubscribe)) { $condition = ' WHERE `id` IN (' . $listsToSubscribe . ')'; } else { $condition = ''; } $query = 'SELECT `id`, `list_type`,`params` from `#__jnews_lists`' . $condition; $db->setQuery($query); $lsidstoinsert = $db->loadObjectList(); $error = $db->getErrorMsg(); if (!empty($error)) { echo $error; return false; } else { //use for masterlists $listsA = array(); foreach ($lsidstoinsert as $lsid) { $d['email'] = $subscriber->email; //get the subscriber id which is newly inserted jNews_Subscribers::getSubscriberIdFromEmail($d); //subscriber_id from the inserted subscriber if ($d['subscriberId'] > 0) { $subscriber->id = $d['subscriberId']; } else { $subscriber->id = $subscriber->user_id; } if (!empty($lsid->params)) { //use for masterlists $listsA[] = $lsid->id; } else { //for non-masterlists $subscriber->list_id = $lsid->id; jNews_ListsSubs::saveToListSubscribers($subscriber); } if ($lsid->list_type == 2) { $subscribe = array(); $subscribe[] = $lsid->id; if (!empty($subscribe)) { jNews_ListsSubs::subscribeARtoQueue($subscriber->id, $subscribe); } } } //end of foreach if (!empty($listsA)) { //we check if the social class file exists for the implementation of master lists if (@(include_once JNEWSPATH_ADMIN . 'social' . DS . 'class.social.php')) { if (class_exists('jNews_Social')) { $listidSubsA = array(); $masterListSubscriber = new stdClass(); //we check if configuration for master lists is enabled if ($GLOBALS[JNEWS . 'use_masterlists']) { if ($GLOBALS[JNEWS . 'level'] > 1) { //we validate if the user can be subscribed to the list then we return the masterlistid //1 - MasterLists for all Potential Users $listidSubsA[] = jNews_Social::includeMasterListIds($subscriber->id, 1, $listsA); //2 - MasterLists for all Registered Subscribers $listidSubsA[] = jNews_Social::includeMasterListIds($subscriber->id, 2, $listsA); } if ($GLOBALS[JNEWS . 'level'] > 2) { //we validate if the user can be subscribed to the list then we return the masterlistid //3 - MasterLists for all Front-end Subscribers $listidSubsA[] = jNews_Social::includeMasterListIds($subscriber->id, 3, $listsA); } } //we check first if $listidSubsA and if not empty we do the subscription to the lists if (!empty($listidSubsA)) { $masterListSubscriber->id = $subscriber->id; $masterListSubscriber->list_id = $listidSubsA; jNews_ListsSubs::saveToListSubscribers($masterListSubscriber); } } } } } }
function onAfterStoreUser($user, $isnew, $success, $msg) { if ($success === false) { return false; } if (strtolower(substr(JPATH_ROOT, strlen(JPATH_ROOT) - 13)) == 'administrator') { $adminPath = strtolower(substr(JPATH_ROOT, strlen(JPATH_ROOT) - 13)); } else { $adminPath = JPATH_ROOT; } if (!@(include_once $adminPath . DS . 'components' . DS . 'com_jnews' . DS . 'defines.php')) { return; } include_once JNEWSPATH_CLASSN . 'class.jnews.php'; require_once JNEWS_JPATH_ROOT_NO_ADMIN . DS . 'administrator' . DS . 'components' . DS . JNEWS_OPTION . DS . 'classes' . DS . 'class.subscribers.php'; require_once JNEWS_JPATH_ROOT_NO_ADMIN . DS . 'administrator' . DS . 'components' . DS . JNEWS_OPTION . DS . 'classes' . DS . 'class.listssubscribers.php'; jimport('joomla.html.parameter'); $plugin =& JPluginHelper::getPlugin('user', 'jnewssyncuser'); $params = new JParameter($plugin->params); $db =& JFactory::getDBO(); $subscriber = null; $confirmed = 1; if ($user['block']) { $confirmed = 0; } $subscriber->email = trim(strip_tags($user['email'])); if (!empty($user['name'])) { $subscriber->name = trim(strip_tags($user['name'])); } if (empty($user['block'])) { $subscriber->confirmed = 1; } $subscriber->user_id = $user['id']; $subscriber->ip = jNews_Subscribers::getIP(); $subscriber->receive_html = 1; $subscriber->confirmed = $confirmed; $subscriber->subscribe_date = jnews::getNow(); $subscriber->language_iso = 'eng'; $subscriber->timezone = '00:00:00'; $subscriber->blacklist = 0; //check if the version of jnews is pro if ($GLOBALS[JNEWS . 'type'] == 'PRO') { $subscriber->column1 = ''; $subscriber->column2 = ''; $subscriber->column3 = ''; $subscriber->column4 = ''; $subscriber->column5 = ''; } //end if check if the version is pro if (!$isnew and !empty($this->oldUser['email']) and $user['email'] != $this->oldUser['email']) { $d['email'] = $this->oldUser['email']; $infos = jNews_Subscribers::getSubscriberIdFromEmail($this->oldUser); $subscriber->id = $infos['subscriberId']; } if ($isnew) { //new registered user $status = jNews_Subscribers::saveSubscriber($subscriber, $subscriber->user_id, true); if (empty($subscriber->id)) { $subscriber->id = jNews_Subscribers::getSubscriberIdFromUserId($subscriber->user_id); } if (!$status) { return; } $listsToSubscribe = $params->get('lists', ''); if (!empty($listsToSubscribe)) { $condition = ' WHERE `id` IN (' . $listsToSubscribe . ')'; } else { $condition = ' WHERE `auto_add` > 0'; } //get list ids of auto_add lists $query = 'SELECT `id`, `list_type`, `params` from `#__jnews_lists`' . $condition; $db->setQuery($query); $autoListId = $db->loadObjectList(); $error = $db->getErrorMsg(); if (!empty($error)) { echo $error; return false; } else { //use for masterlists $listsA = array(); foreach ($autoListId as $autoId) { if (!empty($autoId->params)) { //use for masterlists $listsA[] = $autoId->id; } else { //for non-masterlists $subscriber->list_id = $autoId->id; jNews_ListsSubs::saveToListSubscribers($subscriber); } if ($autoId->list_type == 2) { $subscribe = array(); $subscribe[] = $autoId->id; if (!empty($subscribe)) { jNews_ListsSubs::subscribeARtoQueue($subscriber->id, $subscribe); } } } //end of foreach } if (!empty($listsA)) { //we check if the social class file exists for the implementation of master lists if (@(include_once JNEWSPATH_ADMIN . 'social' . DS . 'class.social.php')) { if (class_exists('social')) { $listidSubsA = array(); $masterListSubscriber = null; //we check if configuration for master lists is enabled if ($GLOBALS[JNEWS . 'use_masterlists']) { if ($GLOBALS[JNEWS . 'type'] == 'PLUS' || $GLOBALS[JNEWS . 'type'] == 'PRO') { //we validate if the user can be subscribed to the list then we return the masterlistid //1 - MasterLists for all Potential Users $listidSubsA[] = jNews_Social::includeMasterListIds($subscriber->id, 1, $listsA); //2 - MasterLists for all Registered Subscribers $listidSubsA[] = jNews_Social::includeMasterListIds($subscriber->id, 2, $listsA); } if ($GLOBALS[JNEWS . 'type'] == 'PRO') { //we validate if the user can be subscribed to the list then we return the masterlistid //3 - MasterLists for all Front-end Subscribers $listidSubsA[] = jNews_Social::includeMasterListIds($subscriber->id, 3, $listsA); } } $masterListSubscriber->id = $subscriber->id; $masterListSubscriber->list_id = $listidSubsA; jNews_ListsSubs::saveToListSubscribers($masterListSubscriber); } } } } else { //confirmed registered user // if(!empty($this->oldUser['block']) AND !empty($subscriber->confirmed)){ if (empty($subscriber->id)) { $subscriber->id = jNews_Subscribers::getSubscriberIdFromUserId($subscriber->user_id); } plgUserjNewssyncuser::_confirmUserSubscription($subscriber->id); // } } //endelse return true; }
} //end if check if the version is pro //jNews_Subscribers::insertSubscriber($subscriber, $subscriberId); jNews_Subscribers::saveSubscriber($subscriber, $subscriberId, true, $listid); //get subscriber info by passing the user id $userInfo = jNews_Subscribers::getSubscriberInfoFromUserId($user->id); } else { } //end if //save the subscriber id and list to listssubscribers table $subscriber->id = $userInfo->id; $subscriber->list_id = $listid; $subscriber->flexicontentFlag = true; //a flag that the subscription is from a tenders subscription from the flexicontent module $subscriber->params = $params; jNews_ListsSubs::saveToListSubscribers($subscriber); } //clear jnews session $mySess->clear('flexi_countries', 'JNEWLSETTER'); $mySess->clear('flexi_industries', 'JNEWLSETTER'); $mySess->clear('modjnewsflexi_listid', 'JNEWLSETTER'); echo '<div id=mod_message><span style="color:green;">You have been successfully subscribed to smartflexi articles.</span></div>'; //echo jnews::printM('green','Successfully subscribed to smartflexi articles.'); // break; //echo jnews::printM('green','Successfully subscribed to smartflexi articles.'); // break; default: if (class_exists('jNews_Auto')) { $showPanel = false; switch ($action) { case 'cron':
static function insertQueuesForNews($subId, $listId, $acc_level) { $mailing_ids = array(); $mailing_ids = jNews_Mailing::getListMailing($listId); $status = true; if (is_array($subId)) { for ($k = 0; $k < count($subId); $k++) { if (is_array($mailing_ids)) { for ($i = 0; $i < sizeOf($mailing_ids); $i++) { // check subscribers confirmed status $result = jNews_Subscribers::isSubConfirmed($subId[$k]); $queue = new stdClass(); $queue->id = 0; $queue->subscriber_id = $subId[$k]; $queue->list_id = $listId; $queue->type = 1; $queue->mailing_id = $mailing_ids[$i]; $queue->send_date = jNews_Mailing::getSendDate($mailing_ids[$i]); $queue->suspend = !empty($result) ? 1 : 0; $queue->delay = 0; $queue->acc_level = $acc_level; $queue->issue_nb = 0; $queue->published = 0; $queue->priority = 0; $queue->attempt = 0; jNews_Queue::insertIntoQueue($queue); } $subscriber = new stdClass(); $subscriber->list_id = $listId; $subscriber->id = $subId[$k]; jNews_ListsSubs::saveToListSubscribers($subscriber); } else { // check subscribers confirmed status $result = jNews_Subscribers::isSubConfirmed($subId[$k]); $queue = new stdClass(); $queue->id = 0; $queue->subscriber_id = $subId[$k]; $queue->list_id = $listId; $queue->type = 1; $queue->mailing_id = $mailing_ids; $queue->send_date = jNews_Mailing::getSendDate($mailing_ids); $queue->suspend = !empty($result) ? 1 : 0; $queue->delay = 0; $queue->acc_level = $acc_level; $queue->issue_nb = 0; $queue->published = 0; $queue->priority = 0; $queue->attempt = 0; $subscriber = new stdClass(); $subscriber->list_id = $listId; $subscriber->id = $subId[$k]; jNews_ListsSubs::saveToListSubscribers($subscriber); jNews_Queue::insertIntoQueue($queue); } } } else { if (is_array($mailing_ids)) { // check subscribers confirmed status $result = jNews_Subscribers::isSubConfirmed($subId); for ($i = 0; $i < sizeOf($mailing_ids); $i++) { $queue = new stdClass(); $queue->id = 0; $queue->subscriber_id = $subId; $queue->list_id = $listId; $queue->type = 1; $queue->mailing_id = $mailing_ids[$i]; $queue->send_date = jNews_Mailing::getSendDate($mailing_ids[$i]); $queue->suspend = !empty($result) ? 1 : 0; if ($GLOBALS[JNEWS . 'require_confirmation']) { $queue->suspend = 1; } else { $queue->suspend = 0; } $queue->delay = 0; $queue->acc_level = $acc_level; $queue->issue_nb = 0; $queue->published = 0; $queue->priority = 0; $queue->attempt = 0; jNews_Queue::insertIntoQueue($queue); } $subscriber = new stdClass(); $subscriber->list_id = $listId; $subscriber->id = $subId; jNews_ListsSubs::saveToListSubscribers($subscriber); } else { // check subscribers confirmed status $result = jNews_Subscribers::isSubConfirmed($subId); $queue = new stdClass(); $queue->id = 0; $queue->subscriber_id = $subId; $queue->list_id = $listId; $queue->type = 1; $queue->mailing_id = $mailing_ids; $queue->send_date = jNews_Mailing::getSendDate($mailing_ids); $queue->suspend = !empty($result) ? 1 : 0; $queue->delay = 0; $queue->acc_level = $acc_level; $queue->issue_nb = 0; $queue->published = 0; $queue->priority = 0; $queue->attempt = 0; $subscriber = new stdClass(); $subscriber->list_id = $listId; $subscriber->id = $subId; jNews_ListsSubs::saveToListSubscribers($subscriber); jNews_Queue::insertIntoQueue($queue); } } return $status; }