ModernBB : Mention "Auteur du sujet" dans le profil du membre

2 participants

Voir le sujet précédent Voir le sujet suivant Aller en bas

Résolu ModernBB : Mention "Auteur du sujet" dans le profil du membre

Message par *Splash* Lun 21 Mai 2018 - 22:45

Bonsoir,

Est-il possible que cette mention s'ajoute au profil lorsque qu'un membre post un sujet sur le forum ?

Capture d'écran :

identifier le posteur du sujet - ModernBB : Mention "Auteur du sujet" dans le profil du membre Auteur10
*Splash*

*Splash*
Membre actif

Masculin
Messages : 3806
Inscrit(e) le : 25/02/2018

https://caforum.fr
*Splash* a été remercié(e) par l'auteur de ce sujet.

Résolu Re: ModernBB : Mention "Auteur du sujet" dans le profil du membre

Message par *Splash* Mer 23 Mai 2018 - 11:47

UP !

Une idée ?
*Splash*

*Splash*
Membre actif

Masculin
Messages : 3806
Inscrit(e) le : 25/02/2018

https://caforum.fr
*Splash* a été remercié(e) par l'auteur de ce sujet.

Résolu Re: ModernBB : Mention "Auteur du sujet" dans le profil du membre

Message par w00tw00t Mer 23 Mai 2018 - 13:34

Bonjour *Splash*,

Je peine un peu à comprendre quel est votre besoin. Pouvez-vous préciser ce que vous entendez par mention ? Est-ce l'image "supporter" que l'on voit sur votre screenshot ?

Et puis surtout, sous quelles conditions souhaitez vous qu'une telle mention soit ajoutée ? Est-ce qu'elle est attribuée aux utilisateurs au cas par cas ? Est-ce que c'est pour les utilisateurs qui appartiennent à un groupe précis ? Est-ce que cela dépend éventuellement d'autres paramètres (nombre de messages, etc) ?

Cordialement,
w00tw00t
w00tw00t

w00tw00t
***

Messages : 118
Inscrit(e) le : 09/05/2018

http://forum.forumactif.org
w00tw00t a été remercié(e) par l'auteur de ce sujet.

Résolu Re: ModernBB : Mention "Auteur du sujet" dans le profil du membre

Message par *Splash* Mer 23 Mai 2018 - 14:44

Hi w00tw00t,

La mention à ajouter serait "Auteur du sujet"

Cette mention s'ajoute au profil du membre qui lance un topic, elle s'ajoute uniquement aux informations du membre dans la discussion en question, ce qui rappel que c'est lui qui a initié le topic.
*Splash*

*Splash*
Membre actif

Masculin
Messages : 3806
Inscrit(e) le : 25/02/2018

https://caforum.fr
*Splash* a été remercié(e) par l'auteur de ce sujet.

Résolu Re: ModernBB : Mention "Auteur du sujet" dans le profil du membre

Message par w00tw00t Jeu 24 Mai 2018 - 0:20

Bonjour *Splash*,

Forumactif ne fourni pour le moment aucune facilité pour résoudre votre problème. Il existe néanmoins plusieurs solutions de contournement. Je vous en propose une compatible phpBB3 et ModernBB, et qui pourra fonctionner que vous ayez un rappel du 1er message ou non.

Comme l'a annoncé précédemment The Godfather, les forums migreront à terme vers jQuery 3.2. Pour rendre le code un peu plus simple, je vous propose de l'inclure dès à présent dans votre template overall_header. Ces lignes sont à placer idéalement avant tout autre chargement JavaScript. Vous pouvez les placez à défaut de savoir juste après la balise ouvrante "<head>".

Code:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.0/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">const $jQuery3 = $.noConflict(true);</script>

Ensuite rendez-vous dans votre template viewtopic_body et recherchez un élément qui porte la classe "postprofile" :

Code:
<div class="postprofile" id="profile{postrow.displayed.U_POST_ID}">

Cette classe est associée à un DIV. Insérez le code suivant ou vous le souhaitez au sein de cette DIV :

Code:
<span class="current_user_is_author" style="display:none">Auteur du topic</span>

Exemple :

Code:
<div class="postprofile" id="profile{postrow.displayed.U_POST_ID}">
        <!-- div class="online2"></div-->
        <dl>
                  <dt>
                          <div class="postprofile-avatar">
                                    {postrow.displayed.POSTER_AVATAR}
                          </div>
                          <div class="postprofile-name">
                                    {postrow.displayed.POSTER_NAME} <span class="current_user_is_author" style="display:none">Auteur du topic</span>
                          </div>
                          ….

