47,7 → 47,7 |
$this->chargerModele('AnnuaireModele'); |
$data['erreurs'] = null; |
$data['annuaires'] = $this->AnnuaireModele->chargerListeAnnuaire(); |
$liste_annu = $this->getVue(config::get('chemin_squelettes_annuaires').'liste_annu', $data); |
$liste_annu = $this->getVue(Config::get('dossier_squelettes_annuaires').'liste_annu', $data); |
|
return $liste_annu; |
} |
63,7 → 63,7 |
$data['erreurs'] = array(); |
$data['annuaire'] = $this->AnnuaireModele->chargerAnnuaire($id, true); |
$data['metadonnees'] = $this->MetadonneeModele->chargerListeMetadonneeAnnuaire($id); |
$annuaire = $this->getVue(config::get('chemin_squelettes_annuaires').'annuaire', $data); |
$annuaire = $this->getVue(Config::get('dossier_squelettes_annuaires').'annuaire', $data); |
|
return $annuaire; |
} |
78,11 → 78,17 |
$this->chargerModele('AnnuaireModele'); |
$data['erreurs'] = array(); |
$data['champs'] = $this->obtenirChampsMappageAnnuaire($id); |
$total_inscrits = $this->AnnuaireModele->chargerNombreAnnuaireListeInscrits($id); |
$data['annuaire'] = $this->AnnuaireModele->chargerAnnuaireListeInscrits($id, $data['champs'][0], $numero_page, $taille_page); |
$data['pagination'] = array('numero_page' => $numero_page, 'taille_page' => $taille_page); |
|
$annuaires_inscrits = $this->getVue(config::get('chemin_squelettes_annuaires').'annuaire_inscrits', $data); |
$url_base = clone(Registre::getInstance()->get('base_url_application')); |
$url_base->setVariableRequete('m','annuaire_inscrits'); |
$url_base->setVariableRequete('id_annuaire',$id); |
|
$data['pagination'] = $this->paginer($numero_page,$taille_page,$total_inscrits,$url_base); |
|
$annuaires_inscrits = $this->getVue(Config::get('dossier_squelettes_annuaires').'annuaire_inscrits', $data); |
|
return $annuaires_inscrits; |
} |
|
100,6 → 106,7 |
|
$this->chargerModele('MetadonneeModele'); |
$donnees['aa_id_annuaire'] = $id_annuaire; |
|
$metadonnees = $this->MetadonneeModele->chargerListeMetadonneeAnnuaire($id_annuaire); |
|
// TODO: ceci charge toutes les métadonnées, voir si l'on ne peut pas parser le formulaire |
108,6 → 115,8 |
|
$id_champ = $metadonnee['amc_id_champ']; |
$nom_champ = $metadonnee['amc_abreviation']; |
|
$metadonnee['aa_id_annuaire'] = $id_annuaire; |
// on charge le formaulaire d'affichage de chacune des métadonnées |
$donnees['champs'][$nom_champ] = $this->afficherFormulaireChampMetadonnees($id_champ,$metadonnee); |
} |
118,7 → 127,7 |
if(!$this->formulaireExiste($annuaire['informations']['aa_code'])) { |
$formulaire_inscription = $this->genererFormulaireInscription($donnees); |
} else { |
$formulaire_inscription = $this->GetVue(config::get('chemin_squelettes_formulaires').$annuaire['informations']['aa_code'].'_inscription',$donnees); |
$formulaire_inscription = $this->GetVue(Config::get('dossier_squelettes_formulaires').$annuaire['informations']['aa_code'].'_inscription',$donnees); |
} |
|
return $formulaire_inscription; |
139,7 → 148,7 |
$donnees['amc_id_champ'] = $id_champ; |
$this->chargerModele('MetadonneeModele'); |
$nom__type_champ = $this->MetadonneeModele->renvoyerCorrespondanceNomTemplateChamp($donnees['amc_ce_type_affichage']); |
return $this->getVue(config::get('chemin_squelettes_champs').$nom__type_champ,$donnees); |
return $this->getVue(Config::get('dossier_squelettes_champs').$nom__type_champ,$donnees); |
} |
|
/**-------- Fonctions d'inscription -------------------------------------------------------------------------------*/ |
162,7 → 171,6 |
// on itère sur le tableau de valeur pour récupérer les champs de mappage; |
foreach($valeurs as $nom_champ => $valeur) { |
|
|
// pour chaque valeur |
// on extrait l'id du champ |
$ids_champ = mb_split("_",$nom_champ, 3); |
171,7 → 179,7 |
|
$type = $ids_champ[0]; |
$id_champ = $ids_champ[2]; |
$confirmation = $valeurs[$type.'_'.$id_champ]; |
$confirmation = $ids_champ[2]; |
|
} else { |
$type = $ids_champ[0]; |
188,9 → 196,14 |
if($cle_champ) { |
// on ajoute sa clé correspondante dans le tableau des champs mappés |
// qui sont les champs à vérifier |
if($confirmation) { |
$valeurs_mappees[$cle_champ.'_conf'] = $valeur; |
} else { |
$valeurs_mappees[$cle_champ] = $valeur; |
} |
|
} |
} |
|
// vérification des champs minimaux : nom, prénom, mail, mot de passe |
// TODO: des champs minimaux différents pour chaque annuaire ? comment les stocke t'on ? |
206,7 → 219,7 |
$valeurs_mappees['champ_prenom'], |
$code_confirmation); |
// Si tout s'est bien passé, on affiche la page de confirmation |
return $this->getVue(config::get('chemin_squelettes_annuaires').'annuaire_inscription_reussie',array()); |
return $this->getVue(Config::get('dossier_squelettes_annuaires').'annuaire_inscription_reussie',array()); |
} |
|
/** |
224,9 → 237,11 |
// TODO afficher vue en cas d'echec |
} |
|
$id_annuaire = $valeurs['aa_id_annuaire']; |
//$id_annuaire = $valeurs['aa_id_annuaire']; |
unset($valeurs['aa_id_annuaire']); |
|
$id_annuaire = 1; |
|
$this->chargerModele('MetadonneeModele'); |
|
$tableau_mappage = $this->obtenirChampsMappageAnnuaire($id_annuaire); |
235,6 → 250,7 |
|
// on itère sur le tableau de valeur pour récupérer les métadonnées; |
foreach($valeurs as $nom_champ => $valeur) { |
|
// pour chaque valeur |
// on extrait l'id du champ |
$ids_champ = mb_split("_",$nom_champ); |
246,7 → 262,7 |
// on ajoute sa clé correspondante dans l'annuaire mappé et sa valeur dans le tableau des champs mappés |
$valeurs_mappees[$tableau_mappage[0][$cle_champ]] = $valeur; |
// et on supprime sa valeur du tableau de valeurs pour ne pas la retrouver lors |
// de l'instertion des métadonnées |
// de l'insertion des métadonnées |
unset($valeurs[$nom_champ]); |
} |
} |
259,6 → 275,7 |
|
// l'identifiant du champ est la dernière valeur du tableau |
$ids_champ = mb_split("_",$nom_champ); |
$type = $ids_champ[0]; |
$id_champ = $ids_champ[count($ids_champ) - 1]; |
|
// Si l'insertion dans la base a réussi |
279,7 → 296,7 |
$this->AnnuaireModele->supprimerDonneesInscriptionTemporaire($identifiant); |
|
// TODO: renvoyer l'utilisateur sur sa fiche |
return true; |
return $this->afficherFormulaireUploadImage($id_annuaire, $identifiant); |
} |
|
/** |
323,9 → 340,10 |
$this->chargerModele('MetadonneeModele'); |
$champs_metadonnees= $this->MetadonneeModele->chargerListeValeursMetadonneesUtilisateur($id_annuaire, $id_utilisateur); |
|
$donnees['id_annuaire'] = $id_annuaire; |
$donnees['champs'] = array_merge($tableau_valeurs, $champs_metadonnees); |
|
$annuaire_inscrits = $this->getVue(config::get('chemin_squelettes_fiches').'annuaire_tela_inscrits_fiche',$donnees); |
$annuaire_inscrits = $this->getVue(Config::get('dossier_squelettes_fiches').'annuaire_tela_inscrits_fiche',$donnees); |
|
return $annuaire_inscrits; |
} |
347,7 → 365,7 |
$base_url->setVariableRequete('id',$code_confirmation_inscription); |
|
$donnees = array('nom' => $nom, 'prenom' => $prenom, 'lien_confirmation_inscription' => $base_url->getURL()); |
$contenu_mail = $this->getVue(config::get('chemin_squelettes_mails').'mail_confirmation_inscription',$donnees); |
$contenu_mail = $this->getVue(Config::get('dossier_squelettes_mails').'mail_confirmation_inscription',$donnees); |
|
// Pour envoyer un mail HTML, l'en-tête Content-type doit être défini |
$entetes = 'MIME-Version: 1.0' . "\r\n"; |
365,6 → 383,7 |
* @param Array $valeurs les valeurs à insérer |
*/ |
private function InsererDansTableTemporaireEtCreerCodeConfirmationInscription($valeurs) { |
|
// Le code de confirmation est constitué des 8 premiers caractères de l'identifiant de session |
$code_confirmation = substr(session_id(), 0, 8) ; |
|
417,14 → 436,13 |
|
$erreurs = false; |
|
|
if(!$this->mailValide($valeurs['champ_mail'])) { |
$erreurs['text_'.$tableau_mappage[1]['champ_mail']] = 'mail invalide'; |
} |
|
if(trim($valeurs['pass']) == '' |
|| $valeurs['pass_conf'] != $valeurs['pass']) { |
$erreurs['pass_'.$tableau_mappage[1]['champ_pass']] = 'mot de passe invalide'; |
if(trim($valeurs['champ_pass']) == '' |
|| $valeurs['champ_pass'] != $valeurs['champ_pass']) { |
$erreurs['password_'.$tableau_mappage[1]['champ_pass']] = 'mot de passe invalide'; |
} |
|
if(trim($valeurs['champ_nom']) == '') { |
474,6 → 492,37 |
return $valeur_modifiee; |
} |
|
private function verifierEtRemplacerValeurChampPourAffichage($type, $valeur) { |
|
$valeur_modifiee = $valeur; |
|
/*switch($type) { |
|
// cas du champ texte, à priori, rien de particulier |
case 'text': |
$valeur_modifiee = $valeur; |
break; |
|
// cas du champ checkbox |
case 'checkbox': |
// Si c'est un groupe checkbox, alors c'est une liste de checkbox liée à une ontologie |
if(is_array($valeur)) { |
// on stocke les valeurs d'ontologies liées au cases cochées |
$valeur_modifiee = implode(Config::get('separateur_metadonnee'), array_keys($valeur)); |
} else { |
// sinon on stocke 1 pour indique que la case est cochée (cas de la checkbox oui/non) |
$valeur_modifiee = 1; |
} |
break; |
|
default: |
$valeur_modifiee = $valeur; |
break; |
}*/ |
|
return $valeur_modifiee; |
} |
|
/** |
* Renvoie vrai ou faux suivant qu'un mail donné en paramètre est syntaxiquement valide (ne vérifie pas l'existence |
* de l'adresse) |
511,8 → 560,7 |
*/ |
private function formulaireExiste($nom_formulaire) { |
|
//echo Config::get('chemin_squelettes_formulaires').$nom_formulaire.'_inscription.tpl.html'; |
return file_exists(Config::get('chemin_squelettes').Config::get('chemin_squelettes_formulaires').$nom_formulaire.'_inscription.tpl.html'); |
return file_exists(Config::get('chemin_squelettes').Config::get('dossier_squelettes_formulaires').$nom_formulaire.'_inscription.tpl.html'); |
} |
|
/** |
520,9 → 568,9 |
* @param string $donnees les donnée à inclure dans le formulaire |
* @return string la vue contenant le formulaire généré |
*/ |
private function GenererFormulaireInscription($donnees) { |
private function genererFormulaireInscription($donnees) { |
|
$formulaire_modele = $this->getVue(config::get('chemin_squelettes_formulaires').'inscription',$donnees); |
$formulaire_modele = $this->getVue(Config::get('dossier_squelettes_formulaires').'inscription',$donnees); |
|
if($formulaire_modele) { |
return $formulaire_modele; |
532,5 → 580,82 |
|
return false; |
} |
|
/** |
* Renvoie le template de pagination, considérant des éléments donnés en paramètre |
*/ |
private function paginer($numero_page, $taille_page, $total, $url_base = '') { |
|
// TODO, faire plus complexe, tri alphabétique etc... |
$page_precedente = $numero_page-1; |
$page_suivante = $numero_page+1; |
|
$nombre_pages = round($total/$taille_page,'PHP_ROUND_HALF_DOWN') ; |
|
|
if($numero_page < 2) { |
$page_precedente = false; |
} |
|
if($taille_page*($numero_page) >= $total) { |
$page_suivante = false; |
} |
|
$donnees['pagination']= array('numero_page' => $numero_page, 'page_precedente' => $page_precedente, 'page_suivante' => $page_suivante, 'nombre_pages' => $nombre_pages, 'taille_page' => $taille_page); |
$donnees['base_url_pagination'] = clone($url_base); |
|
return $this->getVue(Config::get('dossier_squelettes_elements').'pagination',$donnees); |
|
} |
|
public function afficherFormulaireUploadImage($id_annuaire,$id_utilisateur) { |
|
$donnees['aa_id_annuaire'] = $id_annuaire; |
$donnees['id_utilisateur'] = $id_utilisateur; |
|
|
$donnees['amc_nom'] = 'Avatar'; |
$donnees['amc_id_champ'] = 101; |
|
|
return $this->getVue(Config::get('dossier_squelettes_champs').'image',$donnees); |
} |
|
/** |
* Ajoute une image uploadée à travers le formulaire |
* |
*/ |
public function ajouterImageUtilisateur($id_annuaire, $id_utilisateur, $fichier_a_stocker) { |
|
foreach($fichier_a_stocker as $nom_champ => $fichier) { |
|
//TODO: ajouter les vérifications de format |
|
$ids_champ = mb_split("_",$nom_champ, 3); |
|
if(count($ids_champ) == 2) { |
|
$type = $ids_champ[0]; |
$id_champ = $ids_champ[1]; |
|
} else { |
trigger_error('Ce champ n\'est pas relié à un annuaire'); |
return false; |
} |
|
$this->chargerModele('ImageModele'); |
$stockage_image = $this->ImageModele->stockerFichier($id_annuaire, $id_utilisateur, $fichier); |
|
$this->chargerModele('MetadonneeModele'); |
if($stockage_image && $this->MetadonneeModele->ajouterNouvelleValeurMetadonnee($id_champ,$id_utilisateur,$stockage_image)) { |
|
} else { |
return false; |
} |
} |
|
return true ; |
|
} |
} |
?> |