Ceci est une ancienne révision du document !
Projet CMS
Un système de gestion de contenu ou SGC (Content Management System ou CMS) est un outil web permettant de mettre en ligne des contenus Web. WordPress, Joomla, Drupal, Spip en sont les représentants les plus populaires. Le projet consiste à concevoir une application Web permettant de générer du contenu structuré, affiché ensuite sur un site web.
Fichiers
Modalités de remise du travail
- jeudi 24 avril, minuit : rendre projet PHP + Lisezmoi.txt voir Modalités de remise de votre travail
- Semaine du 12 mai : soutenances + remise rapport (pdf)
Compléments
Bonnes pratiques
- Alimenter correctement la base de données en ajoutant des enregistrements valides et en nombre suffisant, mettant en valeur votre travail
- respecter la Normalisation HTML 5/Css 3
- Structurer les fichiers et dossiers de manière cohérente
- Nommer en respectant les normes et de manière significative (pages, fonctions, variables…)
- créer et utiliser des fonctions pour :
- Accès à la base de données pour chargements ou mises à jour d'enregistrements
- Affichages complexes (nécessitant php) dans les pages HTML
- Fonctions utilitaires
Exemples de fonctions
//Retourne une instance de connexion PDO à la base de données function connect(){ ... } //Retourne un tableau associatif des utilisateurs function getUsers(){ $users=array(); $db = connect(); $sql = 'SELECT * FROM user'; $statement=$db->query($sql); foreach ($statement as $row) { $u=array(); $u["login"]=$row["login"]; $u["password"]=$row["password"]; $u["mail"]=$row["mail"]; $users[]=$u; } return $users; } //Supprime l'utilisateur dont l'$id est passé en paramètre function deleteUser($id){ ... }
//Retourne une liste HTML (<select>) des utilisateurs function usersAsSelect($name="users"){ $users=getUsers(); $result="<select id='".$name."' name='".$name."'>"; foreach ($users as $user){ $result.="<option value='".$user["id"]."'>".$user["login"]."</option>"; } $result.="</select>"; return $result; } //Retourne un tableau HTML des sections function sectionsAsTable(){ ... }
//Crée une variable de session de nom $name contenant $value function addSessionVar($name,$value){ ... } //Retourne les informations de l'utilisateur connecté (tableau associatif stocké en variable de session) function getUserInfo(){ ... }
SQL
Quelques exemples d'instructions SQL utilisables :
Pensez à tester votre instruction SQL dans phpMyAdmin avant intégration à du code PHP
--Connexion
Le mieux est de créer une fonction pour la connexion :
function connect(){ $db=null; try{ $db = new PDO('mysql:host=localhost;dbname=minicms',"root", ""); $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); }catch(Exception $e){ echo "Erreur de connexion"; } return $db; }
--Lecture : READ
SELECT * FROM SECTION;
SELECT title,description FROM section;
SELECT * FROM section where id=2;
SELECT * FROM section where idParent=2;
SELECT * FROM section INNER JOIN page ON section.idPage=page.id where section.id=2;
$db = connect(); $sql = 'SELECT * FROM section'; $statement=$db->query($sql); foreach ($statement as $row) { print $row['title'] . "\t"; print $row['description'] . "\t"; }
--Ajout : ADD
INSERT INTO section VALUES('Un Titre','Aucune description',1,2);
$db = connect(); $db->exec("INSERT INTO section VALUES('Un Titre','Aucune description',1,2);");
-- Modification : UPDATE
UPDATE section SET titre='Autre Titre', Description='Autre description' WHERE id=1;
$db = connect(); $db->exec("UPDATE section SET titre='Autre Titre', Description='Autre description' WHERE id=1;");
-- Suppression : DELETE
DELETE FROM section WHERE id=1;
$db = connect(); $db->exec("DELETE FROM section WHERE id=1;");
Attention, un enregistrement qui est associé à des enregistrements fils ne peut être supprimé, sans la suppression préalable de ses fils :
Exemples :
Exemples :
- Si une page est associée à une section, avant de supprimer la page, il faut supprimer la section associée.
- Si une section a des sections enfants, avant de supprimer la section, il faut supprimer les sections qui lui sont associées.
Discussion
The Ultra Modern Dmx Lighting Systems For Nightclubs 대구오피
The Ultra Modern Dmx Lighting Systems For Nightclubs 대구오피
Why Some Women Hate Strip Clubs (And Why They Shouldn't) 하이오피주소 (toyotastadiumfrisco.com)
Why Some Women Hate Strip Clubs (And Why They Shouldn't) 하이오피주소 (toyotastadiumfrisco.com)
Buying Silver On The Web - Aren't Getting Duped 부산밤문화 - board-en-risingcities.platform-dev.bigpoint.com,
Buying Silver On The Web - Aren't Getting Duped 부산밤문화 - board-en-risingcities.platform-dev.bigpoint.com,
Golf Club Tips - Pointers Consider When Buying Clubs 울산마사지 (www.keryet.com)
Golf Club Tips - Pointers Consider When Buying Clubs 울산마사지 (www.keryet.com)
Splash From Spectacular Holidays To Sin City 대구밤문화 - www.zanelesilvia.woodw.o.r.t.hwww.gnu-darwin.org -
Splash From Spectacular Holidays To Sin City 대구밤문화 - www.zanelesilvia.woodw.o.r.t.hwww.gnu-darwin.org -
Silver Investment 101 인천오피
Silver Investment 101 인천오피
What Creates A Good Plan To Lose Weight? - The Role Of Shakes & Bars 충장오피
What Creates A Good Plan To Lose Weight? - The Role Of Shakes & Bars 충장오피
Buying Golf Sets For The Beginner Golfer - Where To Start? 제주밤문화 (www.idc1680.com)
Buying Golf Sets For The Beginner Golfer - Where To Start? 제주밤문화 (www.idc1680.com)
New Year's Eve In Las Vegas 부산오피
New Year's Eve In Las Vegas 부산오피
Something About Filipino Women For Marriage & Dating Online 울산오피
Something About Filipino Women For Marriage & Dating Online 울산오피
Las Vegas - Have A Fun-Filled Visit To The Las Vegas 달서구오피
Las Vegas - Have A Fun-Filled Visit To The Las Vegas 달서구오피
Ballet Bar - Significance Of These Bars For Dance! 광주마사지
Ballet Bar - Significance Of These Bars For Dance! 광주마사지
Paper Party Plates And Wine Glasses Help Make Holiday Theme Parties Successful 수성구오피 (www.myfsbonline.de)
Paper Party Plates And Wine Glasses Help Make Holiday Theme Parties Successful 수성구오피 (www.myfsbonline.de)
How To Throw A Thanksgiving Party On An Affordable Budget 중구오피 (https://clients1.google.com.co/)
How To Throw A Thanksgiving Party On An Affordable Budget 중구오피 (https://clients1.google.com.co/)