Bonjour,

Pour un projet étudiant, je dois créer un mini CMS sous CakePHP permettant :

  • Administrer un site
  • Permettre de choisir dans quel block de notre site (header, footer...etc...) un contenu sera affiché et sur quel page/menu

Bref, toute les caractéristiques d'un vrai CMS. Mon problème se situe au niveau de la base de donnée. Je n'ai aucune idée de comment la créer, en particulier pour gérer dans quel block placé un élément par rapport à une page/menu choisi par l'administrateur par exemple?

Pour exemple, pouvoir choisir de placé un slider dans ma page contact, dans un block bien précis (en fonction du design, les blocks peuvent être différent bien sur).

Merci pour votre aide et vos conseils.

4 réponses


A mon avis le principe doit être un peu le même que WordPress, en gros tu gères ton site (administration, partie client, ...) avec CakePHP. Pour cela, tu peux regarder la série "Création d'un site de A à Z avec CakePHP" sur ce site. Ensuite tu créées un système de template. Tu pourras ensuite choisir le template en admin.

kal-el
Auteur

Merci pour ta réponse. J'ai déjà regarder les tutos. Mais cela ne répond qu'à la moitié de ce que je veux faire. Je voudrais pouvoir positionnée une liste de catégorie par exemple sur la sidebar du template, ou encore décidé de placer mon slider seulement dans la page contact au dessus du formulaire, comme on peut le faire avec un vrai CMS. Mais je ne vois pas comment schématiser ma base de donnée pour ça.

Tu créées ta base avec tous tes éléments, une table par MVC. Ensuite le design va se faire dans la vue donc par exemple pour ton slider, tu le crées dans la vue index.ctp.

kal-el
Auteur

Non en fait je crois que tu n'as pas compris ce que je veux faire. Il s'agit en fait ici de contrôler depuis l'administration, a quel endroits les éléments vont se positionner dans le Template.
Par exemple, sous Joomla, lorsque je créer un article ou un slider, je peux par exemple décidé de l'affiché sur la page "ma_page" à la position "top" par exemple. Je sais coder tout ça en PHP, mon problème se situe au niveau de la base de donnée pour gérer ça.