Forum pragmaMx France 25 Mai 2012 à 01:23:44 *
Bienvenue, Invité. Veuillez vous connecter ou vous inscrire.


Connexion avec identifiant et mot de passe
 
Accueil Aide Rechercher
Pages: [1]   Bas de page
Imprimer
Auteur Fil de discussion: Newsletter : interdire l'inscription  (Lu 3612 fois)
HollowMac
Membre Senior Mx
****
Hors ligne Hors ligne

Messages: 256



« le: 13 Septembre 2009 à 02:53:42 »

Bonjour,

J'aimerai envoyer une newsletter, mais pour certains de mes membres seulement. J'aimerai donc interdire l'inscription à la newsletter, de sorte que c'est moi qui choisit d'inscrire les membres qui la recevront. J'ai alors décidé d'interdire l'inscription à la newsletter. Mais lorsqu'un nouveau membre s'enregistre, il a toujours la possibilité d'y souscrire (sauf que la case n'est pas cochée par défaut) fou

Une idée du pourquoi de ce bug ?

Sinon, pour les utilisateurs du module Fancy Newsletter, est-ce que ce que je veux faire marche avec ce module, car je ne suis pas certain que ça marchera avec le module Newsletter par défaut de PMx.

Cordialement,
Merci.
Journalisée

Youkoulélé !
stefvar
Team
Membre Senior Mx
******
Hors ligne Hors ligne

Messages: 270



« Répondre #1 le: 13 Septembre 2009 à 08:13:43 »

Bonjour,

Edite le fichier inclludes/mx_userfunctions.php, cherche la ligne :
Code:
$out .= "<tr valign=\"top\"><td bgcolor=\"$bgcolor2\"><b>" . _NEWSLETTER . ":</b></td><td colspan=\"3\" bgcolor=\"$bgcolor3\"><input type=\"checkbox\" name=\"newsletter\" value=\"1\" " . $cnewsletter . " /> " . _RECEIVENEWSLETTER . "</td></tr>\n";
et remplace là par :
Code:
require(PMX_MODULES_DIR . DS . "Your_Account/config.php");
if($shownewsletter=='1'){
$out .= "<tr valign=\"top\"><td bgcolor=\"$bgcolor2\"><b>" . _NEWSLETTER . ":</b></td><td colspan=\"3\" bgcolor=\"$bgcolor3\"><input type=\"checkbox\" name=\"newsletter\" value=\"1\" " . $cnewsletter . " /> " . _RECEIVENEWSLETTER . "</td></tr>\n";
}
Clin d'oeil
Journalisée

Je ne réponds pas aux messages privés, merci, Bises
HollowMac
Membre Senior Mx
****
Hors ligne Hors ligne

Messages: 256



« Répondre #2 le: 13 Septembre 2009 à 10:35:11 »

C'est génial !!!!! Merci beaucoup Clin d'oeil respect

@team PMx : Par contre, s'il s'agit bien d'un bug (Impossible d'interdire l'inscription à la Newsletter), il faudrait le corriger Clin d'oeil
Journalisée

Youkoulélé !
stefvar
Team
Membre Senior Mx
******
Hors ligne Hors ligne

Messages: 270



« Répondre #3 le: 13 Septembre 2009 à 10:41:20 »

Re,
@team PMx : Par contre, s'il s'agit bien d'un bug (Impossible d'interdire l'inscription à la Newsletter), il faudrait le corriger Clin d'oeil

Cette modification corrige ce "bug"  Clin d'oeil
Journalisée

Je ne réponds pas aux messages privés, merci, Bises
Diabolo
Administrateur
Ultra membre Mx
******
Hors ligne Hors ligne

Messages: 5480



« Répondre #4 le: 13 Septembre 2009 à 13:57:27 »

Slt,
Bonne remontée avec des précisions qui me sont personnelles:

Dans le cas présent, il faut imaginer plusieurs possibilités:

1- Le module newsleter est désactivé = il doit apparaitre nul part sur le compte user
2- Le module newsletter est activé mais la case  -Autoriser les utilisateurs à souscrire à la newsletter- est indiquée "non" (cf paramètres utilisateurs. Par conte je vois pas trop l'intérêt de mettre cette option si le module est activé (peut être pour l'envoi admin seulement )
3- Et finalement le module est activé et la case  -Autoriser les utilisateurs à souscrire à la newsletter- est indiquée "oui"

