code pour validation d'une action

Ce forum vous servira à trouver de l'aide uniquement en ce qui concerne le développement d'un de vos MODs, ou l'adaptation d'un MOD phpBB2 pour phpBB3.

Modérateur: Equipe

code pour validation d'une action

Messagepar reskator » 16 Aoû 2008 à 11:13

Bonjour

je suis en train de coder un petit mod pour pourvoir supprimer facilement les MP des utilisateurs ne venant plus sur le Forum (Je precise bien supprimer mais pas lire, la fonction lecture n'est pas incluse)

mais je cale sur une petite chose, comment mettre la fonction qui affiche le message "êtes vous sur de vouloir supprimer ...."

y a t'il deja une fonction tout faite dans phpbb3 pour cette affichage , sinon quel code mettre ??

si un codeur de phpbb est interesser pour verifier le code, je suis preneur :wink:

merci pour vos reponses
Dernière édition par reskator le 17 Aoû 2008 à 15:44, édité 1 fois.
reskator
Maître-posteur
Maître-posteur
 
Messages: 408
Inscription: 09 Sep 2007 à 20:19
Localisation: Sarthe

Re: code pour validation d'une action

Messagepar spitfire pat » 16 Aoû 2008 à 11:45

reskator a écrit:mais je cale sur une petite chose, comment mettre la fonction qui affiche le message "êtes vous sur de vouloir supprimer ...."

y a t'il deja une fonction tout faite dans phpbb3 pour cette affichage , sinon quel code mettre ??

oui il existe la fonction confirm_box(qui se trouve dans includes/functions.php)
qui est à utiliser ainsi:
Code: Tout sélectionner
if(confirm_box(true))
{
      //ici tu mets le code supprimant ton message
}

l'intitulé complet de la fonction est:
Code: Tout sélectionner
function confirm_box($check, $title = '', $hidden = '', $html_body = 'confirm_body.html', $u_action = '')

elle demande donc comme paramètres:
  • $check: seul paramètre non facultatif, je ne vois pas d'intérêt à y mettre autre chose que true
  • $title: titre de la boîte de confirmation. attend une clé de langue. si vide, alors cette clé sera 'CONFIRM' (confirmer)
  • $hidden: si tu veux ajouter des champs cachés. doit être sous la forme d'une série de
    Code: Tout sélectionner
    <input type ="hidden" name="nom_du_champ" value="valeur_du_champ" />
  • $html_body: si tu veux un autre template que confirm_body.html
  • $u_action: si tu veux être redirigé sur une autre page que celle qui a lancé la fonction
Avatar de l’utilisateur
spitfire pat
MOD Contest Winner
MOD Contest Winner
 
Messages: 15310
Inscription: 18 Sep 2004 à 15:43
Localisation: bourgogne

Re: code pour validation d'une action

Messagepar reskator » 16 Aoû 2008 à 13:26

Merci pour votre reponse rapide

donc maintenant j'ai bien le message de confirmation, mais par conntre la suppression des Mp ne se fait plus , j'ai du faire une erreur, mais je trouve pas ou !

voici le bout de code ou j'ai installe le code de confirmation

Code: Tout sélectionner
if ($delete)
      {
      confirm_box($check, $title = '', $hidden = '', $html_body = 'confirm_body.html');
      if(confirm_box(true))
                                {
                    $supprime_mp_list = request_var('mark', array(''));
                                  // Restore the array to its correct format
         $supprime_mp_list = str_replace('#', '"', $supprime_mp_list);
                                                foreach ($supprime_mp_list as $pm_msg_list)
         {
            $pm_list[] = unserialize($pm_msg_list);
         }
                                       if (!sizeof($supprime_mp_list))
         {
            trigger_error('NO_PM_SELECTED');
         }
         if (!function_exists('delete_pm'))
         {
            include($phpbb_root_path . 'includes/functions_privmsgs.' . $phpEx);
         }
reskator
Maître-posteur
Maître-posteur
 
Messages: 408
Inscription: 09 Sep 2007 à 20:19
Localisation: Sarthe

Re: code pour validation d'une action

Messagepar spitfire pat » 16 Aoû 2008 à 13:51

cette ligne là
Code: Tout sélectionner
confirm_box($check, $title = '', $hidden = '', $html_body = 'confirm_body.html');
est en trop
Avatar de l’utilisateur
spitfire pat
MOD Contest Winner
MOD Contest Winner
 
Messages: 15310
Inscription: 18 Sep 2004 à 15:43
Localisation: bourgogne

Re: code pour validation d'une action

Messagepar reskator » 16 Aoû 2008 à 19:02

:oops: la je suis pas doue sur ce coup, ca ne fonctionne pas. il y a pas de message de confirmation et il ne supprime plus les MP quand je rajoute a mon code

Code: Tout sélectionner
if(confirm_box(true))e]


Code: Tout sélectionner
if ($delete)
      {
      
      if(confirm_box(true))
{

         $supprime_mp_list = request_var('mark', array(''));

         // Restore the array to its correct format
         $supprime_mp_list = str_replace('#', '"', $supprime_mp_list);

         foreach ($supprime_mp_list as $pm_msg_list)
reskator
Maître-posteur
Maître-posteur
 
Messages: 408
Inscription: 09 Sep 2007 à 20:19
Localisation: Sarthe

Re: code pour validation d'une action

Messagepar spitfire pat » 16 Aoû 2008 à 19:21

sauvegarde ton fichier avec l'extension .txt, uploade-le sur ton serveur et passe-moi le lien
Avatar de l’utilisateur
spitfire pat
MOD Contest Winner
MOD Contest Winner
 
Messages: 15310
Inscription: 18 Sep 2004 à 15:43
Localisation: bourgogne

Re: code pour validation d'une action

Messagepar reskator » 16 Aoû 2008 à 19:38

merci pour ton aide

voici le fichier txt
reskator
Maître-posteur
Maître-posteur
 
Messages: 408
Inscription: 09 Sep 2007 à 20:19
Localisation: Sarthe

Re: code pour validation d'une action

Messagepar spitfire pat » 16 Aoû 2008 à 20:32

parce que c'est plus compliqué que ça (je me disais aussi que c'était trop simple :wink: ): il faut 2 passages à confirm_box: le 1er à false avec dans les hidden_fields les paramètres de ce qui est à supprimer et le champ delete. quand on a cliqué sur ok un code de confirmation est créé, on revient à la page de départ et cette fois on lance un 2e passage à confirm_box true, et le script se charge de vérifier si le code de confirmation est correct et alors là, on peut supprimer.
donc après
Code: Tout sélectionner
      if ($delete)
      {

ajoute
Code: Tout sélectionner
         $hidden_fields = build_hidden_fields(request_var('mark', array('')));
         $hidden_fields .= build_hidden_fields(array(
            'delete' => 1,
            'start' => $start,
            'sk' => $sort_key,
            'sd' => $sd
         ));

et après
Code: Tout sélectionner
            add_log('admin', 'LOG_SUPPRIME_MP');
         }
ajoute
Code: Tout sélectionner
         else
         {
            confirm_box(false, '', $hidden_fields);
         }

j'ai mis toutes tes request_var dans les champs cachés, mais ce n'est peut-être pas nécessaire si ce sont des GET, car, en principe, on est redirigé vers l'url exacte de la page d'appel
Avatar de l’utilisateur
spitfire pat
MOD Contest Winner
MOD Contest Winner
 
Messages: 15310
Inscription: 18 Sep 2004 à 15:43
Localisation: bourgogne

Re: code pour validation d'une action

Messagepar reskator » 17 Aoû 2008 à 08:27

Merci pour ces correction, mais il y a toujour un probleme :oops:

lorsque je clic sur suppression de mp a gauche pour lancer la mod, il m'affiche la demande de confirmation

Image

par contre par la suite lorsque je selection un mp pour le supprimer et que je clic sur suppression plus bas

Image

la suppression se fait correctement mais il y a toujours pas de demande de confirmation :cry:

ca me parait vraiment complexe cette histoire de confirmation et je suis pas un grand pro du php :oops:
reskator
Maître-posteur
Maître-posteur
 
Messages: 408
Inscription: 09 Sep 2007 à 20:19
Localisation: Sarthe

Re: code pour validation d'une action

Messagepar spitfire pat » 17 Aoû 2008 à 08:30

bon, passe-moi également le template associé à ton script, il va falloir que je teste ça en local

(il me faudrait également le contenu de la ligne de phpbb_modules concernant ton module, ça doit être une des dernières)
Avatar de l’utilisateur
spitfire pat
MOD Contest Winner
MOD Contest Winner
 
Messages: 15310
Inscription: 18 Sep 2004 à 15:43
Localisation: bourgogne

Re: code pour validation d'une action

Messagepar reskator » 17 Aoû 2008 à 08:41

reskator
Maître-posteur
Maître-posteur
 
Messages: 408
Inscription: 09 Sep 2007 à 20:19
Localisation: Sarthe

Re: code pour validation d'une action

Messagepar spitfire pat » 17 Aoû 2008 à 11:14

voilà, les champs hiddenfields de la marklist étaient mal bâtis
cette version devrait marcher (en tous cas, elle marche sur mon forum local)
Avatar de l’utilisateur
spitfire pat
MOD Contest Winner
MOD Contest Winner
 
Messages: 15310
Inscription: 18 Sep 2004 à 15:43
Localisation: bourgogne

Re: code pour validation d'une action

Messagepar reskator » 17 Aoû 2008 à 15:43

c'est bon ca fonctionne super !!

Merci beaucoup pour ton aide
reskator
Maître-posteur
Maître-posteur
 
Messages: 408
Inscription: 09 Sep 2007 à 20:19
Localisation: Sarthe


Retourner vers Aide au développement

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité

Partenaires : phpBBHacks.com • phpBB-Seo.com • EzCom-fr.com • phpBB3 Styles • phpBB podpora • phpBB Portugal    Liens : Net Avenir • PromoBenef • Ticket Gagnant