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 |
| Application pour la classe + docu.sql | docu.zip |
Pour la classe: docu.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 :