コード例 #1
0
 /**
  * This method save the interest with
  */
 public function saveInterest()
 {
     $t = new Template($this->getCheminPhysique() . $this->cheminTemplates . "interest/");
     $t->set_filenames(array('confirm' => 'confirm.tpl'));
     $urlBack = $this->creerUrl('', 'mesInterets', array());
     $txtLink = "Revenir à la liste de mes intérêts";
     if (isset($this->variablesPost) && !empty($this->variablesPost)) {
         $interets = $this->variablesPost;
     } elseif (isset($this->variablesGet) && !empty($this->variablesGet)) {
         $interets = $this->variablesGet;
     }
     /*
      * Initially, it was adding related nesting element in the interests of the user
      * Client asked to add only the smallest element in interest (if neighborhood selected, don't add the city and the country)
      * Little array handling to satified the client need, to revert, delete the two following loops 
      */
     foreach ($interets as $key => $int) {
         if ($int == 0) {
             unset($interets[$key]);
         }
     }
     while (count($interets) > 1) {
         array_shift($interets);
     }
     $requestParameters = array();
     if ($interets['rue'] != 0) {
         $requestParameters[] = array('table' => '_interetRue', 'fieldName1' => 'idUtilisateur', 'fieldName2' => 'idRue', 'idInteret' => $interets['rue'], 'userId' => $this->userId);
     }
     if ($interets['sousQuartier'] != 0) {
         $requestParameters[] = array('table' => '_interetSousQuartier', 'fieldName1' => 'idUtilisateur', 'fieldName2' => 'idSousQuartier', 'idInteret' => $interets['sousQuartier'], 'userId' => $this->userId);
     }
     if ($interets['quartier'] != 0) {
         $requestParameters[] = array('table' => '_interetQuartier', 'fieldName1' => 'idUtilisateur', 'fieldName2' => 'idQuartier', 'idInteret' => $interets['quartier'], 'userId' => $this->userId);
     }
     if ($interets['ville'] != 0) {
         $requestParameters[] = array('table' => '_interetVille', 'fieldName1' => 'idUtilisateur', 'fieldName2' => 'idVille', 'idInteret' => $interets['ville'], 'userId' => $this->userId);
     }
     if ($interets['pays'] != 0) {
         $requestParameters[] = array('table' => '_interetPays', 'fieldName1' => 'idUtilisateur', 'fieldName2' => 'idPays', 'idInteret' => $interets['pays'], 'userId' => $this->userId);
     }
     if ($interets['adresse'] != 0) {
         $idHistoriqueAdresse = $interets['adresse'];
         $requestParameters[] = array('table' => '_interetAdresse', 'fieldName1' => 'idUtilisateur', 'fieldName2' => 'idHistoriqueAdresse', 'idInteret' => $interets['adresse'], 'userId' => $this->userId);
         $requete = "\n\t\t\t\t\tSELECT ae.idEvenement as idEvenementGroupeAdresse, ae.idAdresse as idAdresse \n\t\t\t\t\tFROM _adresseEvenement ae\n\t\t\t\t\tLEFT JOIN historiqueAdresse ha on ha.idAdresse = ae.idAdresse \n\t\t\t\t\tWHERE ha.idHistoriqueAdresse  = " . $idHistoriqueAdresse . "\n\t\t\t\t\t";
         $result = $this->connexionBdd->requete($requete);
         $fetch = mysql_fetch_array($result);
         $idAdresse = $fetch['idAdresse'];
         $idEvenementGroupeAdresse = $fetch['idEvenementGroupeAdresse'];
         $evenement = new archiEvenement();
         $titreAdresse = $evenement->getIntituleAdresseFrom($idAdresse, 'idAdresse');
         $urlBack = $this->creerUrl('', '', array('archiAffichage' => 'adresseDetail', 'archiIdAdresse' => $idAdresse, 'archiIdEvenementGroupeAdresse' => $idEvenementGroupeAdresse));
         $txtLink = "Aller à l'adresse " . $titreAdresse;
     }
     if ($interets['personne']) {
         $requestParameters[] = array('table' => '_interetPersonne', 'fieldName1' => 'idUtilisateur', 'fieldName2' => 'idPersonne', 'idInteret' => $interets['personne'], 'userId' => $this->userId);
         $urlBack = $this->creerUrl('', 'evenementListe', array('selection' => 'personne', 'id' => $interets['personne']));
         $txtLink = "Retour à la fiche de la personne";
     }
     $nbEltInserted = 0;
     foreach ($requestParameters as $rp) {
         //Insert if not exists
         $requete = "\n\t\t\t\t\tINSERT INTO " . $rp['table'] . " (" . $rp['fieldName1'] . "," . $rp['fieldName2'] . ",created)\n\t\t\t\t\tSELECT '" . $this->userId . "', '" . $rp['idInteret'] . "' , now()\n\t\t\t\t\tFROM DUAL\n\t\t\t\t\tWHERE NOT EXISTS (SELECT * FROM `" . $rp['table'] . "`\n\t\t\t\t\tWHERE " . $rp['fieldName1'] . "='" . $this->userId . "' AND " . $rp['fieldName2'] . "='" . $rp['idInteret'] . "')\n\t\t\t\t\tLIMIT 1\n\t\t\t\t\t";
         $res = $this->connexionBdd->requete($requete, false);
     }
     $this->messages->addConfirmation('Intérêt(s) sauvegardé(s) avec succès !');
     $t->assign_vars(array('message' => $this->messages->display(), 'textLink' => $txtLink, 'urlBack' => $urlBack));
     ob_start();
     $t->pparse('confirm');
     $html .= ob_get_contents();
     ob_end_clean();
     return $html;
 }