Forum CMS Made Simple FR

Version complète : Espace membre avec validation des comptes
Vous consultez actuellement la version basse qualité d’un document. Voir la version complète avec le bon formatage.
Citation :#~~~~~ DEBUT BLOC A NE PAS SUPPRIMER ~~~~~
#~ Version du CMS: 1.11.4
#~ Url du site : Non défini
#~ Hébergeur / Soft : Non défini
#~ Informations Système :
#~ Le site n'est pas encore créé, il s'agit encore d'un projet, mais qui va rapidement se concrétiser (1 à 2 semaines)
#~~~~~ FIN BLOC A NE PAS SUPPRIMER ~~~~~



Bonjour,

J'ai un projet très simple, il s'agit de créer 3 pages : une page d'accueil avec possibilité de s'inscrire et de se connecter, une page "privée" avec une vidéo et un lien vers une page de formulaire "privée".

J'ai donc rapidement trouvé le tutoriel de Jce : http://jc.etiemble.free.fr/abc/index.php.../private2n qui répond en partie à mon projet.

Cependant, j'ai quelques questions :

  1. Tout d'abord, il s'agit d'afficher ou non des parties de menu dans le tutoriel, mais on est d'accord qu'on ne peut pas accéder aux pages en rentrant simplement leur URL ? Que se passe-t-il dans ce cas ?
  2. Il faut impérativement que le client s'inscrive, mais que son compte soit actif uniquement après validation par un administrateur, puis envoi de mail pour confirmer le compte actif. Est-ce possible et si oui, par quel moyen ?

D'avance merci pour vos réponses,
Bonne soirée,
Marouy
>1- Que se passe-t-il dans ce cas ?
Fais un essai et tu verras Wink

