if (!isset($template)) { die; } if (isset($_GET['id']) && intval($_GET['id']) > 0) { $projet = intval($_GET['id']); } else { erreur_fatale('Erreur : projet non spécifié.'); } // Requête SQL $st = $db->prepare('SELECT * from versions WHERE projet=? ORDER BY position'); $st->execute(array($projet)); // Pas de résultat if ($st->rowCount() == 0) { $template->assign_block_vars('ZERO_VERSIONS', array()); } else { // Requête SQL : demandes associées $st2 = $db->prepare('SELECT * FROM demandes WHERE projet=:projet AND version=:version'); while ($row = $st->fetch(PDO::FETCH_ASSOC)) { $template->assign_block_vars('VERSION', array('NOM' => htmlentities($row['nom'], ENT_COMPAT, 'UTF-8'), 'DESCR' => wikicode2html($row['description']))); // FIXME : trop de requêtes SQL ? $st2->execute(array(':projet' => $projet, ':version' => $row['id'])); // Pas de résultat if ($st2->rowCount() == 0) { $template->assign_block_vars('VERSION.ZERO_DEMANDES', array()); } else { while ($demande = $st2->fetch(PDO::FETCH_ASSOC)) { $template->assign_block_vars('VERSION.DEMANDE', array('ID' => $demande['id'], 'TITRE' => htmlentities($demande['titre'], ENT_COMPAT, 'UTF-8'), 'AUTEUR' => $demande['auteur'], 'DESCR' => $demande['description'], 'STATUT' => $demande['statut'] == 0 ? 'ferme' : 'ouvert')); } } } }
if (isset($demande['version'])) { $template->assign_block_vars('VERSION', array('NOM' => htmlentities($demande['version'], ENT_COMPAT, 'UTF-8'))); } // Lien vers la page de modification de la demande if ($utilisateur->autorise(PERM_MANAGE_REQUESTS, $demande['projet_id'])) { $template->assign_block_vars('ADMIN_DEMANDE', array('DEMANDE_ID' => $demande['id'])); } // Formulaire d'ajout d'un commentaire if ($utilisateur->autorise(PERM_ADD_COMMENT, $demande['projet_id'])) { $template->assign_block_vars('AJOUT_COMMENTAIRE', array()); $template->assign_var('FORM_TOKEN', validity_token()); } // Affichage des commentaires $st = $db->prepare('SELECT c.id, c.auteur, c.texte, c.creation, c.resume, u.pseudo AS auteur_pseudo, u.nom AS auteur_nom, u.promotion AS auteur_promo FROM commentaires c LEFT OUTER JOIN utilisateurs u ON u.id=c.auteur WHERE c.demande=? ORDER BY id DESC'); $st->execute(array($demande['id'])); if ($st->rowCount() == 0) { $template->assign_block_vars('ZERO_COMMENTAIRES', array()); } else { while ($commentaire = $st->fetch(PDO::FETCH_ASSOC)) { $template->assign_block_vars('COMMENTAIRE', array('ID' => $commentaire['id'], 'AUTEUR' => $commentaire['auteur'], 'AUTEUR_PSEUDO' => $commentaire['auteur_pseudo'], 'AUTEUR_NOM' => $commentaire['auteur_nom'], 'AUTEUR_PROMO' => $commentaire['auteur_promo'], 'DATE' => format_date($commentaire['creation']), 'TEXTE' => wikicode2html($commentaire['texte']))); if ($commentaire['resume'] == 1) { $template->assign_block_vars('COMMENTAIRE.RESUME', array()); } else { $template->assign_block_vars('COMMENTAIRE.TEXTUEL', array()); } } }