Forum CMS Made Simple FR
Redirection dans UDT - Version imprimable

+- Forum CMS Made Simple FR (https://forum.cmsmadesimple.fr)
+-- Forum : Général (https://forum.cmsmadesimple.fr/forum-3.html)
+--- Forum : Modules, Tags (https://forum.cmsmadesimple.fr/forum-14.html)
+--- Sujet : Redirection dans UDT (/thread-4356.html)



Redirection dans UDT - snatch1974 - 19/11/2020

Bonjour à tous,

pour un site web en intranet, fait avec CMSMS 2.2.14,  j'utilise le module Products afin de présenter des produits soumis au A la validation du formulaire, j'appelle une UDT qui va chercher dans la base de données si le vote a déjà eu lieu et sinon on l'enregistre puis redirection vers le produit suivant.

Les produits sont présentés grace au module Products en mode sommaire de hierarchy avec 1 article par page en paramètre.

Tout ça fonctionne à merveille.

Maintenant, je souhaite rajouter une fonction qui si on va voir un produit pour lequel on a déjà voté, on est redirigé automatiquement vers le produit suivant.
J'ai donc, refait une UDT que j'insère en début de page et qui ressemble à ça:

Code PHP :
$gCms cmsms();
$db $gCms->getDb();

$userid $params['userid'];
$productid $params['productid'];

$thenextpage $params['nextpage'];

$query 'SELECT COUNT(id) FROM '.cms_db_prefix().'votes WHERE userid = ? AND productid = ? ';
$votecount $db->GetOne($query, array($userid,$productid));

echo 
$votecount;

if (
$votecount 0){

redirect($thenextpage);




si la redirection fonctionne lors de la validation du formulaire, là, il me redirige automatique sur la page d'accueil du site, bien que la variable $thenextpage contient bel et bien l'url de la page suivante (pagination du module products)

I quelqu'un pouvait me dire ce que je fais de mal ou comment faire pour mettre en place cette redirection automatique si ma logique n'est pas bonne, je lui en serais bien reconnaissant.

Merci à tous


RE: Redirection dans UDT - brambaud - 06/03/2021

Bonjour,

Je ne connais pas trop le module Products mais je vais tenté de vous aider.

Vous semblez vouloir éviter l'affichage d'un produit déjà "voté", ne pouvez-vous pas récupérer que les produits "non votés" de manière à ne proposer des liens précedent/suivant qu'entre produits non votés ?

Car dans le cas présent, l'utilisateur ayant bcp voté va enchainer potentiellement plusieurs redirection de produit en produit... pas top top.

Concernant la redirection, j'utilise à titre personnel dans mes modules perso j'utilise des redirections "PHP" standards de la forme suivante :
<?php
  header('Location: http://www.votresite.com/page.php');
  exit();
?>
Ca doit également fonctionner dans un UDT, mais il faudra je bien veiller à que ce code soit exécuté avant la moindre instruction d'affichage, donc de préférence en tout début de gabarit je pense...

+++
Benoit