Go to file
Lex a254373b68 project list admin + delete project 2016-03-11 16:46:09 +01:00
admin123 project list admin + delete project 2016-03-11 16:46:09 +01:00
images init 2016-01-27 13:14:19 +01:00
lib project list admin + delete project 2016-03-11 16:46:09 +01:00
.gitignore init 2016-01-27 13:14:19 +01:00
404.php init 2016-01-27 13:14:19 +01:00
README.md README 2016-03-09 22:01:44 +01:00
database.sql Export de la base de données 2016-01-27 13:26:24 +01:00
index.php Merge branch 'master' of https://gitlab.deblan.org/deblan/lpwd-php-portfolio 2016-01-28 10:45:43 +01:00
project.php Merge branch 'master' of https://gitlab.deblan.org/deblan/lpwd-php-portfolio into pitton 2016-03-10 13:53:30 +01:00
style.css pager 2016-01-28 10:26:50 +01:00

README.md

Travail à réaliser

L'objectif de cet exercice est d'introduire l'absraction du code par l'utilisation de fonctions. Il permet également d'aller un peu plus loin en SQL via PDO. Vous pourrez vous amuser avec les requêtes munies de paramètres à traiter.

Pagination

La page d'index affichent les projets avec une pagination. Actuellement, les projets sont affichés 5 par 5. Pour passer d'une page à l'autre, il suffit d'ajouter un paramètre dans la requête en passant par la query_string : ?page=n, n le numéro de la page à afficher.

Réalisez l'affichage de la pagination sous la forme suivante :

Première page | Précédent | 1 | 2 | 3 | ... | Suivant | Dernière page

Il faudra mettre en avant la page courrante dans le listing.

Les liens Précédent et Suivant doivent être masqués si nous sommes à la première ou la dernière page.

Commentaires

Nous devons pouvoir déposer des commentaires sur chaque projet. Ces commentaires seront bien évidement affichés sur ces pages.

Un commentaire est composé de :

  • le nom ou pseudo de l'auteur
  • le site web de l'auteur
  • l'email de l'auteur
  • sa date de publication
  • son contenu

La date est générée automatiquement. Tous les champs sont obligatoires à l'exception du site web. Il faudra afficher l'avatar de l'auteur en utilisant le service gravatar. Ne pas réutiliser ce code source mais ne vous génez pas pour vous en inspirer.

Flux

Réalisez un flux RSS présentant les 10 derniers projets mis en ligne.

Vous devrez concevoir et réaliser des fonctions php.

Réécriture d'URL

Documentez-vous et réalisez une réécriture des URL (url rewriting) afin de les rendre plus sexy.

Je souhaites accéder aux projets via : http://localhost/projet/{id}/{slug} Le slug est une chaine de caractère contenant le nom du projet sans les caractères spéciaux. Vous devez donc créer une fonction pour le générer.

Exemple : le slug de Je suis une licorne, c'est classe quand même, non ? est je-suis-une-licorne-c-est-classe-quand-meme-non. Si j'avais un projet avec ce titre et si son id était 42, alors l'adresse du projet serait : http://localhost/projet/42/je-suis-une-licorne-c-est-classe-quand-meme-non

Administration

Pour le moment, la rédaction des articles est réalisée via phpmyadmin. Par ailleurs, il n'y a aucun modération des commentaires. Vous devez donc développer un backoffice (BO) pour administrer les contenus du portfolio.

L'accès au BO est reservé aux administrateurs. Prévoyez ainsi une authentification avec la méthode que vous préférez parmis :

  • Base de données + formulaire (recommandé) - @see sessions sessions
  • Identifiants en durs dans le code + formulaire (il manque pas grand chose pour utiliser une bdd ;)) - @see sessions sessions
  • Basic ou Digest HTTP authentication (pour les flemmards !)

Les commentaires doivent pouvoir être mis hors-ligne voire supprimés. Les articles doivent pouvoir être ajoutés, modifiés et supprimés depuis l'interface.

Petit plus

Les étudiants qui me proposeront une correction via des pull-request auront 1 point supplémentaire sur la note finale. Les intéressés devront créer un compte sur Gitlab. Je les ajouterai au dépôt et vous me transmettrez votre travail dans une branche portant votre nom : nom-prenom.

Installation du projet

$ git clone git@gitnet.fr:deblan/lpwd-php-portfolio.git
$ git branch nom-prenom # à modifier
$ git checkout nom-prenom
$ ... modifications ...
$ git commit add <les fichiers modifiés>
$ git commit -m "Explications des modifications"
$ git push -u origin nom-prenom