public function saveUser() { $form = JRequest::get(); $frontend = JRequest::getVar('frontend'); $app =& JFactory::getApplication(); // inizializzato da frontend if ($frontend) { $user =& JFactory::getUser(); $guest = $user->guest; if (!$form['jform']['id']) { $currentUserID = MailUPModelMailUP::addMailupUser($form['jform']['name'], $form['jform']['email'], $frontend, $guest); } else { $currentUserID = $form['jform']['id']; } } else { $currentUserID = $form['jform']['id']; } // se currentUserID = 0 utente già iscritto a mailup e non registarto non faccio nulla if ($currentUserID != 0) { $result_lists = MailUPModelMailUP::getLists($currentUserID); $result_groups = MailUPModelMailUP::getGroups($currentUserID); // echo '<pre>'; // // var_dump($result_lists); // var_dump($result_groups); // var_dump($form['jform']['lists']); // echo '</pre>'; // die(); foreach ($form['jform']['lists'] as $keyL => $list) { //echo "<br>KeyL: ".$keyL." -> Value: ".$list['value']; if ($result_lists[$keyL]->listid == $keyL) { if ($result_lists[$keyL]->enabled != $list['value']) { // Se utente non è iscritto (enabled == 0) e ora lo deve essere ($list[value] == 1) allora lo scrivo if ($list['value'] == 1) { if ($result_lists[$keyL]->enabled == 0) { //echo "<br>Non iscritto quindi è da iscrivere"; $func = MailUPModelMailUP::Xmlsubscribe($currentUserID, $result_lists[$keyL]->listid, $form['jform']['name'], $form['jform']['email']); } } if (!$frontend || !$guest) { if ($result_lists[$keyL]->enabled == 1 && $list['value'] == 0) { //echo "<br>Era iscritto ma è da disiscrivere"; $func = MailUPModelMailUP::Xmlunsubscribe($currentUserID, $result_lists[$keyL]->guid, $result_lists[$keyL]->listid, $form['jform']['email']); } } } else { if ($frontend && $guest && $list['value'] == 1) { $app->enqueueMessage(JText::sprintf('MOD_MAILUP USER ALREADY REGISTERED', $result_lists[$keyL]->alias), 'notice'); } } $group_sub = array(); $group_unsub = array(); // SALVO ARRAY DI GRUPPI PER UPDATE foreach ($result_groups as $g) { $oldValue = $g->enabled ? $g->enabled : 0; if (isset($list['groups'][$g->groupid])) { $newValue = $list['groups'][$g->groupid]; if ($frontend && $guest && !$newValue && $oldValue) { $newValue = $oldValue; } if ($newValue) { $group_sub[] = $g->groupid; } else { $group_unsub[] = $g->groupid; } if ($newValue != $oldValue) { $msgString = $newValue ? 'COM_MAILUP USER SUCCESSFULLY REGISTERED GROUP' : 'COM_MAILUP USER SUCCESSFULLY UNREGISTERED GROUP'; $app->enqueueMessage(JText::sprintf($msgString, $g->alias)); } } else { if ($oldValue) { $group_sub[] = $g->groupid; } else { $group_unsub[] = $g->groupid; } } } // foreach ($list['groups'] as $keyG => $group) { // if($frontend && $guest){ // if ($group) { // $group_sub[] = $keyG; // } // }else{ // if ($group) { // $group_sub[] = $keyG; // } else { // $group_unsub[] = $keyG; // } // } // // } // AGGIORNO GRUPPI RELATIVI ALLA LISTA $replace = !($frontend && $guest); $func = MailUPModelMailUP::XmlUpdSubscriber($currentUserID, $result_lists[$keyL]->guid, $result_lists[$keyL]->listid, $group_sub, $group_unsub, $form['jform']['email'], $form['jform']['name'], $replace); } // endif } MailUPModelMailUP::updateSubscriber($form['jform']['name'], $currentUserID); } // endif se utente non è iscritto // else { // JFactory::getApplication() -> enqueueMessage(JText::_('Sei già Iscritto alla Newsletter'), 'Notice'); // } //die(); $this->setRedirect(JRoute::_('index.php?option=' . $this->option . '&view=' . $this->view_list, false)); }
public function Xmlsubscribe($userid, $listid, $name, $email) { $componentParams =& JComponentHelper::getParams('com_mailup'); $params = array(); $list = MailUPModelMailUP::getList($listid); $url = $componentParams->get('FrontendURL', 'defaultValue'); $confirm = $componentParams->get('confirm_subscription', 1); $frontendURL = 'http://' . $url . '/frontend/Xmlsubscribe.aspx?list=' . $listid . '&email=' . $email . '&csvFldNames=campo1&csvFldValues=' . urlencode($name); //$frontendURL .= $confirm ? '&confirm=true' : '&confirm=false'; $frontendURL .= "&confirm={$confirm}"; $WsSend = new MailUpWsSend(); $res = file_get_contents($frontendURL); if (JDEBUG) { error_log("trying to get {$frontendURL}"); error_log("got result {$res}"); } $app = JFactory::getApplication(); // 1 = generic error if ($res == 0) { // AGGIORNO GRUPPI RELATIVI ALLA LISTA $db = JFactory::getDBO(); $query = "\r\n\t\t\t\tREPLACE INTO #__mailup_listsub \r\n\t\t\t\tSET \r\n\t\t\t\t\tsubid={$userid}, \r\n\t\t\t\t\tlistid={$listid},\r\n\t\t\t\t\tsubdate=NOW(),\r\n\t\t\t\t\tenabled=1, \r\n\t\t\t\t\tstatus=1,\r\n\t\t\t\t\tlast_update=(SELECT IFNULL(ls2.last_update, 0) FROM #__mailup_listsub ls2 WHERE ls2.subid={$userid} AND ls2.listid={$listid})\r\n\t\t\t\t"; $db->setQuery($query); $db->query(); $app->enqueueMessage(JText::sprintf('COM_MAILUP USER SUCCESSFULLY REGISTERED', $list->alias), 'Message'); } if ($res == 1) { $app->enqueueMessage(JText::sprintf('COM_MAILUP LIST REGISTER ERROR 1', $list->alias), 'Notice'); } if ($res == 2) { $app->enqueueMessage(JText::sprintf('COM_MAILUP LIST REGISTER ERROR 2', $list->alias), 'Notice'); } if ($res == 3) { $app->enqueueMessage(JText::sprintf('COM_MAILUP LIST REGISTER ERROR 3', $list->alias), 'Message'); } return $res; }