Ceci est une ancienne révision du document !
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
Libelle | Document |
---|---|
Scénarii | desciptif_textuel.pdf |
Base de donnée | docu_4_.sql |
Application | dokumission.zip |
Diagramme de cas d'utilisation des thèmes
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_confirmdeletetheme (La vue s'affiche si aucun document n'est affecté)
- v_formdeletetheme (Avant suppression, on demande si l'on souhaite garder les documents)
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.
Méthodes | Description |
---|---|
index | Méthode appelée par défaut (appel les vue supplémentaire tel que le menu, footer…) |
refresh | Appelée par l'index, initialise les outils nécessaires au premier affichage de la page (Paramètre de la BDD/fonction JS) |
addParentThem/updateParentThem | Ces méthodes ajoutent/modifient l'ensemble des thèmes qui existent pour le domaine choisi pour les ajouter dans les listes déroulante |
add | Ajoute un nouveau thème |
theme_modif | Est appelée quand on veut modifier un thème, celle-ci pré-remplit le domaine/thème parent |
update | Met à jour les informations modifiées |
deleteForm | 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 |
checkConfirmDelete | Appelée par deleteForm s'il n'y a pas de document |
delete | Supprime le thème |
saveDocs | Vérifie si l'utilisateur a décidé de garder ou non les documents |
updateDocs | Dans la table document, met l'identifiant de thème à nul |
refresh | 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)
<?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; }
Requête doctrine utilisées
Les méthode doctrine sont appelées de la manière suivante : $this→doctrine→em→
Pour un Select :
- Appel de createQuery (création de la requête)
- getResult (Récuération multiple)
- getSingleResult (Récupérer une seul valeur)
Pour un Update:
- Appel de createQuery
- execute (Execute la requête de mise à jour)
Pour une insertion:
- Persist (Prépare l'instance à être insérée)
- flush (Ajoute l'instance dans la base)
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é automatiquement)
- click Lors d'un clicque sur un élément on appel 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