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.
Libelle | Document |
---|---|
Scénarii | desciptif_textuel.pdf |
Base de donnée | docu_4_.sql |
Application | dokumission.zip |
Pour pouvoir travailler sur les thèmes, il a fallu agir sur 4 classes métier:
Pour la gestion des thèmes, 3 vues sont utilisées:
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 (appelle 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 |
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.
<?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; }
Les méthodes doctrine sont appelées de la manière suivante : $this→doctrine→em→
Pour un Select multiple:
<?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();
Pour un Select (une seul ligne) :
<?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();
Pour un Update et Insert :
<?php //Envoi d'une instance $this->doctrine->em->persist($theme); //Execution de la requête $this->doctrine->em->flush();
Liste des méthodes utilisées :