>2 l faut impérativement que le client s'inscrive
Tu peux lui créer un compte directement
Sinon voir le mode d'emploi du module utilisé
1. Je testerais Smile
2. Est-il possible d'avoir un formulaire d'inscription du client en ligne, et une validation par la suite dans le cmsms pourle nouveau compte ? Y'a-t-il possibilité que le client soit inactif à son inscription, puis actif après validation de l'admin + envoi de mail ?
Bonjour,
pour l'inscription en ligne, il faut installer selfregistration (selfreg)
Pour qu'il y est validation, il faudra paramétrer selfreg pour que l'internaute confirme sont inscription par mail.
Dans le mail de confirmation, tu supprimes le lien (tu mets juste un texte disant que son compte sera validé par l'admin par ex.).
Il ne reste plus à l'admin qu'à pousser "à la main" le nouveau compte de selfreg vers FEU.
Il n'y a pas d'envoi de mail auto (à vérifier), mais tu peux installer Notification qui fera le job je pense (je n'ai pas d'expérience avec).
Merci pour vos réponses.

Jissey, j'ai bien compris ta solution, il faudrait jsute que tu m'éclaires sur un point avant que je puisse me lancer dans ce projet :

Jissey a écrit :Il ne reste plus à l'admin qu'à pousser "à la main" le nouveau compte de selfreg vers FEU.

Qu'entends-tu par là ? Peut-on avoir un "simple" système de cache à cocher par l'admin dans "selfreg" qui bascule automatiquement, une fois cochée, le client "actif" vers FEU ? (Avec l'envoi de mail via notification)

Merci d'avance de ta réponse,
Bonne journée
Oui.
Le plus simple serait que tu essaies.
Je vais essayer, mais comme vous tous je pense, je suis pris par le temps et je dois avant d'essayer pouvoir dire si c'est faisable, et ça me fait toujours très peur.

Mais selon toi, la faisabilité est là ? Il y aura peut-être quelques difficultés, mais cela semble faisable ?

Merci beaucoup pour tes réponses !
D’après ce que tu demandes, ça ne pose pas de souci, c'est la fonctionnalité de base de SelfReg allié à FEU.

J'ai fait un système de groupes, inscription par défaut avec SelfReg dans le groupe "à valider" (qui n'a accès à aucun contenu de FEU), une fois que l'administrateur a vérifié l'inscription, il change l'utilisateur de groupe vers le groupe qui a accès au contenu FEU.
Bonjour,

C'est parti, je me suis lancé !

- Feu et Selfreg sont installés.
- Je débute en mettant sur ma première page : {cms_module module=SelfRegistration group=Utilisateurs} qui permet l'inscription d'un utilisateur.
- J'ai ajouté une propriété "case à cocher" nommé "inscription" qui est cachée, car je n'en ai pas l'utilité.
- J'ai ensuite ajouté le groupe "Utilisateurs".

Ma page affiche donc bien le formulaire d'inscription, mais une fois le formulaire validé, j'ai l'erreur suivante :

Code :
[== Indéfini ==]
Warning: Parameter username is not known by module SelfRegistration dropped in /home/*******/public_html/lib/misc.functions.php on line 1411

Warning: Parameter email is not known by module SelfRegistration dropped in /home/******/public_html/lib/misc.functions.php on line 1411

Je ne comprends pas cette erreur...

Et je ne comprends pas non plus ce message "Erreur ! Aucune propriété n'a été trouvée pour cet utilisateur" quand je clique sur un utilisateur qui est dans "SelfReg". Ca me pose problème...

Merci beaucoup et bonne soirée Smile
Marouy
Ouik, dans ton système y a-t-il un mail automatique envoyé à l'utilisateur une fois son enregistrement validé par l'administrateur ?
Je tâtonne, je tâtonne ...
Bonsoir,

J'ai pu régler mes 2 problèmes ci-dessus qui étaient liés à la version 1.11.5, un problème qui est déjà signalé à priori. Je suis donc en 1.11.4 à présent.

Il me reste un problème : la création d'une UDT qui envoie un mail à l'utilisateur une fois son enregistrement validé par l'administrateur.

Je suis parti de ça : http://forum.cmsmadesimple.org/viewtopic.php?t=45209, qui répond parfaitement à mon souci !
Mais qui ne fonctionne pas, malgré que je l'ai mise sur l'événement souhaité (j'ai testé et un simple mail("mail@gmail.com","Enregistrement confirmé","Vous êtes bien enregistré au site"); fonctionne sur l'événement, donc le problème vient de l'UDT...).

Code :
[== Indéfini ==]
if (!function_exists('MyGetModuleInstance'))
{
        function &MyGetModuleInstance($module)
        {
                global $gCms;

                if (isset($gCms->modules[$module]) &&
                        $gCms->modules[$module]['installed'] == true &&
                        $gCms->modules[$module]['active'] == true)
                {
                        return $gCms->modules[$module]['object'];
                }
                // Fix only variable references should be returned by reference
                $tmp = FALSE;
                return $tmp;
        }
}

global $gCms;

$feu = MyGetModuleInstance('FrontEndUsers');

if ($feu == FALSE)
  return false;

//Get User
$feu_user = $feu->GetUserInfo($params['id']);

//Do they really exist?  Why are we here anyway?
if ($feu_user)
{

//use CMSMailer module to send mail
$cmsmailer =& $gCms->modules['CMSMailer']['object'];
$cmsmailer->AddAddress($feu->GetUserName($params['id']),$feu->GetUserPropertyFull('Username', $params['id']));
$cmsmailer->SetFrom('gregory.marouy@gmail.com');
$cmsmailer->SetFromName('Gregory Muller');
$cmsmailer->SetBody('
Ceci est un magnifique test...
');
$cmsmailer->IsHTML(true);
$cmsmailer->SetSubject('Ceci est le sujet !');
$cmsmailer->Send();

}

D'où provient le problème ?
D'avance merci...
Marouy
Citation :J'ai pu régler mes 2 problèmes ci-dessus qui étaient liés à la version 1.11.5, un problème qui est déjà signalé à priori

des informations complémentaires avec des références ?
Hélas non, je peux juste vous dire que SelfReg n'est à priori pas encore compatible avec la version 1.11.6, des warnings apparaissent aléatoirement...

Une idée pour l'UDT ?
Citation :SelfReg n'est à priori pas encore compatible avec la version 1.11.6

la 1.11.5 surement Wink
-> SelfReg 1.7.4 Released On: 2013-02-09 et comme c'est Calguy qui est le développeur cela me surprendrais fortement

Citation :des warnings
en mode production de PHP ??
Effectivement, j'ai écrit un peu vite : 1.11.5 Smile

Qu'entends-tu par "mode de production PHP" ?
Comment récupérer la valeur de l'adresse e-mail d'un utilisateur que je valide via UDT ?
Au niveau de mon UDT, j'arrive à présent à effectuer un envoi de mail, mais je n'ai rien de positif quant à la récupération de l'e-mail de l'utilisateur (pour l'envoi).

Code :
[== Indéfini ==]
$modops = cmsms()->GetModuleOperations();
$feu = $modops->get_module_instance('FrontEndUsers');
$feu_user = $feu->GetUserInfo($params['id']);
if ($feu_user)
{
         $expediteur = "gregory.marouy@gmail.com";
         $destinataire = "gregory.marouy@gmail.com";
         $output = "des tests $feu_user ou ce que tu veux";
         $body = "<p>ce que tu veux ou un $params</p>";
         global $smarty;
         $cmsmailer = cms_utils::get_module('CMSMailer');
             $cmsmailer->AddAddress($destinataire);
             $cmsmailer->SetFrom($expediteur);
             $cmsmailer->SetBody($output);
             $cmsmailer->IsHTML(true);
             $cmsmailer->SetSubject('le sujet que tu veux');
             $cmsmailer->Send();
}

$feu_user me renvoi "array" et non l'adresse mail...
Citation :Qu'entends-tu par "mode de production PHP" ?
en mode production en PHP on n'affiche pas les erreurs, notices et ... donc normalement pas d'erreur affichées

Par contre en mode développement il est important d'afficher tous les erreurs, notices et ...
Si ton dans PHP.ini sivant la valeur de error_reporting = E_ALL ou E_ALL & ~.....
Donc dans ce cas tu affiches toutes les erreurs et ...
Bonsoir,
Citation :$feu_user me renvoi "array" et non l'adresse mail...
ça veut dire que la variable est un tableau(array)...
Tu m'inquiètes là! Si tu veux écrire ou même adapter des UDT, il te faut un minimum de connaissance en programmation.
Il faut que tu te formes à la programmation, puis en PHP et ensuite tu pourras t'y retrouver.
Sinon, demande de l'aide à un pro, il y en a plusieurs dans notre annuaire.
Merci jce pour le mode production php, je ne savais pas qu'on pouvait demander l'affichage de warning et autre notice.

Pour la variable array, je comprend bien que c'est un tableau. Mon problème est plus un problème de "base" pour les udt : comment communiquer avec un module et récupérer les variables de ce module ?

Faire des scripts d'affichage aléatoire d'images en php, ça ne me pose pas de problèmes mais je ne sais comment communiquer avec les variables des modules installés...

C'est à ce niveau-là que j'ai besoin d'aide...
re,
si tu veux te lancer dans le developpement, il existe une documentation de l'API de cmsms :
http://apidoc.cmsmadesimple.org/
Ensuite, quand on ne sais pas ce que renvoie une fonction ou une méthode, soit on dump le résultat de son appel, soit on décortique le code source.
Dans ton cas, tu peux faire un var_dump($feu_user) ou bien print_r($feu_user).
Parfait pour la doc, je te remercie et je vais l'étudier Smile

Au niveau de mon udt, je l'ai simplifié ce matin :

Code :
[== Indéfini ==]
global $gCms;
$modops = cmsms()->GetModuleOperations();
$feu = $modops->get_module_instance('FrontEndUsers');

if ($feu == FALSE)
  return false;

$feu_user = $feu->GetUserInfo($params['id']);

if ($feu_user)
{
print_r($feu_user);

}

Le résultat à l’exécution est :

Code :
[== Indéfini ==]
Array
(
    [0] =>
)

Je ne veux pas que tu crois que je veux qu'on fasse mon code, j'essaye en général de me débrouiller au maximum, mais là, je bloque, je touche régulièrement aux fonctions "de base" en PHP, et mêler aux variables internes CMSMS et l'appel aux modules, j'ai du mal... Et je ne veux que m'améliorer Smile

As-tu un conseil pour que je me débloque pour mon code et que je print enfin une adresse mail ^^
Merci d'avance...
tu peux supprimer la première ligne.
Etant donné que tu ne te sert pas de $gCms...et c'est devenu obsolète.
Ensuite je ne sais pas dans quelles environnement tu exécutes cette balise.
Fait un print_r($params) pour voir déjà ce qu'il contient.
Tu peux aussi repérer l'id d'un user de feu et le rentrer en "dur" dans ta balise pour voir si il retourne qq chose :
du genre : $feu_user = $feu->GetUserInfo(1); (si tu as un user avec un id de 1 bien sûre!).

Je ne connais pas par coeur les méthodes de FEU, vérifie que GetUserInfo demande bien un id (en allant voir dans le code du module).

Tu vois, il y a pleins de choses à voir et vérifier, il faut procéder par élimination.

Bon courage.
Merci beaucoup pour ton aiguillage.

J'ai encore simplifié mon code pour partir proprement (et avec tes conseils en vérifiant les paramètres de la méthode GetUserInfo).

Code :
[== Indéfini ==]
$modops = cmsms()->GetModuleOperations();
$feu = $modops->get_module_instance('FrontEndUsers');

$feu_user = $feu->GetUserInfo(1);

print_r($feu_user);

Mais cela me retourne toujours le même résultat (Array 0, alors qu'il y a un user en id 1 dans Feu).

jissey a écrit :Je ne connais pas par coeur les méthodes de FEU, vérifie que GetUserInfo demande bien un id (en allant voir dans le code du module).

L'aide du module ? Le code source du module ?

Je suis désolé pour toutes mes questions (j'ai l'impression d'être plus que bloqué Sad), mais tu es en train de m'ouvrir la voie des Udt en relation avec les modules Smile
Voilà, j'avance, j'avance...
J'ai réussi à afficher le tableau de données avec toutes les données d'un utilisateur dont son adresse mail, j'arrive donc à sélectionner son adresse mail et à lui envoyer un mail.

Le problème est à présent simple : j'arrive à cibler un id précis, comment cibler l'id de l'utilisateur que je bascule de SelfReg à Feu ?

Voici mon code actuel qui fonctionne dans un cas préci (id défini, ici 40), comment le transposer de manière "générique" pour l'id" d'un user sélectionné ?

Code :
[== Indéfini ==]
$modops = cmsms()->GetModuleOperations();
$feu = $modops->get_module_instance('FrontEndUsers');
$feu_user = $feu->GetUserInfo(40);
$feu_test = $feu_user[1];
print_r($feu_test[username]);

// Envoi du mail
$expediteur = "monmail@gmail.com";
$destinataire = "monmail@gmail.com";
$output = "L'e-mail de l'utilisateur est $feu_test[username]";
$body = "<p>test</p>";
global $smarty;
$cmsmailer = cms_utils::get_module('CMSMailer');
    $cmsmailer->AddAddress($destinataire);
    $cmsmailer->SetFrom($expediteur);
    $cmsmailer->SetBody($output);
    $cmsmailer->IsHTML(true);
    $cmsmailer->SetSubject('le sujet que tu veux');
    $cmsmailer->Send();

Merci beaucoup pour ce dernier coup de pouce Smile