Le span avec la mention "Auteur du topic" est ainsi placée dans cet exemple juste après l'avatar et le pseudo du membre dans chaque post. Vous remarquerez que l'attribut style précise que ce span est caché. Vous pourrez plus tard créer une classe pour faire appliquer les effets que vous le souhaitez sur cette mention, mais l'important est de conserver "display" à "none".

Pour finir, je vous propose ce nouveau JavaScript à ajouter (en tant que script présent sur toutes vos pages) :
Code:
$jQuery3(function(){
   try {
      const post_profile_selector = '.postprofile';
      const pagination_selector = '.pagination';
      const markup_selector = '.current_user_is_author';
      const has_first_message_enabled = false;

      const t_exp = /^\/t[0-9]+-/;
      const u_exp_extract = /^\/u([0-9]+)$/;
      const t_exp_extract = /^\/t([0-9]+)-/;
      const current_page = window.location.pathname;
      if(current_page.indexOf('/t') === 0){
         const lookAtFirstHT = (ownerDocument,selector,route,expr) => {
            let id = 0;
            $jQuery3(selector+' a[href^="/'+route+'"]',ownerDocument).each(function(){
               const $this = $jQuery3(this);
               const href = $this.attr('href');
               let extract = null;
               if( typeof href !== "undefined" && (extract=href.match(expr)) ){
                  id = Number.parseInt(extract[1]);
                  return false;
               }
            });
            return id;
         };
         let a_promise = null;
         if( t_exp.test(current_page) ){
            const id = lookAtFirstHT(document, post_profile_selector, 'u', u_exp_extract );
            if( id !== 0 ){
               a_promise = Promise.resolve(id);
            }
         } else if(!has_first_message_enabled) {
            let topic_id = lookAtFirstHT(document, pagination_selector, 't', t_exp_extract );
            if(topic_id !== 0){
               a_promise = new Promise((resolve, reject) => {
                  $jQuery3.get("/t"+topic_id+"-", ( data ) => {
                     const id = lookAtFirstHT($jQuery3.parseHTML( data , document.implementation.createHTMLDocument(""), false ), post_profile_selector, 'u', u_exp_extract );
                     if( id !== 0 ){
                        resolve(id);
                     }
                  });
               });
            }            
         }
         a_promise !== null && a_promise.then((uid)=>{
            $jQuery3(post_profile_selector).each(function(){
               const id = lookAtFirstHT(this, '', 'u', /^\/u([0-9]+)$/ );
               if( id === uid ){
                  $(markup_selector, this).show();
               }
            });            
         });
      }
   } catch(e){
      console.error(e);
   }
});

Il effectuera le nécessaire, au sein de l'affichage d'un sujet, pour rendre visible les éléments ".current_user_is_author" (le span dans notre cas qui contient la mention), dans le cas ou l'auteur du message courant est bien l'auteur du sujet. Il effectue une requête AJAX dans le cas ou la page visitée n'est pas la première, et qu'il n'existe pas de rappel du premier message.

Mes codes ont été testés avec succès sur des installations propres phpBB3 et ModernBB. Néanmoins un petit travail d'adaptation est peut être nécessaire selon l'environnement de destination.

Je reste à votre disposition pour plus de détails,

Cordialement,
w00tw00t
w00tw00t

w00tw00t
***

Messages : 118
Inscrit(e) le : 09/05/2018

http://forum.forumactif.org
w00tw00t a été remercié(e) par l'auteur de ce sujet.

Résolu Re: ModernBB : Mention "Auteur du sujet" dans le profil du membre

Message par *Splash* Jeu 24 Mai 2018 - 2:27

Merci w00tw00t,

Je test ça très vite...
*Splash*

*Splash*
Membre actif

Masculin
Messages : 3806
Inscrit(e) le : 25/02/2018

https://caforum.fr
*Splash* a été remercié(e) par l'auteur de ce sujet.

Résolu Re: ModernBB : Mention "Auteur du sujet" dans le profil du membre

Message par *Splash* Mar 29 Mai 2018 - 11:01

Hi w00tw00t,
Rien n'est ajouté comme mention en suivant tes explications.

Je pense ne pas avoir compris où ajouter le code dans le overhall_header :
w00tw00t a écrit:

Comme l'a annoncé précédemment The Godfather, les forums migreront à terme vers jQuery 3.2. Pour rendre le code un peu plus simple, je vous propose de l'inclure dès à présent dans votre template overall_header. Ces lignes sont à placer idéalement avant tout autre chargement JavaScript. Vous pouvez les placez à défaut de savoir juste après la balise ouvrante "<head>".
*Splash*

*Splash*
Membre actif

Masculin
Messages : 3806
Inscrit(e) le : 25/02/2018

https://caforum.fr
*Splash* a été remercié(e) par l'auteur de ce sujet.

Résolu Re: ModernBB : Mention "Auteur du sujet" dans le profil du membre

Message par w00tw00t Mar 29 Mai 2018 - 20:27

Bonjour *Splash*,

Vous pouvez placer ce code juste après la balise suivante :
Code:
<head>

Cette balise doit se situer tout en haut de votre template overall_header.

Comme je l'ai indiqué, plusieurs modifications peuvent être nécessaires pour le rendre fonctionnel sur votre environnement, selon la quantité de modifications dans vos templates notamment. A ce titre, pouvez-vous me fournir par MP, l'URL de votre forum de destination, ainsi qu'un compte de test ? Ce sera plus simple pour vous aider !

Cordialement,
w00tw00t
w00tw00t

w00tw00t
***

Messages : 118
Inscrit(e) le : 09/05/2018

http://forum.forumactif.org
w00tw00t a été remercié(e) par l'auteur de ce sujet.

Résolu Re: ModernBB : Mention "Auteur du sujet" dans le profil du membre

Message par *Splash* Mar 29 Mai 2018 - 20:33

Voici les 6 premières lignes de mon overall_header

Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" dir="{S_CONTENT_DIRECTION}" id="min-width" lang="{L_LANG_HTML}" xml:lang="{L_LANG_HTML}" {NAMESPACE_FB_LIKE} {NAMESPACE_FB} {NAMESPACE_BBCODE}>
<head>
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.0/jquery.min.js" type="text/javascript"></script>
        <script type="text/javascript">const $jQuery3 = $.noConflict(true);</script>
 <title>{SITENAME_TITLE}{PAGE_TITLE}</title>

Les deux lignes sont bien à la suite de la balise <head>

Le lien de mon forum est renseigné dans mon profil
Pour le compte Test, il faut qu'il ait des accès particuliers ?
*Splash*

*Splash*
Membre actif

Masculin
Messages : 3806
Inscrit(e) le : 25/02/2018

https://caforum.fr
*Splash* a été remercié(e) par l'auteur de ce sujet.

Résolu Re: ModernBB : Mention "Auteur du sujet" dans le profil du membre

Message par *Splash* Mar 29 Mai 2018 - 20:43

*Splash* a écrit:Voici les 6 premières lignes de mon overall_header

Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" dir="{S_CONTENT_DIRECTION}" id="min-width" lang="{L_LANG_HTML}" xml:lang="{L_LANG_HTML}" {NAMESPACE_FB_LIKE} {NAMESPACE_FB} {NAMESPACE_BBCODE}>
<head>
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.0/jquery.min.js" type="text/javascript"></script>
        <script type="text/javascript">const $jQuery3 = $.noConflict(true);</script>
 <title>{SITENAME_TITLE}{PAGE_TITLE}</title>

Les deux lignes sont bien à la suite de la balise <head>

Le lien de mon forum est renseigné dans mon profil
Pour le compte Test, il faut qu'il ait des accès particuliers ?

EDIT

Mes yeux me font défaut !

tout va bien car la mention apparaît bien

identifier le posteur du sujet - ModernBB : Mention "Auteur du sujet" dans le profil du membre Sans_t15

Est-il possible de placer cette mention entre le pseudo et le groupe du membre ?
Et-il possible de mettre cette mention en gras et lui donner une couleur ?

*Splash*

*Splash*
Membre actif

Masculin
Messages : 3806
Inscrit(e) le : 25/02/2018

https://caforum.fr
*Splash* a été remercié(e) par l'auteur de ce sujet.

Résolu Re: ModernBB : Mention "Auteur du sujet" dans le profil du membre

Message par w00tw00t Mar 29 Mai 2018 - 20:55

Bonjour *Splash*,

Vos modifications sont correctes en effet.

Néanmoins, lorsque l'on est sur une session invitée sur votre forum, chaque auteur est affiché sous forme textuelle, et non sous forme de lien cliquable, ce qui empêche au système de déduire quels sont les IDs des utilisateurs de chaque message d'un sujet, et donc d'en déduire l'auteur. Peut être avez-vous désactiver les liens ou quelque chose comme ça pour vos invités. Il faudra investiguer si vous souhaitez que la mention soit également présente dans ces conditions.

