/trunk/controleurs/MappageControleur.php |
---|
31,7 → 31,7 |
return $annuaire; |
} |
/**--------Fonctions de gestion des champs de mappage associées à un annuaire et des formulaires associés --------*/ |
/**--------Fonctions de gestion des champs de mappage associées à un annuaire et des formaulaires associés --------*/ |
/** |
* Affiche le formulaire d'ajout d'une metadonnee |
* @param Array $valeurs les valeurs à inclure dans le formulaire (dans le cas du retour erreur) |
44,7 → 44,6 |
$champs_mappage = $this->obtenirChampsMappageAnnuaire($id_annuaire); |
// TODO: déplacer ceci dans la base de données |
$liste_champs_mappage = array('champ_id' => 'Champ identifiant', |
'champ_pass' => 'Champ mot de passe', |
'champ_nom' => 'Champ nom', |
61,6 → 60,9 |
$roles_deja_affectes = array_intersect_key($liste_champs_mappage, $champs_mappage[0]); |
//Debug::printr($champs_mappage[0]); |
//Debug::printr($liste_champs_mappage); |
$champs_deja_mappe_annuaire = array_intersect_key($champs_mappage[0], $liste_champs_mappage); |
$champs_deja_mappe_metadonnees = array_intersect_key($champs_mappage[1], $liste_champs_mappage); |
147,25 → 149,18 |
*/ |
public function modifierMappage($valeurs) { |
$this->ChargerModele('MappageModele'); |
if(isset($valeurs['id_annuaire']) |
&& isset($valeurs['at_valeur']) |
&& isset($valeurs['at_ressource']) |
&& isset($valeurs['at_action']) |
&& isset($valeurs['at_id'])) { |
$id_annuaire = $valeurs['id_annuaire']; |
$id_champ_metadonnee = $valeurs['at_valeur']; |
$nom_champ_annuaire = $valeurs['at_ressource']; |
$role = $valeurs['at_action']; |
$id_mappage = $valeurs['at_id']; |
$this->MappageModele->modifierMappage($id_annuaire, $nom_champ_annuaire, $role, $id_champ_metadonnee,$id_mappage); |
if(isset($valeurs['amc_id_champ']) |
&& isset($valeurs['amc_nom']) |
&& isset($valeurs['amc_abreviation']) |
&& isset($valeurs['amc_description']) |
&& isset($valeurs['amc_ce_annuaire']) |
&& isset($valeurs['amc_ce_type_affichage'])) { |
$this->chargerModele('MetadonneeModele'); |
$this->MetadonneeModele->modifierMetadonnee($valeurs); |
} else { |
return $this->afficherFormulaireModificationMappage($valeurs); |
return $this->afficherFormulaireModificationMetadonnee($valeurs); |
} |
return $this->chargerAnnuaire($valeurs['id_annuaire']); |
return $this->chargerAnnuaire($valeurs['amc_ce_annuaire']); |
} |
/** |
174,8 → 169,14 |
*/ |
public function supprimerMappage($id_annuaire, $id_mappage) { |
// TODO ajouter méthode |
if($id_metadonnee != '') { |
$this->chargerModele('MetadonneeModele'); |
$this->MetadonneeModele->supprimerMetadonneeParId($id_metadonnee); |
} else { |
return false; |
} |
return $this->chargerAnnuaire($id_annuaire); |
} |
} |
?> |
/trunk/controleurs/StatistiqueControleur.php |
---|
15,6 → 15,10 |
private $statistiques = null; |
private $champ_pays = '12'; |
private $champ_rapport_activite_bota = '102'; |
private $champ_experience_bota = '4'; |
public function StatistiqueControleur() { |
$this->__construct(); |
/trunk/controleurs/VerificationControleur.php |
---|
65,6 → 65,12 |
} |
break; |
case 'select': |
if($this->estUnchampObligatoire($id, $tableau_champs_obligatoire) && trim($valeur) == '') { |
$erreurs[$id] = 'Ce champ est obligatoire'; |
} |
break; |
case 'password': |
if($this->estUnchampObligatoire($id, $tableau_champs_obligatoire) && trim($valeur) == '' |
|| $valeur != $condition) { |
455,6 → 461,11 |
$valeurs_mappees[$tableau_mappage[0][$cle_champ]] = $valeur; |
} else { |
if($cle_champ && $cle_champ == 'champ_pays' && !is_numeric($valeur)) { |
$this->chargerModele('MetadonneeModele'); |
$valeur = $this->MetadonneeModele->obtenirValeurPaysParAbbreviation($valeur); |
} |
$valeurs_recherchees[$id_champ] = $valeur; |
} |
463,7 → 474,6 |
unset($valeurs_recherchees[$nom_champ]); |
} |
return array('valeurs_mappees' => $valeurs_mappees, 'valeurs_recherchees' => $valeurs_recherchees, 'valeurs_get' => $valeurs_get); |
} |
/trunk/controleurs/MessageControleur.php |
---|
49,6 → 49,7 |
* Constructeur sans paramètres |
*/ |
public function MessageControleur() { |
$this->__construct(); |
// doit on modérer ? |
89,6 → 90,7 |
* @return boolean le succès ou l'échec de l'envoi du mail |
*/ |
public function envoyerMailConfirmationInscription($adresse_mail, $nom, $prenom, $code_confirmation_inscription) { |
$lien_confirmation_inscription = AppControleur::getUrlConfirmationInscription($code_confirmation_inscription); |
$donnees = array('nom' => $nom, 'prenom' => $prenom, 'lien_confirmation_inscription' => $lien_confirmation_inscription); |
107,6 → 109,7 |
* @return boolean le succès ou l'échec de l'envoi du mail |
*/ |
public function envoyerMailOubliMdp($id_annuaire,$mail, $nouveau_mdp) { |
$base_url = clone(Registre::getInstance()->get('base_url_application')); |
$url_cette_page = 'http://'.$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI']; |
141,10 → 144,12 |
$exclusive = true; |
} |
unset($criteres['id_annuaire']); |
unset($criteres['page']); |
unset($criteres['taille_page']); |
$collecteur = new VerificationControleur(); |
$tableau_valeur_collectees = $collecteur->collecterValeursRechercheMoteur($criteres, $this->obtenirChampsMappageAnnuaire($id_annuaire)); |
$this->criteres_recherche_effectuee = $collecteur->convertirTableauRechercheVersChaine($id_annuaire, $criteres); |
167,9 → 172,7 |
// suivant le critères d'exclusivité ou non |
$this->chargerModele('AnnuaireModele'); |
$resultat_annuaire_mappe = $this->AnnuaireModele->rechercherInscritDansAnnuaireMappe($id_annuaire,$valeurs_mappees, $resultat_metadonnees, $exclusive, 0, 0); |
} |
$resultat_recherche = $resultat_annuaire_mappe['resultat']; |
$nb_resultats = $resultat_annuaire_mappe['total']; |
$destinataires = $this->aplatirTableauSansPreserverCles($resultat_recherche); |
206,7 → 209,7 |
$contenu = $this->filtrerChaine($message_antislashe); |
foreach ($destinataires as $destinataire) { |
if (!mail('aurelien@tela-botanica.org', $sujet, $contenu, $entetes)) { |
if (!mail($destinataire, $sujet, $contenu, $entetes)) { |
return false; |
} |
} |
227,6 → 230,7 |
$message_antislashe = $this->encoderChainePourEnvoiMail($message); |
$message_texte = $this->filtrerChaine($message_antislashe); |
$message_html = $message_antislashe; |
$limite = "_----------=_parties_".md5(uniqid (rand())); |
326,6 → 330,7 |
// Seconde sous partie : pièce jointe |
if ($piece_jointe != null) { |
$attachment = chunk_split(base64_encode($piece_jointe)); |
$contenu .= "Content-Type: ".$type_mime."; name=\"".$nom_fichier."\"\n"; |
335,10 → 340,11 |
$contenu .= $attachment; |
$contenu .= "\n--".$limite."--\n"; |
} |
foreach ($destinataires as $destinataire) { |
if (!mail('aurelien@tela-botanica.org', mb_encode_mimeheader($sujet), $contenu, $entetes)) { |
if (!mail($destinataire, mb_encode_mimeheader($sujet), $contenu, $entetes)) { |
return false; |
} |
} |
356,6 → 362,7 |
* @param string $donnees_sup tableau d'informations supplémentaires à joindre au message |
*/ |
public function envoyerMailDirectOuModere($id_annuaire, $expediteur, $destinataires, $sujet = '', $message = '') { |
$donnees['erreurs'] = false; |
if (!Registre::getInstance()->get('est_admin')) { |
383,6 → 390,7 |
} |
if (!$donnees['erreurs']) { |
$template_mail = 'mail_messagerie'; |
if(Registre::getInstance()->get('est_admin')) { |
393,7 → 401,7 |
$message = $this->getVue(Config::get('dossier_squelettes_mails').$template_mail,$donnees); |
// si on modere les mails et s'il y a trop de destinataires |
//if($this->moderer_mail && count($destinataires_mail) >= $this->seuil_moderation) { |
if($this->moderer_mail && count($destinataires_mail) >= $this->seuil_moderation) { |
$stockage_mail = $this->stockerMailPourModeration($expediteur, $destinataires_mail, $sujet, $message); |
$donnees['moderation'] = true; |
402,7 → 410,7 |
$donnees['erreurs'] = true; |
} |
/*} else { |
} else { |
// sinon, envoi direct |
$envoi_mail_direct = $this->envoyerMail($expediteur, $destinataires_mail, $sujet, $message); |
416,8 → 424,8 |
} |
$donnees['moderation'] = false; |
}*/ |
} |
} |
$resultat = $this->getVue(Config::get('dossier_squelettes_annuaires').'message_envoi_confirmation',$donnees); |
433,6 → 441,7 |
} |
private function envoyerCopieMessageAuModerateur($id_annuaire, $expediteur, $sujet, $destinataires, $message) { |
$donnees['expediteur_message'] = $expediteur; |
$donnees['sujet_message'] = $sujet; |
$donnees['contenu_message'] = $message; |
456,6 → 465,7 |
* @param string $code_confirmation le code associé au données en attente |
*/ |
public function envoyerMailModere($code_confirmation) { |
// chargement des données temporaire |
$message_modele = $this->getModele('DonneeTemporaireModele'); |
$mail_a_moderer = $message_modele->chargerDonneeTemporaire($code_confirmation); |
487,6 → 497,7 |
* @param string $code_confirmation le code associé au données en attente |
*/ |
public function supprimerMailModere($code_confirmation) { |
$message_modele = $this->getModele('DonneeTemporaireModele'); |
$supression_donnees_temp = $message_modele->supprimerDonneeTemporaire($code_confirmation); |
505,6 → 516,7 |
* @param string $message corps du message |
*/ |
private function stockerMailPourModeration($expediteur ,$destinataires, $sujet, $message) { |
$mail = array('expediteur' => $expediteur, |
'destinataires' => $destinataires, |
'sujet' => $sujet, |
517,7 → 529,9 |
$this->envoyerMailModeration($id_stockage, $expediteur ,$destinataires, $sujet , $message); |
return true; |
} |
return false; |
} |
/** |
527,6 → 541,7 |
* @param string $message_a_moderer corps du message |
*/ |
private function envoyerMailModeration($id_mail_a_moderer, $expediteur, $destinataires, $sujet_message_a_moderer, $message_a_moderer) { |
$url_cette_page = $this->getUrlCettePage(); |
$url_base = $url_cette_page; |
561,6 → 576,7 |
$contenu_mail = $this->getVue(Config::get('dossier_squelettes_mails').'mail_moderation_message',$donnees); |
return $this->envoyerMail($this->adresse_mail_annuaire, $this->mail_moderateur, 'Un message est en attente de modération', $contenu_mail); |
} |
/trunk/controleurs/IdentificationControleur.php |
---|
18,7 → 18,18 |
private $fonction_cryptage_mdp_cookie = 'md5'; |
private $objet_identification = null; |
/*public function IdentificationControleur() { |
Controleur::__construct(); |
$this->cookie_persistant_nom = session_name().'-memo'; |
$this->cookie_persistant_nom = 'pap-admin_papyrus_-memo'; |
$this->duree_identification = time()+Config::get('duree_session_identification'); |
$this->fonction_cryptage_mdp_cookie = Config::get('fonction_cryptage_mdp_cookie'); |
}*/ |
public function afficherFormulaireIdentification($id_annuaire, $donnees = array()) { |
$this->chargerModele('AnnuaireModele'); |
$annuaire = $this->AnnuaireModele->chargerAnnuaire($id_annuaire); |
32,11 → 43,13 |
} |
public function loggerUtilisateur($utilisateur, $pass) { |
$this->objet_identification = Config::get('objet_identification'); |
// on cree le cookie |
$this->creerCookie($utilisateur, $pass); |
// Loguer l'utilisateur |
// On loggue l'utilisateur |
$this->objet_identification->username = $utilisateur; |
$this->objet_identification->password = $pass; |
$this->objet_identification->login(); |
45,8 → 58,10 |
} |
public function deLoggerUtilisateur() { |
$this->objet_identification = Config::get('objet_identification'); |
$this->objet_identification->logout(); |
return true; |
} |
54,33 → 69,36 |
$this->objet_identification = Config::get('objet_identification'); |
$this->objet_identification->setAuth($nom_utilisateur); |
$pass = $this->objet_identification->password; |
$this->creerCookie($nom_utilisateur, $pass, true); |
} |
public function creerCookie($utilisateur, $pass, $pass_deja_crypte = false) { |
$this->objet_identification = Config::get('objet_identification'); |
// Expiration si l'utilisateur ne referme pas son navigateur |
$this->objet_identification->setExpire(0); |
$this->objet_identification->setIdle(0); |
// Création d'un cookie pour rendre permanente l'identification de Papyrus |
$pass_crypt = (!$pass_deja_crypte) ? md5($pass) : $pass; |
if(!$pass_deja_crypte) { |
$pass_crypt = md5($pass); |
} else { |
$pass_crypt = $pass; |
} |
$cookie_val = $pass_crypt.$utilisateur; |
setcookie(session_name().'-memo', $cookie_val, 0, '/'); |
} |
public function obtenirLoginUtilisateurParCookie() { |
$nom_session = Config::get('nom_session'); |
if (isset($_COOKIE[$nom_session])) { |
$cookie_val = $_COOKIE[$nom_session]; |
$login_utilisateur = substr($cookie_val, '32', strlen($cookie_val)); |
$nom_utilisateur = Config::get('nom_utilisateur'); |
if(isset($_COOKIE[$nom_utilisateur])) { |
$login_utilisateur = $_COOKIE[$nom_utilisateur]; |
return $login_utilisateur; |
} else { |
return false; |
} |
} |
} |
?> |
/trunk/controleurs/AnnuaireControleur.php |
---|
252,11 → 252,9 |
*/ |
public function ajouterNouvelleInscription($identifiant) { |
//TODO: fonction ignoblement grosse diviser en deux, trois voire quatres fonctions |
$this->chargerModele('DonneeTemporaireModele'); |
$valeurs = $this->DonneeTemporaireModele->chargerDonneeTemporaire($identifiant); |
//TODO: ça n'est pas très beau de sortir ici, à changer lorsque la fonction sera découpée |
if(!$valeurs || count($valeurs) == 0) { |
return false; |
} |
448,8 → 446,7 |
$tableau_mappage = $this->obtenirChampsMappageAnnuaire($id_annuaire); |
$longueur_id_inscription_temporaire = 8; |
$inscrits_en_attente = $this->DonneeTemporaireModele->chargerListeDonneeTemporaire($longueur_id_inscription_temporaire); |
$inscrits_en_attente = $this->DonneeTemporaireModele->chargerListeDonneeTemporaire('8'); |
$inscrits_en_attente_formates = array(); |
548,6 → 545,9 |
$donnees['champs'] = $champs; |
$url_modification_profil = self::getUrlModificationProfil($id_annuaire, $id_utilisateur); |
$donnees['url_modification_profil'] = $url_modification_profil; |
$navigateur = new NavigationControleur(); |
$donnees['navigation'] = $navigateur->afficherBandeauNavigationUtilisateur($id_annuaire ,$id_utilisateur, 'fiche'); |
695,8 → 695,6 |
public function modifierInscription($valeurs) { |
//TODO: fonction honteusement trop longue, découper en deux ou trois fonctions, |
// dont une chargée de la collecte des données du formulaire |
$this->chargerModele('MetadonneeModele'); |
$id_utilisateur = $valeurs['id_utilisateur']; |
839,7 → 837,6 |
$prenom = ''; |
} |
$valeurs['text_'.$tableau_mappage[1]['champ_nom']] = AppControleur::formaterMotEnMajuscule($valeurs['text_'.$tableau_mappage[1]['champ_nom']]); |
$nom = $valeurs['text_'.$tableau_mappage[1]['champ_nom']]; |
856,8 → 853,6 |
$appli_controleur = new ApplicationExterneControleur(); |
// on fait un trim sur l'email pour éviter des bugs |
// lors du login si un espace ou saut de ligne a été tapé |
$params = array ( |
'id_utilisateur' => $id_utilisateur, |
'prenom' => $prenom, |
1079,6 → 1074,7 |
// TODO: ceci charge toutes les métadonnées, voir si l'on ne peut pas parser le formulaire |
// pour ne charger que ce qui est nécéssaire |
foreach($metadonnees as $nom_champ => $metadonnee) { |
$id_champ = $metadonnee['amc_id_champ']; |