Page ajout groupe automatique [Réglé]
Victorien Membre non connecté
Booster Fuzil
-
Booster Fuzil
- Voir le profil du membre Victorien
- Inscrit le : 26/11/2015
Est ce que vous pouvez me donner un coup de main pour faire une page php, qui ajoute automatiquement dans un groupe, m'envoie un mail puis le redirige vers une page qui dit merci.
Merci
Édité par Victorien Le 07/12/2015 à 13h51
Victorien Membre non connecté
Booster Fuzil
-
Booster Fuzil
- Voir le profil du membre Victorien
- Inscrit le : 26/11/2015
Avec l'aide de la documentation j'ai tenté des trucs mais j'ai besoin de vous pour finir
Code :
<?php
$mail = new Mail();
$mail->set_sender('Mail::SENDER_USER');
$mail->add_recipient('support@shannashine.com');
$mail->set_subject('Mail::SENDER_USER');
$mail->set_content('vient d'être ajouté au groupe VIP');
AppContext::get_mail_service()->try_to_send(Mail $mail);
PersistenceContext::get_querier()->update('member', array(
'user_groups' => '1',
), 'WHERE user_id = :user_id');
header('Refresh: 5;URL=index.php');
?>Je sais qu'il manque le chargement de l'environement phpboost mais la documentation ne ma pas vraiment aidé :s,
Je souhaite mettre a jour la ligne de l'utilisateur connecté donc si vous pouvez me dire si ma requete est correct, et pour finir comment dans l'objet du mail je peux mettre le nom d'utilisateur + un texte personnalisé. Merci
Dramaturge Membre non connecté
Booster Bazooka
-
Booster Bazooka
- Voir le profil du membre Dramaturge
- Inscrit le : 16/02/2015
Excuse moi je n'ai pas vu passer ton premier post.
Je regarde ça ce week-end, dès que j'ai un peu de temps.
Le possible est déjà fait, l'impossible est en cours, pour les miracles prévoir 48h de délai
Victorien Membre non connecté
Booster Fuzil
-
Booster Fuzil
- Voir le profil du membre Victorien
- Inscrit le : 26/11/2015
Dramaturge Membre non connecté
Booster Bazooka
-
Booster Bazooka
- Voir le profil du membre Dramaturge
- Inscrit le : 16/02/2015
Le possible est déjà fait, l'impossible est en cours, pour les miracles prévoir 48h de délai
Victorien Membre non connecté
Booster Fuzil
-
Booster Fuzil
- Voir le profil du membre Victorien
- Inscrit le : 26/11/2015
Code :
<?php
//Définition de là où on se trouve par rapport à PHPBoost (ici on se trouve à la racine)
define('PATH_TO_ROOT', '.');
//Début du chargement de l'environnement
require_once PATH_TO_ROOT . '/kernel/begin.php';
//Titre de la page
define('TITLE', 'Bravo vous êtes maintenant un VIP');
//Haut de page
require_once PATH_TO_ROOT . '/kernel/header.php';
## Début du contenu de la page ##
$mail = new Mail();
$mail->set_sender('Mail::SENDER_USER:');
$mail->add_recipient('support@shannashine.com');
$mail->set_subject('Mail::SENDER_USER:');
$mail->set_content('$user vient d'être ajouté au groupe VIP');
AppContext::get_mail_service()->try_to_send(Mail $mail);
PersistenceContext::get_querier()->update('member', array(
'user_groups' => '1',
), 'WHERE user_id = :user_id');
header('Refresh: 5;URL=index.php');
## Fin du contenu de la page ##
//Bas de page
require_once PATH_TO_ROOT . '/kernel/footer.php';
?>Je pense qu'il manque la classe mail {} mais je suis pas sur
Bonne soirée a demain
Édité par Victorien Le 06/12/2015 à 14h13
Dramaturge Membre non connecté
Booster Bazooka
-
Booster Bazooka
- Voir le profil du membre Dramaturge
- Inscrit le : 16/02/2015
Code PHP :
<?php define('PATH_TO_ROOT', '..'); //Début du chargement de l'environnement require_once PATH_TO_ROOT . '/kernel/begin.php'; //Titre de la page define('TITLE', 'Bravo vous êtes maintenant un VIP'); //Haut de page require_once PATH_TO_ROOT . '/kernel/header.php'; $user = AppContext::get_current_user(); $mail = new Mail(); $mail->set_sender('admin@site.com', MAIL::SENDER_ADMIN); // Expéditeur $mail->add_recipient($user->get_email()); // Destinataire $mail->set_subject('Groupe VIP'); $mail->set_content($user->get_pseudo() . ', vous êtes maintenant un VIP'); AppContext::get_mail_service()->try_to_send($mail); PersistenceContext::get_querier()->update(DB_TABLE_MEMBER, array('user_groups' => '1'), 'WHERE user_id = :user_id', array('user_id' => $user->get_id())); //Bas de page require_once PATH_TO_ROOT . '/kernel/footer.php';
Le code fonctionne pour le mail, en revanche je n'ai pas compris ce que tu souhaitais faire pour les groupes. De plus, pour ajouter un membre à un groupe, il faut jouer sur 2 tables : member et group, ce qui ne facilite pas la modification.
Je suis là si tu as des questions
Le possible est déjà fait, l'impossible est en cours, pour les miracles prévoir 48h de délai
Victorien Membre non connecté
Booster Fuzil
-
Booster Fuzil
- Voir le profil du membre Victorien
- Inscrit le : 26/11/2015
et pour le groupe, je souhaite que l'utilisateur qui arrive sur la page soit ajouté automatiquement au groupe vip
Dramaturge Membre non connecté
Booster Bazooka
-
Booster Bazooka
- Voir le profil du membre Dramaturge
- Inscrit le : 16/02/2015
Le possible est déjà fait, l'impossible est en cours, pour les miracles prévoir 48h de délai
Victorien Membre non connecté
Booster Fuzil
-
Booster Fuzil
- Voir le profil du membre Victorien
- Inscrit le : 26/11/2015
J'ai fais les tests, il faut uniquement modifier la table "member" et le champ "user_groups" avec l'id du groupe qui va bien. Si je comprend bien la requete sql que tu ma corriger elle devrait faire ce travail correctement hors j'ai une erreur 500 sur la page et je ne sais pas quoi faire :s
Edit : deja test de supprimer le htacess et url rewrite mais ca change rien
Édité par Victorien Le 06/12/2015 à 22h22
janus57 Membre non connecté
-
Booster Fusée
- Voir le profil du membre janus57
- Inscrit le : 07/12/2007
- Groupes :
-
Equipe Assistance
non pour mettre une personne dans un group il faut bien toucher 2 tables comme l'a dit @Dramaturge, dans la table membre on ajoute l'id du group et dans la table group l'id du membre (de mémoire), donc faut connaitre l'id du group + le membre (le membre c'est facile, cela se complique un poil pour le group).
Ceci est de mémoire car j'avais déjà essayé de voir comment était fait le système des groupes pour intervenir manuellement sur la BDD mais j'avais abandonner.
Cordialement, janus57
Dramaturge Membre non connecté
Booster Bazooka
-
Booster Bazooka
- Voir le profil du membre Dramaturge
- Inscrit le : 16/02/2015
En fait c'est plus compliqué qu'un simple update car il faut tenir compte des autres groupes et des autres membres. Avec le code ci dessus, si tu fais cela, tu écraseras les autres groupes de l'utilisateur mais tu supprimera également tous les autres membres du groupe VIP.
Sinon en effet c'est assez simple à faire finalement si on se passe des fonctions de PHPBoost que je n'arrive pas à comprendre (la fonction get_groups() me renvoie array(2) { [0]=> string(2) "r2" [1]=> string(1) "1" } alors que je ne suis que dans le groupe 1, d'où vient ce r2 ? ).
Le possible est déjà fait, l'impossible est en cours, pour les miracles prévoir 48h de délai
janus57 Membre non connecté
-
Booster Fusée
- Voir le profil du membre janus57
- Inscrit le : 07/12/2007
- Groupes :
-
Equipe Assistance
Citation :
Sinon en effet c'est assez simple à faire finalement si on se passe des fonctions de PHPBoost que je n'arrive pas à comprendre (la fonction get_groups() me renvoie array(2) { [0]=> string(2) "r2" [1]=> string(1) "1" } alors que je ne suis que dans le groupe 1, d'où vient ce r2 ? ).
les R c'est les autorisations de mémoire, vu que on peu donner des autorisations à certains groupe (ou certain membres précis) en plus des autorisations globale du module.
Après de là à savoir à quoi correspond le r2 je sais pas/plus.
Cordialement, janus57
Victorien Membre non connecté
Booster Fuzil
-
Booster Fuzil
- Voir le profil du membre Victorien
- Inscrit le : 26/11/2015
Sql du type update group set members = members + 1 where id = '1'
ou peux etre PersistenceContext::get_querier()->update(DB_TABLE_GROUP,
array('members' + '1'),
'WHERE id = :id',
array('id' => $group->get_id()));
Pas sur de ma table
Ps : j'ai plus aucun htaccess sur mon site et malgré tout j'ai une erreur 500
Édité par Victorien Le 07/12/2015 à 00h18
janus57 Membre non connecté
-
Booster Fusée
- Voir le profil du membre janus57
- Inscrit le : 07/12/2007
- Groupes :
-
Equipe Assistance
Citation :
Ensuite dans la table group c'est juste un incrémentiel a faire pour indiqué le nombre d'utilisateur présent dans le groupe mais la je sais pas comment faire. Je ne vois pas ce qu'il y a d'autre
non du tout dans la table group ce sont les ID des membres présent dans le group ensuite PHPBoost calcul le nombre de membre en comptant les ID tout simplement.
Citation :
Sql du type update group set members = members + 1 where id = '1'
ou peux etre PersistenceContext::get_querier()->update(DB_TABLE_GROUP,
array('members' + '1'),
'WHERE id = :id',
array('id' => $group->get_id()));
ou peux etre PersistenceContext::get_querier()->update(DB_TABLE_GROUP,
array('members' + '1'),
'WHERE id = :id',
array('id' => $group->get_id()));
comme l'a dit @Dramaturge en procédant de la sorte vous allez effacer tous les membres du group et juste garder le dernier mis (et encore j'en suis pas sûr).
Dans la table des group le champ "members" les stock sous cette forme :
Code TEXT :
id|id|id exemple : 1|57|687 Les membre 1, 57 et 687 font alors parti du groupe
Et c'est stocké pareil dans la table membre au niveau du champ "groups"
Citation :
Ps : j'ai plus aucun htaccess sur mon site et malgré tout j'ai une erreur 500
il faut regarder vos logs
Cordialement, janus57
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie