[Tutoriel] Mentionner un @utilisateur sur le forum
Myster Membre non connecté
Booster Missile
- Booster Missile
- Voir le profil du membre Myster
- Inscrit le : 04/10/2010
- Groupes :
Aujourd'hui je vous partage une petite bidouillette pour avoir la possibilité de mentionner un membre sur votre forum par exemple
"Bonjour @Myster se transformera en @Myster <= Lorsqu'on cliquera sur le pseudo ça amènera au profil du membre.
Etape 1
Ouvrez le fichier /forum/Forum.class.php puis juste en dessous de class Forum { ajoutez ceci:
Code PHP :
static function mentionnerUtilisateur($matches) { try { $req = PersistenceContext::get_querier()->select_single_row(PREFIX . 'member', array('user_id', 'display_name'), 'WHERE display_name=:name', array('name' => $matches[1])); return '<a href="'.UserUrlBuilder::profile($req['user_id'])->rel().'">@'.$matches[1].'</a>'; } catch(RowNotFoundException $e) { return $matches[0]; } }
Puis ouvrez le fichier forum/topic.php et vers la ligne 372 et remplacez
Code PHP :
'FORUM_MSG_CONTENTS' => FormatingHelper::second_parse(stripslashes($row['contents'])),
par
Code PHP :
'FORUM_MSG_CONTENTS' => preg_replace_callback('#@([a-zA-Z0-9áàâäãåçéèêëíìîïñóòôöõúùûüýÿæœÁÀÂÄÃÅÇÉÈÊËÍÌÎÏÑÓÒÔÖÕÚÙÛÜÝŸÆŒ._-]+)#', 'Forum::mentionnerUtilisateur', FormatingHelper::second_parse(stripslashes($row['contents']))),
Édité par Myster Le 25/04/2021 à 18h50
Myster Membre non connecté
Booster Missile
- Booster Missile
- Voir le profil du membre Myster
- Inscrit le : 04/10/2010
- Groupes :
Myster Membre non connecté
Booster Missile
- Booster Missile
- Voir le profil du membre Myster
- Inscrit le : 04/10/2010
- Groupes :
Tout d'abord nous allons rajouter la langue, donc allez dans /notifications/lang/french/common.php
puis à la fin du fichier avant la balise ?> ajoutez ceci:
Code PHP :
$lang['notification.forum.mention'] = '<a href=":url_username">:username</a> vous a mentionné sur le sujet <a href=":url">:sujet</a>';
Puis maintenant ouvrez forum/Forum.class.php
Puis dans la fonction Add_msg vers la ligne 130 juste au dessus de
Code PHP :
forum_generate_feeds();
Ajoutez ceci
Code PHP :
$matches = array(); if (preg_match_all('#@([a-zA-Z0-9áàâäãåçéèêëíìîïñóòôöõúùûüýÿæœÁÀÂÄÃÅÇÉÈÊËÍÌÎÏÑÓÒÔÖÕÚÙÛÜÝŸÆŒ._-]+)#', $contents, $matches)) { foreach(array_unique($matches[1]) as $value) { $userExist = UserService::get_user_by_display_name($value); if($userExist) { if ($userExist->get_id() != AppContext::get_current_user()->get_id()) { $notify = New Notifications(); $notify->set_sender_id(AppContext::get_current_user()->get_id()); $notify->set_recipient_id($userExist->get_id()); $notify->set_reading(0); $notify->set_date(time()); $notify->set_content(NotificationsFormat::contenu('forum.mention', array( 'url_username' => UserUrlBuilder::profile(AppContext::get_current_user()->get_id())->rel(), 'username' => AppContext::get_current_user()->get_display_name(), 'sujet' => $title, 'url' => ' /forum/topic' . url('.php?id=' . $idtopic . $last_page, '-' . $idtopic . $last_page_rewrite . '.php') . ($previous_msg_id ? '#m' . $previous_msg_id : '') ))); Notifications::add_notification($notify); } } } }
Voilà c'est fini ! Dorénavant vous recevrez une notification si quelqu'un vous mentionne dans un message du forum.
Édité par Myster Le 25/04/2021 à 19h39
Mayo-naise Membre non connecté
Booster Fronde
- Booster Fronde
- Voir le profil du membre Mayo-naise
- Inscrit le : 29/05/2019
ElenWii Membre non connecté
- Administrateur
- Voir le profil du membre ElenWii
- Inscrit le : 14/08/2009
- Site internet
- Groupes :
- Equipe Graphique
Est-ce que ton regex n'est pas un peu trop restrictif ?
@([A-Za-z0-9]+) n'accepterait pas "Mayo-naise" a priori. (Ajout du -, du _ et du . nécessaire je pense.)
et il serait intéressant de limiter à des éléments d'au moins 2 caractères ? ({2,} à la place du +)
Je crois que cela donnerait ça : @([A-Za-z0-9-_.]{2,})
babsolune Membre non connecté
Administrateur
- Administrateur
- Voir le profil du membre babsolune
- Inscrit le : 16/05/2008
- Site internet
- Groupes :
C'est un module créé par @Myster dont les différentes versions en fonction des versions de PHPBoost sont ici : <a href="/forum/forum-132+vos-modules.php">https://www.phpboost.com/forum/forum-132+vos-modules.php</a>
c'est un module qui pour l'instant nécessite des modifications dans les autres modules.
MickaelFR Membre non connecté
Booster Fusée
- Booster Fusée
- Voir le profil du membre MickaelFR
- Inscrit le : 20/01/2014
- Site internet
- Groupes :
J'ai installé le premier je crois bien, et ça marche très bien
Je n'ai pas encore eu le cas de nom composé avec tiret ou sans ..
Il ne faut juste pas mettre les accents.
Myster Membre non connecté
Booster Missile
- Booster Missile
- Voir le profil du membre Myster
- Inscrit le : 04/10/2010
- Groupes :
ElenWii :
Superbe idée Myster.
Est-ce que ton regex n'est pas un peu trop restrictif ?
@([A-Za-z0-9]+) n'accepterait pas "Mayo-naise" a priori. (Ajout du -, du _ et du . nécessaire je pense.)
et il serait intéressant de limiter à des éléments d'au moins 2 caractères ? ({2,} à la place du +)
Je crois que cela donnerait ça : @([A-Za-z0-9-_.]{2,})
Est-ce que ton regex n'est pas un peu trop restrictif ?
@([A-Za-z0-9]+) n'accepterait pas "Mayo-naise" a priori. (Ajout du -, du _ et du . nécessaire je pense.)
et il serait intéressant de limiter à des éléments d'au moins 2 caractères ? ({2,} à la place du +)
Je crois que cela donnerait ça : @([A-Za-z0-9-_.]{2,})
Pardon de cet énorme retard, mais oui effectivement ton regex fonctionne est moins restrictif en effet
MickaelFR Membre non connecté
Booster Fusée
- Booster Fusée
- Voir le profil du membre MickaelFR
- Inscrit le : 20/01/2014
- Site internet
- Groupes :
Je l'utilise toujours ce tuto
Dommage seulement que en tapant une ou deux lettres, ça ne propose pas un pseudo On fait pas mal d'erreurs de frappe de temps en temps.
J'espère cependant que tu vas bien @Myster
Myster Membre non connecté
Booster Missile
- Booster Missile
- Voir le profil du membre Myster
- Inscrit le : 04/10/2010
- Groupes :
Je vais bien je te remercie et toi dont ?
Je vais voir ce que je peux faire pour l'autocompletion des pseudos
MickaelFR Membre non connecté
Booster Fusée
- Booster Fusée
- Voir le profil du membre MickaelFR
- Inscrit le : 20/01/2014
- Site internet
- Groupes :
C'est optionnel, mais cela me parait bien pratique. Tu m'avais parlé d'un Json non ?
Sinon je vais bien, merci à mon tour
Édité par MickaelFR Le 08/11/2019 à 12h04
Myster Membre non connecté
Booster Missile
- Booster Missile
- Voir le profil du membre Myster
- Inscrit le : 04/10/2010
- Groupes :
Édité par Myster Le 08/11/2019 à 13h36
MickaelFR Membre non connecté
Booster Fusée
- Booster Fusée
- Voir le profil du membre MickaelFR
- Inscrit le : 20/01/2014
- Site internet
- Groupes :
Lapoésie01600 Membre non connecté
Booster Bazooka
- Booster Bazooka
- Voir le profil du membre Lapoésie01600
- Inscrit le : 22/09/2020
- Site internet
- Groupes :
Sa marche pour la version php boost actuelle ?
Édité par Lapoésie01600 Le 02/03/2021 à 19h07
Héberger grâce à vous chez o2Switch
MickaelFR Membre non connecté
Booster Fusée
- Booster Fusée
- Voir le profil du membre MickaelFR
- Inscrit le : 20/01/2014
- Site internet
- Groupes :
Mais c'est pas 100% au point encore
ça ne marche pas si :
- On met des accents aux pseudos
- Pseudo avec tiret et/ou espace
- Pseudo avec tiret et/ou espace
Coupé à l'add-on "notifications", c'est pas mal (je l'utilise).
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie