Bonjour,
voici la façon dont je réaliserais le projet :
une page permettant d'ajouter une création (avec un champ pour les images, un pour le texte, un pour le titre, un pour le sous titre, un pour la ou les catégories, un pour le slug et un id (qui se met en auto surement))
TABLE 'Contenu' : id(primary, AI), slug (255), titre(255), sous_titre(255), id_catégorie(INT), texte(LONGTEXT),type(INT),ordre(INT),menuType(INT)
FRONT :
Article.php (identique pour ajout / modif)
Input hidden : name="id" (vide si création / remplie si modif)
Input text : name="titre"
Select : Liste catégories (value ="id_catégorie)
Input text : Name ="sous_titre"
nput text : Name ="slug"
Textarea =
Création d'une POP IN en javascripts (jquery c'est plutot accéssible) qui litste url de l'image eavec sa vignette)
Utilisation de balise dans ton textarea :
EXEMPLE :
Insertion image : [IMAGE]https//urlImage.jpg[/IMAGE]
Insertion image center : [IMAGE center]https//urlImage.jpg[/IMAGE]
Insertion image right : [IMAGE right]https//urlImage.jpg[/IMAGE]
Insertion image center et grand format: [IMAGE center big]https//urlImage.jpg[/IMAGE]
Lors de l'affichage coté client : tu appliques une regex :
Tout se qui est compris entre [IMAGE] c'est img src=
Si aprés [IMAGE il y a quelques chose, c'est une class img src= class=
Cela peut paraitre inquiétant au premier abord, mais c'est tellement génial les regex !
Ca marche aussi avec le texte a toi d'écrire autant de regex avec utilisation de replaceall pour mettre en forme ton texte.
exemple : [gras], [color:jaune],[center],[trait-separation],[list type=puce], etc ...
une page permettant de modifier/supprimer une création (avec les mêmes champs que précédemment + un bouton pour supprimer), en soi, cette page est la même que la précédente sauf que les champs sont pré rempli et que l'id ne doit pas changer
Comem tu dis ...
une page permettant d'ajouter une catégorie (avec nom, slug, id auto)
TABLE : id(primary, AI), nom(255),slug(255),niveau(INT)
niveau : pour les catégories parent/enfant (dans le futur peu être)
Architecture identique pour le php.
une page permettant de modifier/supprimer une catégorie
Comme dit précedement.
une page permettant d'ajouter une page (en + de la page portfolio, à propos, contact et accueil). Pour le coup aucune idée de ce que je dois mettre car pour l'instant je n'ai pas l'utilité d'une autre page, mais ça pourrait me servir d'exercice pour de futurs projets
une page permettant de modifier/supprimer une page existante
identique à article.php
On utilise la table 'Contenu' avec l'utilisation des champs TYPE et ORDRE
TYPE : 1, 2 , 3 , 4 ....
Avec soit un array dans un fichier php :
<?phparound$type = ['1'=>'page','2'=>'article','3'=>'autre chose']around?>
Soit avec une autre table paramétrable au seins de ton administration
TABLE 'type' = id(primary,AI),num(INT),nom(255),description(TEXT)
ORDRE : si tu douhaites mettre la page contact, avant la page home ou la page About ... bref tu comprends !
une page permettant d'upload des images (on pourra donc insérer une image dans la page créa par exemple sans passer par les fichiers du pc si l'image a dejà été envoyé) avec un champ pour l'image, pour le texte alternatif et un slug
TABLE 'media' : id(primary,AI), slug(255),url(LONGTEXT)
Url pourrait stockéer un tableau style
['grand'=>'http:// grande image.jpg',
'moyen' =>'httpp:// medium image.jpg',
'petite'=>'hrpp// ptiote imageJpg']
PHP : media.php
un champs flile et un belle page de traitement pour générer des fichiers de différente taille et une belle gestion d'erreurs.
une page permettant de visualiser toutes les images disponibles, de modifier le texte ou de supprimer une image
Je mettrais cette page avec celle de l'upload
avec en dessous deu block pour upload , un second block qui charge un tableau avec toute les images / nom / description / et option
avec pour la suppression : https//www.monsite.com/administration/media/gestionsmedia.php?effacer=(id_image)
avec la modification : https//www.monsite.com/administration/media/gestionsmedia.php?modifier=(id_image)
une page permettant de modifier le menu du site
On en revient à la reponse du début
menuType c'est un entier qui depent d'une autre table de la bdd
TABLE 'menu' = id(...), nom(255), information(TEXT)
Ca te laisse l'option d'attribuer un menu latteral different pour article ou page.
Tu as compris le principe !
Bonne chance, car ça reprensente du boulot !