Vous n'êtes pas identifié(e).
Hello,
Je suis en train de coder mon propre CMS et, ayant un tout petit niveau en PHP, je viens faire appel à votre aide.
En gros, le CMS est constitué de quatre type de template :
- une page d'accueil : index.php
- des pages catégorie : categorie.php
- des pages fiche produit : produit.php
- une page recherche : recherche.php
Mon problème concerne l'écriture de l'URL des fichiers categorie.php et produit.php.
En effet, mes URLs de base avaient cette forme :
Avec la réécriture d'URL, je suis parvenu à obtenir des URLs de cette forme :
Voici la réécriture d'URL dans le fichier .htaccess :
Problème : toutes mes pages catégories passent en tant que page produit.
Si j'inverse les deux dernières lignes du fichier .htacess, c'est l'inverse : toutes mes pages produit passent en tant que page categorie.
J'en ai donc déduit que je devais fusionner les fichiers produit.php et categorie.php en un seul fichier page.php contenant les deux templates, puis en interrogeant la base de données, je choisis le bon template.
Je pourrais effectivement faire comme ça, puisque ça fonctionne.
Mais j'aimerais comprendre comment font les "vrais" CMS lorsqu'ils exploitent séparément chaque fichier template. Est-ce que ça se joue dans la réécriture d'URL ? Utilisent-ils une page intermédiaire avant d'afficher le bon template ? Ils font autrement ?
Merci pour votre aide.
🔴 Hors ligne
effectivement la structure de tes urls est la meme pour tes produits et catégories donc difficile de les distinguer dans ton htacces.
Tu peux par exemple ajouter p- devant les url de toutes tes pages produits et c- devant toutes les urls de tes catégories cela te permettra effectivement de les distinguer dans ton htaccess.
Si les structures d'url sont les mêmes et que rien ne permet de les distinguer cela depend des CMS mais ils ont en principe des systèmes de routing permettant de gérer les routes. Si tu veux avoir la meme structure d'url que tu veux coder toi meme tu as un système simple (mais pas optimal) c'est par exemple de commencer à regarder si l'url correspond à une catégorie, si on trouve pas alors on regarde si c'est un produit (dans le code php directement)
Dans le cas ou tu fais ton propre cms je te conseille d'avoir des stuctures d'url diffrentes pour catégories et produits c'est plus simple. Attention quand meme avec CMS home made à toutes les failles de sécurité qu'il faudra que tu gères, en fonction de ce que tu envisages de faire avec ce site. Si c'est pour un petit site ca va, si c'est pour de plus grandes ambitions cela me semble dangereux si tu n'es pas exérimenté en dev
🔴 Hors ligne
Merci pour ta réponse !
Tu peux par exemple ajouter p- devant les url de toutes tes pages produits et c- devant toutes les urls de tes catégories cela te permettra effectivement de les distinguer dans ton htaccess.
Ce que j'avais fait initialement, c'est une URL avec le répertoire /produit/ pour les fiches produit et /categorie/ pour les pages categorie. Sur le plan SEO, je ne trouve vraiment pas ça terrible, mais je vais faire avec, tant pis. Ce sera plus simple que de centraliser produit.php et categorie.php dans une seule page.
Pour la solution du système de routing, je n'arrive pas à me figurer ce que ça représente concrètement...
Si c'est pour un petit site ca va, si c'est pour de plus grandes ambitions cela me semble dangereux si tu n'es pas exérimenté en dev
En fait, je souhaite tester l'automatisation d'un petit site d'affiliation qui se mettrait à jour tout seul sur la base d'un flux catalogue provenant d'un programme d'affiliation. On va voir si ça marche.
Dernière modification par Kysban (2019-04-28 22:26:39)
🔴 Hors ligne
Merci pour ta réponse !
Pour la solution du système de routing, je n'arrive pas à me figurer ce que ça représente concrètement...
Si tu veux avoir une idée plus précise tu peux regarder comment cela fonctionne sur les framework php les plus connus :
https://symfony.com/doc/current/routing.html
https://laravel.com/docs/5.8/routing
une autre ressource qui part de 0 et qui peut t'aider à comprendre :
🔴 Hors ligne