Nombre total de messages

Forum pour rechercher des MODs.
Pas de support dans ce forum

Modérateur: Equipe

Règles du forum
Rappel: Conditions générales d'utilisation de phpBB-fr.com

Attention, aucun support de MODs n'est donné dans ce forum.

Nombre total de messages

Messagepar Jesuisbonpourlhpbb » 18 Oct 2008 à 03:26

Salut !
J'aimerais pouvoir exclure du total des messages affichés par défaut en page d'index de mon forum phpBB 3.02, ceux qui se trouveraient dans des forums cachés aux utilisateurs "lambdas" (histoire d'y préparer tranquille de long posts documentés avec plein de liens/images ou encore de discuter de sujets qui n'intéressent que quelques personnes).

Au départ je pensais que cette fonction était planquée et j'ai posé ma demande sur le forum d'utilisation : http://forums.phpbb-fr.com/support-utilisation-phpbb3/sujet153842.html#p1175631

Après recherches, aucun MOD pour me satisfaire... snif.

Faute de produire un MOD complet tout beau (je précise que je n'y connais rien en php, ça se trouve ce serait facile mais je vais supposer que non) le remplacement de l'appel dans le template viewforum_body de la fonction TOTAL_POSTS par une faite à la main se contentant d'additionner bêtement les messages des forums "publics" me contenterait pleinement (étant entendu que l'identification des forums se ferait sur leur numéro et pas automatiquement, je n'en demande pas tant).

J'imagine confusément que la création de cette nouvelle fonction ne doit pas prendre plus de 3 lignes et ce n'est pas grave s'il me faudrait aller trifouiller dans les fichiers php à chaque fois que je modifierais la structure de mon forum, je pense que le jeu en vaut la chandelle !

Bref, je fais appel aux gentils experts pour me permettre d'héberger mes sujets persos ou brouillon sur mon forum sans que cela ne puisse être mal ressenti par les curieux qui verraient le (trop faible) total de messages évoluer sans qu'il ne comprenne pourquoi !

Merci !
Dernière édition par Jesuisbonpourlhpbb le 21 Oct 2008 à 01:18, édité 1 fois.
Avatar de l’utilisateur
Jesuisbonpourlhpbb
Posteur néophyte
Posteur néophyte
 
Messages: 38
Inscription: 15 Juin 2008 à 10:21

Re: Nombre total de messages

Messagepar spitfire pat » 20 Oct 2008 à 16:31

on peut essayer de compter posts et topics lors du listage des forums de la page index, listage ne portant que sur les forums visibles à l'utilisateur
  • OUVRIR includes/functions_display.php
  • CHERCHER
    Code: Tout sélectionner
       $parent_id = $visible_forums = 0;
  • AJOUTER APRES
    Code: Tout sélectionner
       $total_topics = $total_posts = 0;
  • CHERCHER
    Code: Tout sélectionner
          $last_catless = $catless;
       }
  • REMPLACER PAR
    Code: Tout sélectionner
          $last_catless = $catless;
          $total_topics += $row['forum_topics'];
          $total_posts += $row['forum_posts'];
       }
       $l_total_post_s = ($total_posts == 0) ? 'TOTAL_POSTS_ZERO' : 'TOTAL_POSTS_OTHER';
       $l_total_topic_s = ($total_topics == 0) ? 'TOTAL_TOPICS_ZERO' : 'TOTAL_TOPICS_OTHER';
  • CHERCHER
    Code: Tout sélectionner
          'S_HAS_SUBFORUM'   => ($visible_forums) ? true : false,
  • AJOUTER APRES
    Code: Tout sélectionner
          'TOTAL_POSTS'   => sprintf($user->lang[$l_total_post_s], $total_posts),
          'TOTAL_TOPICS'   => sprintf($user->lang[$l_total_topic_s], $total_topics),
  • OUVRIR index.php
  • CHERCHER
    Code: Tout sélectionner
       'TOTAL_POSTS'   => sprintf($user->lang[$l_total_post_s], $total_posts),
       'TOTAL_TOPICS'   => sprintf($user->lang[$l_total_topic_s], $total_topics),
  • REMPLACER PAR
    Code: Tout sélectionner
       //'TOTAL_POSTS'   => sprintf($user->lang[$l_total_post_s], $total_posts),
       //'TOTAL_TOPICS'   => sprintf($user->lang[$l_total_topic_s], $total_topics),

je l'ai testé sur mon forum local en rendant un forum invisible aux invités, et ça marche, quand je me déconnecte, le nombre de sujets et messages correspond bien aux forums visibles
Avatar de l’utilisateur
spitfire pat
MOD Contest Winner
MOD Contest Winner
 
Messages: 15310
Inscription: 18 Sep 2004 à 15:43
Localisation: bourgogne

Re: Nombre total de messages

Messagepar Jesuisbonpourlhpbb » 21 Oct 2008 à 00:51

Ah pinaise (à la Homer Simpson) !
Une réponse !

Et pas n'importe comment !
Je viens de voir que tu m'avais répondu, je suis tout fébrile tellement je pensais que je ne trouverai personne pour relever ma demande :!:

En plus tu sembles proposer un truc encore mieux que ce que je demandais puisque cela afficherait un décompte différent en fonction des permissions de chaque utilisateur !!

Bon je vais me retrousser les manches et dès que je peux je m'y attelle et je reviens donner des nouvelles ici !

Pinaise, si ça marche comme je l'imagine, ca mériterait d'être inclus par défaut dans le code tant ce comportement serait préférable et autrement plus logique !

Merki spitfire pat :!:
Avatar de l’utilisateur
Jesuisbonpourlhpbb
Posteur néophyte
Posteur néophyte
 
Messages: 38
Inscription: 15 Juin 2008 à 10:21

Re: Nombre total de messages

Messagepar Jesuisbonpourlhpbb » 21 Oct 2008 à 01:17

(je sais j'aurais dû éditer c'est mal et tout :oops: )

Bon spitfire pat,
tu veux m'épouser ? :mrgreen:

J'ai pas tenu ! Aussitôt dit, aussitôt modifié, juste une petite frayeur sur la recherche 'S_HAS_SUBFORUM'... où le nombre d'espace ne devait pas coller exactement mais ça a été facile à retrouver.
Comment dire ?
C'est GÉNIAL

Bon j'ai pas tout compris à la manipe, à vue de nez on dirait que tu désactives les fonctions de comtpage de l'index par deux faites à la main dont je conçois l'idée (ne compter que les forums visibles donc) sans comprendre du tout la mise en place.

En gros c'est encore mieux que ce que je souhaitais même si je tente de modérer mon enthousiasme sachant qu'un éventuel bug indirect (puisque si j'en crois ma mémoire et quelques recherches la fonction est utilisée dans pas mal d'autres fonctions) n'est pas impossible mais j'ai quand même le pressentiment que c'est juste fantastique !

Pinaise !!

Bon allez spitfire pat, tu m'en vas avec ce mod sous le bras postuler pour le meilleur mod mondial du mois, hop, hop !
Je vote pour toi au nobel du php de l'année :wink:
Avatar de l’utilisateur
Jesuisbonpourlhpbb
Posteur néophyte
Posteur néophyte
 
Messages: 38
Inscription: 15 Juin 2008 à 10:21

Re: Nombre total de messages

Messagepar Jesuisbonpourlhpbb » 21 Oct 2008 à 02:48

(je sais l'édition tout ça mais ce n'est pas pour faire remonter le sujet qui de toute façon à cette heure est resté bien tout en haut...)

