Page ajout groupe automatique [Réglé]
janus57 Membre non connecté
-
Booster Fusée
- Voir le profil du membre janus57
- Inscrit le : 07/12/2007
- Groupes :
-
Equipe Assistance
Reprise du message précédent
Bonjour,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
Victorien Membre non connecté
Booster Fuzil
-
Booster Fuzil
- Voir le profil du membre Victorien
- Inscrit le : 26/11/2015
Je viens de comprendre ce que vous venez de dire au niveau de l'update sql, en gros si l'utilisateur est dans un autre groupe et qu'il passe par cette page d'ajout il risque d'être supprimer de l'autre groupe (ce qui me gêne pas personnellement vu que je n'ai qu'un seul groupe) mais ce problème ce répète pour la table group, je comprend mieux le problème.
Je vais essayé de trouver la requete sql qui va bien.
PS : pour mon erreur 500 cela venait de
Code :
j'ai supprimé un . entre les guillements et c'est good define('PATH_TO_ROOT', '..');
merci pour l'idée du log
Édité par Victorien Le 07/12/2015 à 02h49
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', '..'); $id_vip_group = '1'; // ID du groupe VIP //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(); // Groupes de l'utilisateur $user_groups = PersistenceContext::get_querier()->select_single_row(DB_TABLE_MEMBER, array('user_groups'), 'WHERE user_id=:id', array( 'id' => $user->get_id() )); $user_groups = explode('|', $user_groups); if (!is_array($user_groups)) $user_groups = array(); // Si le membre n'est pas déjà VIP, on l'ajoute if (!in_array($id_vip_group, $user_groups)) $user_groups[] = $id_vip_group; // On re-sérialize maison $user_groups = implode('|', $user_groups); // MaJ DB PersistenceContext::get_querier()->update(DB_TABLE_MEMBER, array('user_groups' => $user_groups), 'WHERE user_id = :id', array('id' => $user->get_id())); // Membres du groupe VIP $group_users = PersistenceContext::get_querier()->select_single_row(DB_TABLE_GROUP, array('members'), 'WHERE id=:id', array( 'id' => $id_vip_group )); $group_users = explode('|', $group_users); if (!is_array($group_users)) $group_users = array(); // Si le membre 'apparait pas, on l'ajoute if (!in_array($id_vip_group, $group_users)) $group_users[] = $id_vip_group; // On re-sérialize maison $group_users = implode('|', $group_users); // MaJ DB PersistenceContext::get_querier()->update(DB_TABLE_GROUP, array('members' => $group_users), 'WHERE id = :id', array('id' => $id_vip_group)); // Envoi du mail $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('Vous êtes maintenant un VIP'); AppContext::get_mail_service()->try_to_send($mail); //Bas de page require_once PATH_TO_ROOT . '/kernel/footer.php';
Il te suffit de modifier l'ID du groupe VIP :
Code PHP :
$id_vip_group = '1'; // ID du groupe VIP
En remplaçant 1 par l'id réel de ton groupe.
Pour le PATH_TO_ROOT, cela dépend de là où tu vas mettre ton fichier. Si c'est à la racine, il ne faut effectivement mettre qu'un seul point. Si comme moi tu le mets dans un sous-dossier, comme un module, il en faut 2 :
Code PHP :
define('PATH_TO_ROOT', '..');
Édité par Dramaturge Le 07/12/2015 à 06h39
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
ça va vraiment me faciliter la vie, c'est vrai qu une durée dans un groupe avant de retirer l'utilisateur aurait été le summum mais j'ai bien compris que c'était trop compliqué. Merci encore.
Victorien Membre non connecté
Booster Fuzil
-
Booster Fuzil
- Voir le profil du membre Victorien
- Inscrit le : 26/11/2015
Aussi j'ai besoin de vous, cette page est accessible uniquement après paiement, je souhaite mettre un script de protection pour éviter que tout le monde puisse accéder a cette page,
Code :
<noscript>
<meta http-equiv="Refresh" content="0;url=****">
</noscript>
<script type="text/javascript" src="h***"></script>
<script type="text/javascript">
//<![CDATA[
if (typeof loaded == 'undefined') {
window.location.href = "****";
}
//]]>
</script>Je dois le mettre entre les balises head mais des que je le met sur la page je ne peux plus y allé. Si vous avez une solution peux être avec leur api mais tout est en anglais et je capte rien.
Merci
Édité par Victorien Le 08/12/2015 à 01h57
janus57 Membre non connecté
-
Booster Fusée
- Voir le profil du membre janus57
- Inscrit le : 07/12/2007
- Groupes :
-
Equipe Assistance
pourquoi de pas faire la protection en PHP qui du coup contrôle côté serveur plutôt que de faire confiance a des données visiteurs ?
Je pense que avec un simple token cela suffit, mais bien sûr cela deviens un module car il faudrait une BDD spécifique pour ça pour bien faire.
Cordialement, janus57
Dramaturge Membre non connecté
Booster Bazooka
-
Booster Bazooka
- Voir le profil du membre Dramaturge
- Inscrit le : 16/02/2015
Citation :
Um big bug, si je met mon fichier dans un dossier et que j'essaye d’accéder a la page cela m'indique que le module n'est pas installé.
Hum, pardon, j'utilise un module exprès pour faire des tests.
Pour ta protection, c'est normal que tu ne puisses plus y accéder :
Code JAVASCRIPT :
<meta http-equiv="Refresh" content="0;url=****">
Ce code redirige vers la page **** toutes les 0 seconde, donc tu ne verra jamais ton code se lancer.
Enfin, qu'arrive t-il si je vais sur ta page et que je désactive le javascript de mon navigateur ?
=> J'ai bypassé ta protection.
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
http://www.hipaymobile.fr/22/integration tout est en anglais ce qui est logique en soit mais pour ce genre de plate-forme un peux de fr ne les aurait pas tuer.
Ps: pourrais tu me fournir la solution pour pouvoir mettre ma page dans un dossier ?
Merci encore pour votre aide
Édité par Victorien Le 08/12/2015 à 13h57
Victorien Membre non connecté
Booster Fuzil
-
Booster Fuzil
- Voir le profil du membre Victorien
- Inscrit le : 26/11/2015
Pour la partie script c'est good je me suis basé sur le module HomeCustom pour faire mon propre module et ainsi pouvoir ajouté le script de sécurité (la balise noscript évite le fait que même si javascript est désactivé que la personne puisse accéder a la page)
Autrement une dernière question pour la fonction mail, dans le contenu du message je voudrais que soit affiché "[Utilisateur] est maintenant un VIP a la date du [afficher la date].
Pour affiché l'utilisateur j'ai tenté
Code :
$mail->set_content($user->get_pseudo() 'Vous êtes maintenant un VIP');
ou
$mail->set_content($user->get_pseudo(), 'Vous êtes maintenant un VIP');
ou
$mail->set_content($user->get_pseudo('Vous êtes maintenant un VIP'));Mais a chaque fois dans le contenu de mon mail cela m'affiche juste le pseudo.
Pour la date le problème est la même je ne sais pas ou placer $date->to_date(); sachant que j'ai déjà déclaré $date = new Date();
Merci
j1.seth Membre non connecté
-
Administrateur
- Voir le profil du membre j1.seth
- Inscrit le : 01/09/2008
- Site internet
- Groupes :
-
Chef de Projet
-
Equipe Développement
$mail->set_content($user->get_pseudo() . 'Vous êtes maintenant un VIP');
Pour la date il faut utiliser $date->format() avec la bonne option au milieu regardes dans la classe date.
Tu peux l'ajouter dans le set_content avec un point après ton texte.
Victorien Membre non connecté
Booster Fuzil
-
Booster Fuzil
- Voir le profil du membre Victorien
- Inscrit le : 26/11/2015
Victorien Membre non connecté
Booster Fuzil
-
Booster Fuzil
- Voir le profil du membre Victorien
- Inscrit le : 26/11/2015
janus57 Membre non connecté
-
Booster Fusée
- Voir le profil du membre janus57
- Inscrit le : 07/12/2007
- Groupes :
-
Equipe Assistance
le code de ""sécurité"" en JS ?
Si oui comme dit plus haut c'est pas fiable du tout, le mieux reste de faire les vérification en PHP et surtout de ne jamais croire les informations retourné par le visiteur.
Cordialement, janus57
Victorien Membre non connecté
Booster Fuzil
-
Booster Fuzil
- Voir le profil du membre Victorien
- Inscrit le : 26/11/2015
Toujours en rapport avec cette fameuse page, j'ai réussi a l'intégrer dans un dossier en changant begin.php par init.php, maintenant je voudrais intégrer une page tpl donc sur ma page php j'ai ajouté
Code :
$tpl = new FileTemplate('vip/vip.tpl');;Créé ensuite le dossier templates et le fichier .tpl.
J'ai ajouté le script java fourni par hipay en attendant d'avoir un code php. Mais qu'est ce qu'il faut que je mette en plus dans le fichier tpl pour que le tout soit fonctionnel ? Merci
Merci
Édité par Victorien Le 10/12/2015 à 02h20
janus57 Membre non connecté
-
Booster Fusée
- Voir le profil du membre janus57
- Inscrit le : 07/12/2007
- Groupes :
-
Equipe Assistance
javascript et non java (c'est pas du tout la même chose).
Sinon pour le template là votre script est bien dans un dossier vip/templates/vip.tpl ?
Pour faire un modufle complet je vous conseil de suivre la doc (http://www.phpboost.com/wiki/creer-un-module) + de regarder un module existant (genre le module news et/ou articles).
Cordialement, janus57
Victorien Membre non connecté
Booster Fuzil
-
Booster Fuzil
- Voir le profil du membre Victorien
- Inscrit le : 26/11/2015
Si vous avez une solution simple, comme je l'ai dis c'est en attendant d'avoir un code php fonctionnel.
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie