Exemplo n.º 1
0
 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));
 }
Exemplo n.º 2
0
 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;
 }