Alors j'ai fait quelques essais, ça me parait très bien.
Je n'ose formuler une demande un peu anecdotique et probablement plus compliquée qui parachevrait la précédente modification.
Il s'agirait d'agir au niveau des statistiques afin que la règle visible / non visible des forums où sont présents les messages impacte le nombre de messages totaux de l'utilisateur (on aurait donc des chiffres différents de statistiques pour chaque utilisateur en fonction des permissions de celui qui les consulterait).

C'est peut-être un coup à produire une usine à gaz (si c'est pour créer des tables dans la base de données rien que pour ça ce n'en vaut peut-être pas la peine tant ça pourrait être volumineux, non ?).

Pour le moment je ruse en n'impactant pas le compteur de messages dans les forums "planqués" (via le réglage des permissions du forum dans le panneau de contrôle de l'utilisateur), mais je viens de m'apercevoir d'un souci qui me fera probablement poster dans le forum utilisation (un brouillon fini déplacé dans un forum public, n'impacte pas le nombre de message total de l'auteur du brouillon rendu public - jusque là ça parait logique - mais la demande de recalcul des statistiques via le panneau de contrôle de l'utilisateur ne résout pas le problème non plus :? bref y a encore ce petit détail pour m'empêcher de planer totalement, mais on va bien réussir à régler ce point là, je me repencherai dessus, peut-être qu'au lieu du déplacement le clônage puis effacement de l'original marcherait, merci encore).
Avatar de l’utilisateur
Jesuisbonpourlhpbb
Posteur néophyte
Posteur néophyte
 
Messages: 38
Inscription: 15 Juin 2008 à 10:21

Re: Nombre total de messages

Messagepar spitfire pat » 21 Oct 2008 à 05:16

Jesuisbonpourlhpbb a écrit:Il s'agirait d'agir au niveau des statistiques afin que la règle visible / non visible des forums où sont présents les messages impacte le nombre de messages totaux de l'utilisateur (on aurait donc des chiffres différents de statistiques pour chaque utilisateur en fonction des permissions de celui qui les consulterait).

euh, là ça deviendrait vraiment l'usine à gaz. les quelques lignes que je t'ai proposées n'alourdissent pas l'ensemble des scripts. Mais là il faudrait créer une fonction qui listerait les forums visibles par l'utilisateur et ensuite compterait les messages d'un utilisateur donné dans ces forums. Ca serait trés lourd
Avatar de l’utilisateur
spitfire pat
MOD Contest Winner
MOD Contest Winner
 
Messages: 15310
Inscription: 18 Sep 2004 à 15:43
Localisation: bourgogne

Re: Nombre total de messages

Messagepar Jesuisbonpourlhpbb » 21 Oct 2008 à 15:25

Dans ce cas, ça ne se justifie effectivement pas !

Bon pour l'autre souci que j'évoquais, c'est semble-t-il un bug (ou du moins un comportement pas changeable) de phpBB qui ne change pas (ni ne permet de changer) le drapeau post_postcount des messages lorsque l'on déplace des messages (ou un sujet entier) d'un forum où les messages déplacés ne doivent pas incrémenter le nombre de message de leur auteur vers un forum où ils devraient l'être.

Solution temporaire du problème : aller trifouiller dans la base de donnée avec myphp afin de changer la valeur des drapeaux.

Sinon je rajoute une couche sur l'intérêt de la modification que tu m'as gentiment indiquée : elle mériterait une publicité large afin que son intégration soit étudiée dans le phpBB par défaut !

Merci encore :wink:
Avatar de l’utilisateur
Jesuisbonpourlhpbb
Posteur néophyte
Posteur néophyte
 
Messages: 38
Inscription: 15 Juin 2008 à 10:21

Re: Nombre total de messages

Messagepar Jesuisbonpourlhpbb » 22 Oct 2008 à 14:07

Coucou c'est remoi !

Il y a encore un petit truc à changer pour finir de réussir l'opération camouflage des forums cachés : les statistiques de l'utilisateur accessibles via le profil ou le panneau de contrôle de l'utilisateur.

Plus exactement l'information portant sur le pourcentage des messages d'un utilisateur par rapport à l'ensemble des messages du forum ( % de tous les messages ) : le dénominateur retenu est celui de tous les messages y compris les messages cachés, même pour les utilisateurs n'étant pas au courant de leur existence et ne pouvant les voir.

Après avoir commencé à mater l'affaire, il semblerait que ce soit la fonction 'POSTS_PCT' qui soit en cause (qui ,si je ne dis pas de connerie, apparait 2 fois, une dans \includes\ucp\ucp_main.php et une dans \memberlist.php ), fonction qui les deux fois est rédigée ainsi :

Code: Tout sélectionner
'POSTS_PCT'         => sprintf($user->lang['POST_PCT'], $percentage),


Etant donné mes capacités nulles en php je ne sais pas trop ce qui doit être modifié pour corriger le tir.

La correction la plus simple a priori (et qui me contenterait pleinement) consisterait à seulement corriger le dénominateur (le nombre total de posts du forum) pour qu'il ne prenne en compte que les posts visibles par l'utilisateur loggé. Même si cela donne un résultat faux pour les utilisateurs qui peuvent voir tous les messages (plus de posts visibles), ce n'est pas très grave

Est-elle possible ?

Merci.

Edit :
D'après ce que je crois comprendre 'POST_PCT' fait juste appel à $percentage, fonction (?) définie dans les 2 fichiers en questions de façon différente :

dans ucp_main.php :
Code: Tout sélectionner
$percentage = ($config['num_posts']) ? min(100, ($user->data['user_posts'] / $config['num_posts']) * 100) : 0;


dans memberlist.php
Code: Tout sélectionner
$percentage = ($config['num_posts']) ? min(100, ($member['user_posts'] / $config['num_posts']) * 100) : 0;


Cela dit ça ne me rend pas la chose plus claire :?
Avatar de l’utilisateur
Jesuisbonpourlhpbb
Posteur néophyte
Posteur néophyte
 
Messages: 38
Inscription: 15 Juin 2008 à 10:21

Re: Nombre total de messages

Messagepar spitfire pat » 22 Oct 2008 à 16:42

le nombre total de posts étant contenu dans la clé num_posts de la table phpbb_config, et celui-ci ayant été recalculé avec le bout de code que je t'ai donné, il suffit alors de modifier cette clé avec la nouvelle valeur.
donc dans functions_display après
Code: Tout sélectionner
$l_total_topic_s = ($total_topics == 0) ? 'TOTAL_TOPICS_ZERO' : 'TOTAL_TOPICS_OTHER';

tu ajoutes
Code: Tout sélectionner
   set_config('num_topics', $total_topics, true);
   set_config('num_posts', $total_posts, true);


ça devrait marcher, à la condition que l'utilisateur soit d'abord passé par la page d'index
Avatar de l’utilisateur
spitfire pat
MOD Contest Winner
MOD Contest Winner
 
Messages: 15310
Inscription: 18 Sep 2004 à 15:43
Localisation: bourgogne

Re: Nombre total de messages

Messagepar Mr_Simon » 22 Oct 2008 à 17:43

spitfire pat a écrit:tu ajoutes
Code: Tout sélectionner
   set_config('num_topics', $total_topics, true);
   set_config('num_posts', $total_posts, true);

ça devrait marcher, à la condition que l'utilisateur soit d'abord passé par la page d'index


T'es sûr :?:
S'il y a plusieurs personnes sur l'index en même temps avec des droits différents, la valeur va continuellement être changée...et risque de ne même pas être bonne (en fonction de ses droits) lorsqu'une personne ira voir les stats...
C'est l'impression que j'ai.
Pas d'aide par MP le forum est la pour ça.
Mes mods phpbb3 Ici
Avatar de l’utilisateur
Mr_Simon
Posteur expérimenté
Posteur expérimenté
 
Messages: 325
Inscription: 19 Sep 2007 à 20:31

Re: Nombre total de messages

Messagepar spitfire pat » 22 Oct 2008 à 18:19

ben oui, c'est le souci, mais c'est la seule solution que j'ai pu trouver qui ne soit pas trop lourde
Avatar de l’utilisateur
spitfire pat
MOD Contest Winner
MOD Contest Winner
 
Messages: 15310
Inscription: 18 Sep 2004 à 15:43
Localisation: bourgogne

Re: Nombre total de messages

Messagepar Jesuisbonpourlhpbb » 22 Oct 2008 à 23:30

Hmmm :?

Bon déjà merci pour les réponses.
Ensuite je dois avouer que je ne capte toujours pas grand chose à la syntaxe du php et globalement ce qui vous parait évident me dépasse franchement :oops: !

Puisque l'on en est à rustiner je me posais la question d'éviter un comportement erratique tel que celui possible évoqué.
Je vois dans mon monde nébuleux deux possibilités vers lesquelles iraient plutôt mes préférences.

1) forcer le recalcul au moment de l'affichage du pourcentage
Je ne me rends pas bien compte de la lourdeur de l'opération. Vu de très loin ca ressemble à une bête addition. Si la requête n'est pas trop lourde (après tout elle est faite à chaque fois qu'on affiche l'index, non ?) on doit peut-être pouvoir la planquer dans les pages de profil et du panneau de l'utilisateur sans en afficher le résultat (enfin on pourrait afficher le nombre total calculé mais ce n'est pas franchement utile) afin d'obtenir le bon dénominateur.

