Bonjour à tous ! Je suis actuellement entrain de créer un module afin d'administrer la gestion des articles pour mon site voici à quoi il ressemble : [url=http://sdz-upload.s3.amazonaws.com/prod/upload/Sans%20titre-155.png][img]http://sdz-upload.s3.amazonaws.com/prod/upload/Sans%20titre-155.png[/img][/url] Comme vous pouvez le constater j'ai 3 boutons "submit" : "Enregistrer brouillon", "Aperçu" et "Publier l'article". Je souhaiterai qu'uniquement lorsque l'on clique sur "Aperçu" ça valide l'article en base de donnée (histoire d'avoir la dernière version de l'article) puis que ça ouvre une nouvelle page afin de montrer l'article. En effet, c'est sur ce dernier point que je bloque je ne sais pas comment ouvrir une nouvelle fenêtre uniquement si on clique sur ce submit là. Merci d'avance pour votre aide.

3 réponses


Pour tout ça, je te dirai bien de garder ta structure actuelle, et que tes boutons gardent le submit, mais que tu leur ajoute une action, via une classe ou un id.

Du coup, lors du traitement, tu détecteras cette action, et tu traiteras en conséquence :

  • dans le cas de l'aperçu, tu enregistre en base et tu redirect vers la page de l'aperçu
  • dans le cas du brouillon, j'imagine que tu enregistres en base de la même façon, mais que tu ne redirige pas
  • dans le cas de publier, tu enregistre différemment en base (table différente ou statut différent), et tu fais ce que tu veux
shinix
Auteur

Hello, merci pour ta réponse.

Alors en faite : en cas d'aperçu pour le moment j'enregistre l'article puis le passe en mode brouillon pour éviter qu'il soit visible sur le site et je redirige sur l'article pour continuer la modification. Mais je souhaiterais que dès que la redirection se fait (pour revenir à l'article) un nouvel onglet s'ouvre et affiche l'article sur le site. (brouillon visible uniquement en url absolut + connexion Admin).

Après dans le cadre d'un simple brouillon j'enregistre sur la bdd mais je le mets en status brouillon donc non visible.
Puis, publier sous le statut publier donc visible pour tous.

Ma réponse reste la même, c'est juste ton comportement javascript qui est à adapter.