Donc pour le code a modifier dans includes/mx_userfunctions.php, j'aurais plutot mis:
Code:
 
        /* Newsletter oui/non */
        if (mxModuleAllowed('Newsletter') && !empty($GLOBALS['shownewsletter'])) {
         $out .= "<tr valign=\"top\"><td bgcolor=\"$bgcolor2\"><b>" . _NEWSLETTER . ":</b></td><td colspan=\"3\" bgcolor=\"$bgcolor3\"><input type=\"checkbox\" name=\"newsletter\" value=\"1\" " . $cnewsletter . " /> " . _RECEIVENEWSLETTER . "</td></tr>\n";
        }
Ainsi sans require du fichier complet du config mais juste la variable qui nous intéresse avec une verif empty ;-)


et aussi une modif dans l'accueil du compte qui permet cas 2, de ne pas voir la ligne newsletter

dans modules/unserinfo/view.php
on cherche
Code:
   // Newsletter
    if (mxModuleAllowed("Newsletter")) {
        $resultx = sql_query("SELECT status FROM ${prefix}_newsletter WHERE email='" . mxAddSlashesForSQL($uinfo['email']) . "' OR email='" . mxAddSlashesForSQL($uinfo['femail']) . "'");
        list($status) = sql_fetch_row($resultx);
        $uinfo['newsletter'] = (empty($status) || $status == 3) ? _NOTSUBSCRIBED : _SUBSCRIBED;
        $img = (empty($status) || $status == 3) ? "images/td.gif" : "images/tu.gif";
        $uinfo['newsletter'] = mxCreateImage($img, $uinfo['newsletter']) . "&nbsp;" . $uinfo['newsletter'] . "\n";
    }

a remplacer par
Code:
    // Newsletter
    if (mxModuleAllowed('Newsletter') && !empty($GLOBALS['shownewsletter'])) {
        $resultx = sql_query("SELECT status FROM ${prefix}_newsletter WHERE email='" . mxAddSlashesForSQL($uinfo['email']) . "' OR email='" . mxAddSlashesForSQL($uinfo['femail']) . "'");
        list($status) = sql_fetch_row($resultx);
        $uinfo['newsletter'] = (empty($status) || $status == 3) ? _NOTSUBSCRIBED : _SUBSCRIBED;
        $img = (empty($status) || $status == 3) ? "images/td.gif" : "images/tu.gif";
        $uinfo['newsletter'] = mxCreateImage($img, $uinfo['newsletter']) . "&nbsp;" . $uinfo['newsletter'] . "\n";
    }

Voilà c'est a réflechir et tester, sinon dans tous les cas je remonte le post dans le bugmanager de pmx pour correction

 bien joué
« Dernière édition: 13 Septembre 2009 à 14:55:56 par Diabolo » Journalisée

..:: Veuillez consulter les règles du forum ::..- Avez-vous consulté notre documentation avant de poser votre question ?-Pas de support en MP ou par courriel, le forum est là pour ça !Nouvelle question=Nouveau Sujet
HollowMac
Membre Senior Mx
****
Hors ligne Hors ligne

Messages: 256



« Répondre #5 le: 13 Septembre 2009 à 15:04:20 »

Merci pour le code bien joué

Dans mon cas, je cherche à envoyer la newsletter à certains membres que je choisis, et il ne faut donc pas qu'il puisse cocher de case "S'inscrire à la newsletter" (et donc  -Autoriser les utilisateurs à souscrire à la newsletter- est indiquée "non"), mais il faut que moi je peux via la Gestion des Utilisateurs. Clin d'oeil
Journalisée

Youkoulélé !
stefvar
Team
Membre Senior Mx
******
Hors ligne Hors ligne

Messages: 270



« Répondre #6 le: 13 Septembre 2009 à 15:35:23 »

Re,

Intéressant le "$GLOBALS['shownewsletter']", je n'avais pas vu encore cette possibilité  bien joué

Par contre, pour le cas deux, je n'ai pas vu la nécessité de modifier le fichier view.php car si la newsletter n'est pas activé dans l'admin, la ligne n'apparait pas lorsque l'on visualise son compte.
Journalisée

Je ne réponds pas aux messages privés, merci, Bises
Pages: [1]   Haut de page
Imprimer
Forum pragmaMx France  |  Modules spécifiques & Blocs  |  Autres modules dédiés à PragmaMx (Modérateurs: Diabolo, kroms, phi56360)  |  Fil de discussion: Newsletter : interdire l'inscription
 
Aller à:  

Powered by SMF 1.1.15 | SMF © 2006-2009, Simple Machines

Plus