2) dégager l'affichage de ce pourcentage
Bon c'est vrai que c'est sympathique pour chacun de savoir combien il "pèse" dans l'ensemble des messages du forum mais ce n'est pas franchement vital non plus.
Le truc qui me chiffonne par contre c'est que je n'ai pas l'impression que l'affichage des 2 pages (l'UCP et le profil donc) en question repose sur l'usage de templates (plus à ma portée pour la modification) et du coup je ne sais pas trop à quel endroit ça se modifierait tout ça.

Qu'en dites vous messieurs :?:
Avatar de l’utilisateur
Jesuisbonpourlhpbb
Posteur néophyte
Posteur néophyte
 
Messages: 38
Inscription: 15 Juin 2008 à 10:21

Re: Nombre total de messages

Messagepar spitfire pat » 23 Oct 2008 à 06:56

Jesuisbonpourlhpbb a écrit:1) forcer le recalcul au moment de l'affichage du pourcentage
Je ne me rends pas bien compte de la lourdeur de l'opération. Vu de très loin ca ressemble à une bête addition.
ça oblige à créer une fonction qui va repasser en revue tous les forums et calculer le nombre de posts de chaque forum visible, alors que ça déjà été fait, ça n'est pas trés satisfaisant.
Le truc qui me chiffonne par contre c'est que je n'ai pas l'impression que l'affichage des 2 pages (l'UCP et le profil donc) en question repose sur l'usage de templates (plus à ma portée pour la modification) et du coup je ne sais pas trop à quel endroit ça se modifierait tout ça.

je n'ai pas trés bien compris le sens de ta demande, mais sache que l'affichage de toutes les pages repose sur les templates

bon je pense que la meilleure solution, c'est de passer par les sessions php
tu fais commencer tous les fichiers php de la racine par
Code: Tout sélectionner
session_start();

dans functions_display.php, à la place de
Code: Tout sélectionner
set_config('num_topics', $total_topics, true);
   set_config('num_posts', $total_posts, true);

tu mets
Code: Tout sélectionner
   $_SESSION['num_posts'] = $total_posts;
   $_SESSION['num_topics'] = $total_topics;

et dans index.php, memberlist.php et includes/ucp/ucp_main.php tu remplaces $config['num_posts'] par $_SESSION['num_posts'] et $config['num_topics'] par $_SESSION['num_topics']
Avatar de l’utilisateur
spitfire pat
MOD Contest Winner
MOD Contest Winner
 
Messages: 15310
Inscription: 18 Sep 2004 à 15:43
Localisation: bourgogne

Re: Nombre total de messages

Messagepar Jesuisbonpourlhpbb » 24 Oct 2008 à 01:23

J'apprécie vraiment ton investissement spitfire pat :wink:

Pour ce qui concerne les 2 pages et les templates relatifs, je ne les trouvais pas mais après ton message je suis allé à la pêche et je pense avoir mis la main sur les deux bouts de code concernés :

dans ucp_main_front.html

Code: Tout sélectionner
<td align="{S_CONTENT_FLOW_END}" valign="top" nowrap="nowrap"><b class="genmed">{L_TOTAL_POSTS}: </b></td>
<td><!-- IF POSTS_PCT --><b class="gen">{POSTS}</b><br /><span class="genmed">[{POSTS_PCT} / {POSTS_DAY}]<br /><a href="{U_SEARCH_SELF}">{L_SEARCH_YOUR_POSTS}</a></span><!-- ELSE --><b class="gen">{POSTS}<b><!-- ENDIF --></td>


dans memberlist_view.html

Code: Tout sélectionner
<td class="gen" align="{S_CONTENT_FLOW_END}" valign="top" nowrap="nowrap">{L_TOTAL_POSTS}: </td>
<td><b class="gen">{POSTS}</b><span class="genmed"><!-- IF POSTS_PCT --><br />[{POSTS_PCT} / {POSTS_DAY}]<!-- ENDIF --><br /><a href="{U_SEARCH_USER}">{L_SEARCH_USER_POSTS}</a></span></td>


J'imagine que dans l'option "virage" il suffirait de supprimer dans les deux cas "{POSTS_PCT} /" pour ne plus se poser de question.

Pour la modification que tu me suggères gentiment, j'aimerais savoir si cela se paye d'une manière ou d'une autre (c'est plus lourd ?), ça parait presque trop simple :)
Et que se passe t'il pour l'affichage de l'information si la session démarre directement sur un profil sans passage par l'index sans calcul pour la session (?) de la clé num_posts ?
Avatar de l’utilisateur
Jesuisbonpourlhpbb
Posteur néophyte
Posteur néophyte
 
Messages: 38
Inscription: 15 Juin 2008 à 10:21

Re: Nombre total de messages

Messagepar spitfire pat » 24 Oct 2008 à 07:48

Jesuisbonpourlhpbb a écrit:J'imagine que dans l'option "virage" il suffirait de supprimer dans les deux cas "{POSTS_PCT} /" pour ne plus se poser de question.
oui mais avec une perte de fonctionnalités

Pour la modification que tu me suggères gentiment, j'aimerais savoir si cela se paye d'une manière ou d'une autre (c'est plus lourd ?), ça parait presque trop simple :)
ben non, c'est pas trés lourd, et il n'y a pas de facture à présenter :wink:
Et que se passe t'il pour l'affichage de l'information si la session démarre directement sur un profil sans passage par l'index sans calcul pour la session (?) de la clé num_posts ?
eh bien là, le nombre de posts affichés sera le nombre réel et pas le nombre de posts "visibles", mais là on n'y peut rien, c'est ça où bien mettre dans la fonction page_header un recalcul du nombre de posts et sujets
Avatar de l’utilisateur
spitfire pat
MOD Contest Winner
MOD Contest Winner
 
Messages: 15310
Inscription: 18 Sep 2004 à 15:43
Localisation: bourgogne

Suivante

Retourner vers Recherches de MODs

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 2 invités

Partenaires : phpBBHacks.com • phpBB-Seo.com • EzCom-fr.com • phpBB3 Styles • phpBB podpora • phpBB Portugal    Liens : Net Avenir • PromoBenef • Ticket Gagnant