/branches/v1.9-neon/services/modules/0.1/utilisateurs/Preferences.php |
---|
36,55 → 36,11 |
// Mettre en forme le résultat et l'envoyer pour affichage |
$resultat = new ResultatService(); |
$resultat->corps = $this->obtenirPreferencesUtilisateur($id_utilisateur); |
$gestion_utilisateur = new GestionUtilisateur($this->conteneur); |
$resultat->corps = $gestion_utilisateur->obtenirPreferencesUtilisateur($id_utilisateur); |
return $resultat; |
} |
private function obtenirPreferencesUtilisateur($id_utilisateur) { |
$requete = 'SELECT * '. |
'FROM del_utilisateur_infos '. |
'WHERE id_utilisateur = '.$this->bdd->proteger($id_utilisateur).' '. |
' -- '.__FILE__.' : '.__LINE__; |
$prefs_utilisateur = $this->bdd->recuperer($requete); |
if (empty($prefs_utilisateur)) { |
$this->initialiserInfosUtilisateur($id_utilisateur); |
$prefs_utilisateur = $this->renvoyerInfosUtilisateurDefaut($id_utilisateur); |
} else { |
if (empty($prefs_utilisateur['preferences'])) { |
$prefs_utilisateur['preferences'] = $this->obtenirTableauPreferenceDefaut(); |
} else { |
$prefs_utilisateur['preferences'] = json_decode($prefs_utilisateur['preferences']); |
} |
$prefs_utilisateur['admin'] = $prefs_utilisateur['admin']; |
} |
return $prefs_utilisateur; |
} |
private function initialiserInfosUtilisateur($id_utilisateur) { |
$preferences_defaut = $this->obtenirTableauPreferenceDefaut(); |
$prefsEncodeesP = $this->bdd->proteger(json_encode($preferences_defaut)); |
$idUtilisateurP = $this->bdd->proteger($id_utilisateur); |
$requete = 'INSERT INTO del_utilisateur_infos '. |
'(id_utilisateur, admin, preferences, date_premiere_utilisation )'. |
"VALUES ($idUtilisateurP, 0, $prefsEncodeesP, NOW()) ". |
'ON DUPLICATE KEY UPDATE date_premiere_utilisation = NOW() '. |
' -- '.__FILE__.' : '.__LINE__; |
return $this->bdd->executer($requete); |
} |
private function obtenirTableauPreferenceDefaut() { |
return array('mail_notification_mes_obs' => '1', 'mail_notification_toutes_obs' => '0'); |
} |
private function renvoyerInfosUtilisateurDefaut($id_utilisateur) { |
return array('id_utilisateur' => $id_utilisateur, |
'admin' => '0', |
'preferences' => $this->obtenirTableauPreferenceDefaut(), |
'date_premiere_utilisation' => date('Y-m-d H:i:s')); |
} |
/** |
* Méthode principale de la classe. |
* Modifie les préférences utilisateurs |
/branches/v1.9-neon/services/bibliotheque/Sql.php |
---|
755,16 → 755,16 |
- Quelqu'un vote pour une proposition sur mon observation |
- Quelqu'un commente une proposition ou un commentaire sur mon observation |
*/ |
*/ |
// on selectionne aussi la combinaison des champs de date afin que la liste soit triée correctement |
// pas d'autre meilleure solution mais attention ce comportement dépend entièrement de mysql |
$requete = "SELECT SQL_CALC_FOUND_ROWS DISTINCT id_observation, ".$this->getCombinaisonChampsDateMax()." as date_max FROM del_observation do ". |
$this->getJointureMonActivite($id_utilisateur). |
$this->getConditionMonActivite($id_utilisateur). |
"ORDER BY date_max DESC ". |
// pas d'autre meilleure solution mais attention ce comportement dépend entièrement de mysql |
$requete = "SELECT SQL_CALC_FOUND_ROWS DISTINCT id_observation, ".$this->getCombinaisonChampsDateMax()." as date_max FROM del_observation do ". |
$this->getJointureMonActivite($id_utilisateur). |
$this->getConditionMonActivite($id_utilisateur). |
"ORDER BY date_max DESC ". |
$limite; |
return $requete; |
} |
/branches/v1.9-neon/services/bibliotheque/GestionUtilisateur.php |
---|
112,7 → 112,6 |
} |
public function etreAdmin() { |
//TODO: déplacer ceci dans une classe utilitaire |
$idUtilisateurP = $this->bdd->proteger($this->utilisateur['id_utilisateur']); |
$requete = 'SELECT admin '. |
'FROM del_utilisateur_infos '. |
145,7 → 144,14 |
return $date; |
} |
public function setDerniereDateConsultationEvenements($id_utilisateur, $date) { |
public function setDerniereDateConsultationEvenements($id_utilisateur, $date) { |
// Vérification que la ligne correspondant à l'utilisateur dans la table |
// infos existe bien (sinon on la crée) |
$infos_utilisateur = $this->obtenirInfosUtilisateur($id_utilisateur); |
if (empty($infos_utilisateur)) { |
$this->initialiserInfosUtilisateur($id_utilisateur); |
} |
$requete = "UPDATE del_utilisateur_infos SET date_derniere_consultation_evenements = ".$this->bdd->proteger($date)." ". |
"WHERE id_utilisateur = ".$this->bdd->proteger($id_utilisateur); |
$this->bdd->executer($requete); |
155,4 → 161,54 |
$evenements = $this->getEvenements($utilisateur['id_utilisateur']); |
$utilisateur = array_merge($utilisateur, $evenements); |
} |
public function obtenirPreferencesUtilisateur($id_utilisateur) { |
$prefs_utilisateur = $this->obtenirInfosUtilisateur($id_utilisateur); |
if (empty($prefs_utilisateur)) { |
$this->initialiserInfosUtilisateur($id_utilisateur); |
$prefs_utilisateur = $this->renvoyerInfosUtilisateurDefaut($id_utilisateur); |
} else { |
if (empty($prefs_utilisateur['preferences'])) { |
$prefs_utilisateur['preferences'] = $this->obtenirTableauPreferenceDefaut(); |
} else { |
$prefs_utilisateur['preferences'] = json_decode($prefs_utilisateur['preferences']); |
} |
$prefs_utilisateur['admin'] = $prefs_utilisateur['admin']; |
} |
return $prefs_utilisateur; |
} |
private function obtenirTableauPreferenceDefaut() { |
return array('mail_notification_mes_obs' => '1', 'mail_notification_toutes_obs' => '0'); |
} |
private function renvoyerInfosUtilisateurDefaut($id_utilisateur) { |
return array('id_utilisateur' => $id_utilisateur, |
'admin' => '0', |
'preferences' => $this->obtenirTableauPreferenceDefaut(), |
'date_premiere_utilisation' => date('Y-m-d H:i:s'), |
'date_derniere_consultation_evenements' => '0000-00-00 00:00:00'); |
} |
public function obtenirInfosUtilisateur($id_utilisateur) { |
$requete = 'SELECT * '. |
'FROM del_utilisateur_infos '. |
'WHERE id_utilisateur = '.$this->bdd->proteger($id_utilisateur).' '. |
' -- '.__FILE__.' : '.__LINE__; |
$prefs_utilisateur = $this->bdd->recuperer($requete); |
return $prefs_utilisateur; |
} |
public function initialiserInfosUtilisateur($id_utilisateur) { |
$preferences_defaut = $this->obtenirTableauPreferenceDefaut(); |
$prefsEncodeesP = $this->bdd->proteger(json_encode($preferences_defaut)); |
$idUtilisateurP = $this->bdd->proteger($id_utilisateur); |
$requete = 'INSERT INTO del_utilisateur_infos '. |
'(id_utilisateur, admin, preferences, date_premiere_utilisation )'. |
"VALUES ($idUtilisateurP, 0, $prefsEncodeesP, NOW()) ". |
'ON DUPLICATE KEY UPDATE date_premiere_utilisation = NOW() '. |
' -- '.__FILE__.' : '.__LINE__; |
return $this->bdd->executer($requete); |
} |
} |