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