Pour ce qui est d'un utilisateur connecté, veillez à vérifier que la mention s'affiche bien à la fois sur la première page et sur les autres pages d'un sujet donné. S'agissant de l'emplacement de la mention, rien ne vous empêche à la place d'un span d'utiliser un div par exemple :

Code:
<div class="current_user_is_author" style="display:none">Auteur du sujet</div>

Vous pouvez ensuite personnaliser le style à l'aide de la classe "current_user_is_author" dans votre CSS :
Code:
.current_user_is_author {
    font-weight: bold;
    color: #f00;
}

Vous pouvez aussi spécifier une image en tant que "background-image" si c'est plus pratique.

Si vous avez d'autres modifications souhaitées, vous pouvez m'envoyer un compte de test, sans droit particulier (membre standard).

Cordialement,
w00tw00t
w00tw00t

w00tw00t
***

Messages : 118
Inscrit(e) le : 09/05/2018

http://forum.forumactif.org
w00tw00t a été remercié(e) par l'auteur de ce sujet.

Résolu Re: ModernBB : Mention "Auteur du sujet" dans le profil du membre

Message par *Splash* Mar 29 Mai 2018 - 21:06

Merci w00tw00t,

Avec la commande <br /> cette mention apparaît entre le pseudo et le groupe du membre
Code:
<div class="postprofile-name">
                    {postrow.displayed.POSTER_NAME}<br />
                    <span class="current_user_is_author" style="display:none">Auteur du sujet</span>
                  </div>

Je passe ce sujet en Résolu
*Splash*

*Splash*
Membre actif

Masculin
Messages : 3806
Inscrit(e) le : 25/02/2018

https://caforum.fr
*Splash* a été remercié(e) par l'auteur de ce sujet.

Résolu Re: ModernBB : Mention "Auteur du sujet" dans le profil du membre

Message par *Splash* Mar 29 Mai 2018 - 21:24

w00tw00t a écrit:Néanmoins, lorsque l'on est sur une session invitée sur votre forum, chaque auteur est affiché sous forme textuelle, et non sous forme de lien cliquable, ce qui empêche au système de déduire quels sont les IDs des utilisateurs de chaque message d'un sujet, et donc d'en déduire l'auteur. Peut être avez-vous désactiver les liens ou quelque chose comme ça pour vos invités. Il faudra investiguer si vous souhaitez que la mention soit également présente dans ces conditions.
Non les liens sont actifs pour les visiteurs.
Quelle est la modification à apporter pour que cette mention "Auteur du sujet" soit visible aux invités ?

Trouvé, il suffit d'enlever display:none
*Splash*

*Splash*
Membre actif

Masculin
Messages : 3806
Inscrit(e) le : 25/02/2018

https://caforum.fr
*Splash* a été remercié(e) par l'auteur de ce sujet.

Résolu Re: ModernBB : Mention "Auteur du sujet" dans le profil du membre

Message par w00tw00t Mar 29 Mai 2018 - 22:59

Bonjour *Splash*,

Si vous enlevez display:none, la mention sera affichée pour chaque message, et ce même si le message n'est pas posté par l'auteur du sujet. La technique réside justement dans la présence de ce display:none.

Le système ne détecte pas pour les invités qui est l'auteur d'un sujet, puisque la configuration de votre forum ne le permet pas. Pour que cela fonctionne avec les invités vous devez vous assurer que "voir le profil" est bien positionné sur "invités" :
identifier le posteur du sujet - ModernBB : Mention "Auteur du sujet" dans le profil du membre T8QdWik

Si néanmoins vous souhaitez masquer les profils aux invités ET continuer d'afficher l'auteur du sujet pour vos invités, une solution de contournement pourrait être de laisser les profils pour les invités, mais qu'après l'exécution du script vous masquez tout ce qui est relatif aux informations profils.

Je reste à disposition par MP pour plus de détails. Vous pouvez également ouvrir un nouveau sujet si vous avez d'autres besoins par rapport à cette mention "auteur du sujet".

Cordialement,
w00tw00t

Merci à Chacha d'avoir réouvert le topic pour que je puisse apporter cette précision pour les autres membres Wink
w00tw00t

w00tw00t
***

Messages : 118
Inscrit(e) le : 09/05/2018

http://forum.forumactif.org
w00tw00t a été remercié(e) par l'auteur de ce sujet.

Voir le sujet précédent Voir le sujet suivant Revenir en haut

- Sujets similaires

Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum