etudiants:2014:beaugrand:doku

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
etudiants:2014:beaugrand:doku [2014/11/17 12:10] – créée charlyetudiants:2014:beaugrand:doku [2019/08/31 14:21] (Version actuelle) – modification externe 127.0.0.1
Ligne 1: Ligne 1:
-Diagramme de classe DokuMission : {{:etudiants:2014:beaugrand:diagrame_dokumission.png?200|}}+====== DokuMission ====== 
 +===== Contexte ===== 
 +==== Développement ==== 
 +Il s'agit d'adapter pour l'entreprise de créer un gestionnaire de documentation, qui permettra aux salariés de gérer/créer puis consulter/rechercher dans une documentation partagée. 
 + 
 +==== Outils de développement ==== 
 +  * PHP/Mysql 
 +  * Doctrine pour le mappage relationnel/Objet 
 +  * CodeIgniter pour la mise en place MVC 
 + 
 +===== Travail fourni (Thème)===== 
 +==== Document ==== 
 + 
 +|< 80% >| 
 +^ Libelle^Document^ 
 +| Scénarii |{{:etudiants:2014:beaugrand:desciptif_textuel.pdf|}} | 
 +| Base de donnée |{{:etudiants:2014:beaugrand:docu_4_.sql|}} | 
 +| Application | {{:etudiants:2014:beaugrand:dokumission.zip|}} | 
 +| Application pour la classe + docu.sql | {{:etudiants:2014:beaugrand:docu.zip|}} | 
 + 
 +**Pour la classe**: {{:etudiants:2014:beaugrand:docu:docu.zip|}} 
 +==== Diagramme de cas d'utilisation des thèmes ==== 
 + 
 +{{:etudiants:2014:beaugrand:diagramme_theme.png?500 | }} 
 + 
 +==== Modéle MVC ==== 
 + 
 +=== Modéle === 
 + 
 +Pour pouvoir travailler sur les thèmes, il a fallu agir sur 4 classes métier: 
 +  - Domaine 
 +  - Thème 
 +  - Document 
 +  - Utilisateur 
 + 
 +  * Un utilisateur est associé à des documents s'il en possède. 
 +  * Un utilisateur peut travailler dans un ou plusieurs domaines. 
 +  * Les documents sont identifiés dans des thèmes. 
 +  * Un thème appartient à un domaine. 
 +  * Un thème peut posséder un thème parent. 
 +  * Un thème appartient à un utilisateur. 
 + 
 + 
 +=== Vue === 
 + 
 +Pour la gestion des thèmes, 3 vues sont utilisées: 
 +  * v_theme (Vue générale, liste les thèmes triés + formulaire d'ajout et de modification){{:etudiants:2014:beaugrand:vuegeneraltheme.png?600|}} 
 + 
 +  * v_confirmdeletetheme (La vue s'affiche si aucun document n'est affecté) 
 +{{:etudiants:2014:beaugrand:confirmdeletetheme.png?600|}} 
 + 
 +  * v_formdeletetheme (Avant suppression, on demande si l'on souhaite garder les documents) 
 +{{:etudiants:2014:beaugrand:formdeletetheme.png?600|}} 
 + 
 +=== Contrôleur === 
 + 
 +La gestion des thèmes est effectuée dans Gtheme. Le contrôleur possède plusieurs méthode pour optimiser la mise en place des fonctionnalités. 
 + 
 + 
 +|< 80% >| 
 +^ Méthodes^Description^ 
 +| <html><span class="method">index </span></html>| Méthode appelée par défaut (appelle les vue supplémentaire tel que le menu, footer...) | 
 +| <html><span class="method">refresh</span></html> | Appelée par l'index, initialise les outils nécessaires au premier affichage de la page (Paramètre de la BDD/fonction JS) | 
 +| <html><span class="method">addParentThem/updateParentThem</span></html> | Ces méthodes ajoutent/modifient l'ensemble des thèmes qui existent pour le domaine choisi pour les ajouter dans les listes déroulante | 
 +| <html><span class="method">add </span></html>|Ajoute un nouveau thème | 
 +| <html><span class="method">theme_modif </span></html>| Est appelée quand on veut modifier un thème, celle-ci pré-remplit le domaine/thème parent | 
 +|<html><span class="method">update </span></html> | Met à jour les informations modifiées | 
 +| <html><span class="method">deleteForm </span></html>| Cette méthode vérifie si le thème possède des documents, suivant le résultat la vue affichée ne sera pas la même | 
 +| <html><span class="method">checkConfirmDelete </span></html>| Appelée par **deleteForm** s'il n'y a pas de document | 
 +| <html><span class="method">delete </span></html>| Supprime le thème | 
 +| <html><span class="method">saveDocs </span></html>| Vérifie si l'utilisateur a décidé de garder ou non les documents | 
 +|<html><span class="method">updateDocs </span></html> | Dans la table document, met l'identifiant de thème à nul | 
 +| <html><span class="deleteDocs ">refresh</span></html>| Supprime le document | 
 + 
 + 
 +=== Librairie === 
 +Appelée dans le constructeur : //$this->load->library('Modelutils');// 
 +Utilisation de la librairie **ModelUtils**, dans cette classe 2 modèles ont étés créés. 
 +  * cleanPost (nettoie les variables) 
 +  * ifempty (Reçoit un tableau pour vérifier chaque contenu, si vide, retourne false) 
 + 
 +<sxh php;title:ModelUtis.php> 
 +<?php 
 +/** 
 + * Récupére un array puis vérifie si une variable est vide 
 + * @param $params 
 + * @return boolean 
 + */ 
 + public function ifempty($params=array()){ 
 + $checked=true; 
 + foreach ($params as $param){ 
 + if($checked==true){ 
 + if(empty($param)){ 
 + $checked=false; 
 +
 +
 +
 + return $checked; 
 +
 +</sxh> 
 +===== Requêtes doctrine utilisées ===== 
 + 
 +Les méthodes doctrine sont appelées de la manière suivante : //$this->doctrine->em->// 
 + 
 +Pour un //Select multiple//: 
 + 
 +<sxh php;title:Gtheme.php> 
 +<?php 
 +      //Création de la requête paramétrée 
 +      $queryDomaine = $this->doctrine->em->createQuery("SELECT d FROM Domaine d JOIN d.monde m WHERE m.id=:utilisateur"); 
 +      //Paramètre 
 +      $queryDomaine->setParameter('utilisateur',$user); 
 +      //Récupère tous les résultats 
 +      $domaine = $queryDomaine->getResult(); 
 +</sxh> 
 + 
 +Pour un //Select// (une seul ligne) : 
 + 
 +<sxh php;title:Gtheme.php> 
 +<?php 
 +     $queryThemeid=$this->doctrine->em->createQuery("SELECT t FROM theme t WHERE t.id=:theme"); 
 +     $queryThemeid->setParameter('theme',$themeid); 
 +     //Récupére un seul résultat 
 +     $themeid=$queryThemeid->getSingleResult(); 
 +</sxh> 
 + 
 +Pour un //Update et Insert// : 
 + 
 +<sxh php;title:Gtheme.php> 
 +<?php 
 +    //Envoi d'une instance 
 +    $this->doctrine->em->persist($theme); 
 +    //Execution de la requête 
 +    $this->doctrine->em->flush(); 
 +</sxh> 
 +===== Jsutils ===== 
 + 
 +__Liste des méthodes utilisées :__ 
 +  - //postFormAndBindTo// Poste le formulaire 
 +  - //getAndBindTo// Effectue une action suite à un événement (les paramètres de l'id Html sont envoyés automatiquement) 
 +  - //click// Lors d'un clique sur un élément on appelle une autre méthode 
 +  - //show// Affiche l'élément mis en paramètre 
 +  - //hide// Cache l'élément mis en paramètre 
 +  - //get// Effectue une redirection  
 +  - //doSomethingOn// Peut servir à ajouter ou supprimer des éléments dans un contenu existant 
 +  - //compile// Ajoute la portion de code écrite vers la vue
  • etudiants/2014/beaugrand/doku.1416222656.txt.gz
  • Dernière modification : il y a 6 ans
  • (modification externe)