etudiants:2014:jeremy.habit:docuwiki

Ceci est une ancienne révision du document !


Docu-Pro

Etablissement

Une grande surface spécialisée dans différents secteurs (notion de Monde).

Développement

Il s'agit de créer un gestionnaire de documentation adapté à une entreprise, qui permettra aux salariés de gérer/créer puis consulter/rechercher dans une documentation partagée.

Outils

  • Développement sous Eclipse.
  • Utilisation de doctrine, DAO, JsUtils.
  • Utilisation du framework CodeIgniter.

Langages

  • PHP
  • MySQL

Fonctionnalité : Recherche

Controleur

→ un seul contrôleur « CRecherche ».

Les fonctions
Nom Description
index() Charge les vues
_construct() Charge la librairie pour les sessions
search() Récupère la valeur recherchée ainsi que les cases cochées par l'utilisateur puis retourne ces informations vers resultatSearch()
resultatSearch() Effectue les requêtes SQL selon les cases cochées et la valeur recherchée. Tout type de résultat est géré (valeur recherchée nulle, aucun résultat après la recherche,etc)
loadViewExecSearch() Fonction exécutée au click d'un résultat : si on clique sur un monde, cette fonction se chargera d'afficher les domaines contenus dans ce dernier. Si on clique sur un domaine, sera alors affichés les thèmes présents dans ce domaine, etc

Vues

Nom Description
vHeader Affichage de l’en tête de la page
vMenu Affichage du menu à gauche
vRecherche Affichage de la zone de saisie pour la recherche, les cases a cochées et une zone consacrées aux résultats
vResultatRecherche Affichage des résultats dans la zone prévue dans la vue vRecherche
vExecSearch Affichage des informations concernant l'élément cliqué toujours dans la zone prévue dans la vue vRecherche
v_footer Affichage du pied-de-page

Base de donnée

aucun changement à était fait mais quelques insertions pour les tests.

Utilisation de Jsutils

	/**
	 * @briefs Affichage des informations de l'utilisateur
	 * @details Modification des informations personalles de l'utilisateur
	 */
	public function _affichMonCompte(){
		$this->jsutils->click("#BtnMDP", $this->jsutils->show('#password'));
		$this->jsutils->click("#LienRetourMDP", $this->jsutils->hide('#password'));
		$this->jsutils->click("#BtnInfo", $this->jsutils->show('#info'));
		$this->jsutils->click("#LienRetourInfo", $this->jsutils->hide('#info'));
		$this->jsutils->click("#BtnEmail", $this->jsutils->show('#divEmail'));
		$this->jsutils->click("#LienRetourEmail", $this->jsutils->hide('#divEmail'));
		
		$this->jsutils->postFormAndBindTo("#BtnValider1", "click", "/wikiPro/compte/_modifierMDP","password","#MsgPasse");
		$this->jsutils->postFormAndBindTo("#BtnValider2", "click", "/wikiPro/compte/_modifierNomPrenom","info","#MsgInfo");
		$this->jsutils->postFormAndBindTo("#BtnValider3", "click", "/wikiPro/compte/_modifierEmail","divEmail","#MsgEmail");
		$this->jsutils->compile();
		
		$utilisateur = $this->_chargerUtilisateur();
		$this->load->view("v_gererMonCompte",array("user"=>$utilisateur));
	}

Utilisation de DAO

	/**
	 * @brief Modification du mot de passe
	 * @details	saisi de l'ancien mot de passe + nouveau mot de passe
	 * @details Vérifie si l'un des champs n'est pas vide
	 */
	public function _modifierMDP(){
		$Passe1 = $_POST['AncienPassword'];
		$passe2 = $_POST['AncienPassword2'];
		$newPasse = $_POST['NewPassword'];
		$user = $this->_chargerUtilisateur();
		if($Passe1 != null || $passe2 != null || $newPasse != null){
			if($this->_verifierMDP($Passe1,$passe2)){
				$user->setPassword($newPasse);
				DAO\update($user);
				echo "Modification de votre mot de passe réussi";
			}
		}
		else{
			echo "veuillez saisir les champs mots de passe";
		}
	}

Exemple DQL (doctrine)

<?php
//Création de la requête d'update
$query = $this->doctrine->em->createQuery("UPDATE utilisateur u SET u.nom ='%$nom%' WHERE u.id=1"); 
//Exécution de la requête.
$search = $contenu->execute();

Avant Aprés
  • etudiants/2014/jeremy.habit/docuwiki.1419861251.txt.gz
  • Dernière modification : il y a 7 ans
  • (modification externe)