1. IMPORTANT : Nouvelles mesures de sécurité - 2. Règles pour obtenir de l'aide dans les forums de support - 3. Restrictions des droits pour le groupe "Support suspendu"

Il est obligatoire de respecter les Règles de MyBB.fr : Version abrégée ou Version complète pour obtenir du support sur nos forums.

Les membres ayant un site/forum contrevenant aux règles de MyBB.support seront placés dans le groupe "Support suspendu" et ne bénéficieront plus du support du staff. Nous recommandons aux autres membres d'agir de même. Il ne s'agit pas d'un bannissement, le membre retrouvera son statut "normal" dès que sa situation sera conforme aux règles.

Nouveau : un Wiki en français : plus de détails.
Avant de soumettre votre problème, consultez-le, ainsi que la FAQ, sans oublier le moteur de recherche interne.


Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
Alerte notice pour les sujets, messages, piéces jointes, en attente de modération ?
Mots-clés » alerte, notice, sujets, messages, piéces, jointes, attente, modération
25-08-2016, 20:17,
#1
Alerte notice pour les sujets, messages, piéces jointes, en attente de modération ?

VERSION_MyBB : 1.8.7
Bonjour,

Comment ajouter une alerte similaire aux alertes de membre(s) en attente d'activation, de message(s) privé(s) reçus, etc. comme c'est le cas avec le(s) bandeau(x) notice qui s'affiche sur la page d'index du forum quand c'est le cas.

Il y a juste un nombre entre parenthèses sur la page d'index à côté du nombre total de messages des forums.
Ce serait bien plus évident de voir immédiatement avec le(s) bandeau(x) notice qui s'affiche sur la page d'index du forum et ne pas oublier ou "zapper" un nouveau membre qui aurait poster.

Il y a bien sur le clic sur modération http://www.mobilsam.com/modcp.php qui permet de voir un résumé, puis les détails.
Le lien http://www.mobilsam.com/modcp.php?action=modqueue également.

Mais, ce n'est pas visuellement pratique comme une notice alerte avec le(s) bandeau(x) notice qui s'affiche sur la page d'index du forum.

Je ne sais pas comment faire, et j'ai chercher sans succès, pourtant :

LES TEMPLATE EXISTENT

modcp_awaitingmoderation
Code :
<table border="0" cellspacing="{$theme['borderwidth']}" cellpadding="{$theme['tablespace']}" class="tborder">
<tr>
<td class="thead" align="center" colspan="3"><strong>{$lang->awaiting_moderation}</strong></td>
</tr>
<tr>
<td class="tcat" width="23%"><span class="smalltext"><strong>{$lang->type}</strong></span></td>
<td class="tcat" align="center" width="33%"><span class="smalltext"><strong>{$lang->number_awaiting}</strong></span></td>
<td class="tcat" align="center" width="44%"><span class="smalltext"><strong>{$lang->latest}</strong></span></td>
</tr>
{$awaitingthreads}
{$awaitingposts}
{$awaitingattachments}
</table>
<br />

modcp_awaitingposts
Code :
<tr>
<td class="trow2"><span class="smalltext"><strong>{$lang->posts}</strong></span></td>
<td class="trow2" align="center"><span class="smalltext">{$unapproved_posts}</span></td>
<td class="trow2" align="center"><span class="smalltext">{$latest_post}</span></td>
</tr>

modcp_awaitingthreads
Code :
<tr>
<td class="trow1"><span class="smalltext"><strong>{$lang->threads}</strong></span></td>
<td class="trow1" align="center"><span class="smalltext">{$unapproved_threads}</span></td>
<td class="trow1" align="center"><span class="smalltext">{$latest_thread}</span></td>
</tr>

modcp_awaitingattachments
Code :
<tr>
<td class="{$bgcolor}"><span class="smalltext"><strong>{$lang->attachments}</strong></span></td>
<td class="{$bgcolor}" align="center"><span class="smalltext">{$unapproved_attachments}</span></td>
<td class="{$bgcolor}" align="center"><span class="smalltext">{$latest_attachment}</span></td>
</tr>

Comment faire pour intégrer dans le template "header" ceci, comme s'y trouve les autres ci-dessous :
Code :
                        {$quicksearch}
                        {$welcomeblock}
                    <!-- </div> in header_welcomeblock_member and header_welcomeblock_guest -->
                <!-- </div> in header_welcomeblock_member and header_welcomeblock_guest -->
            </div>
        </div>
        <div id="content">
            <div class="wrapper">
                {$pm_notice}
                {$bannedwarning}
                {$bbclosedwarning}
                {$unreadreports}
                {$pending_joinrequests}
                {$awaitingusers}
                <navigation>
                <br />


J'ai trouver un sujet en Anglais similaire sur MyBB.com, qui est resté sans aucunes réponses depuis des mois, il est la > https://community.mybb.com/thread-171422.html .
Comme mon anglais et plus que sommaire ... quand je post chez eux, c'est avec google translate et c'est plutôt incompréhensible pour eux, ce que je comprends.

Je vous remercie d'avoir pris le temps de lire (un peu long désolé), et, je vous demande de bien vouloir accepter de m'aider.
Toutes mes excuses par avance je n'ai pas ouvert ce sujet dans le bon forum ou section, ou que ce sujet n'ai rien à faire sur MyBB.fr.

Cordialement,
Répondre
26-08-2016, 1:40,
#2
RE: Alerte notice pour les sujets, messages, piéces jointes, en attente de modération ?
Re Bonsoir,

Alors, comme j'ai bien chercher et galérer je vous donne ma solution qui est opérationnelle sur mon forum MyBB Version 1.8.7 .

Je laisse le soins aux excellent codeurs de ce forum MyBB.fr exdiogene, saphir, julesn et d'autres, pour me corriger, me dire s'il ne faut pas le faire, supprimer ce sujet, ou faire un script ou plugin avec ce travail.

J'ai fait de mon mieux ! (si vous pensez plus sécurisé, aidez moi, par avance merci Smile

*************
*  SOLUTION  *
*************

Faire quelques changements dans les fichiers "global.php" et "global.lang.php".

global.lang.php (chemin root/inc/languages/english/) et (chemin root/inc/languages/french/) (pour le french faire la traduction ensuite directement dans le ACP administrations langues, éditer fichier et traduire)
chercher
Code PHP :
$l['pending_joinrequests'] = "Group Leader Notice: You have {1} pending group membership join requests."
remplacer
Code PHP :
$l['pending_joinrequests'] = "Group Leader Notice: You have {1} pending group membership join requests.";
$l['awaiting_moderation_post'] = "Moderator Notice: There is 1 awaiting moderation post.";
$l['awaiting_moderation_posts'] = "Moderator Notice: You have {1} awaiting moderation posts.";
$l['awaiting_moderation_thread'] = "Moderator Notice: There is 1 awaiting moderation thread.";
$l['awaiting_moderation_threads'] = "Moderator Notice: You have {1} awaiting moderation threads.";
$l['awaiting_moderation_attachment'] = "Moderator Notice: There is 1 awaiting moderation attachment.";
$l['awaiting_moderation_attachments'] = "Moderator Notice: You have {1} awaiting moderation attachments."

global.php (chemin root)
chercher
Code PHP :
eval('$unreadreports = "'.$templates->get('global_unreadreports').'";');
 
   }

remplacer
Code PHP :
eval('$unreadreports = "'.$templates->get('global_unreadreports').'";');
 
   }
}

$awaiting_moderation '';
// This user is a moderator, super moderator or administrator
if($mybb->usergroup['cancp'] == || $mybb->user['ismoderator'] && $mybb->usergroup['canmodcp'])
{
 
   // Unapproved threads
 
   $query $db->simple_select("threads""COUNT(tid) AS unapprovedthreads""visible=0 {$flist}");
 
   $unapproved_threads $db->fetch_field($query"unapprovedthreads");

 
   // 0 or more unapproved threads currently exist
 
   if($unapproved_threads 0)
 
   {
 
       if($unapproved_threads == 1)
 
       {
 
           $lang->awaiting_moderation $lang->awaiting_moderation_thread;
 
       }
 
       else
        
{
 
           $lang->awaiting_moderation $lang->sprintf($lang->awaiting_moderation_threads$unapproved_threads);
 
       }
 
       
        eval
('$awaiting_moderation = "'.$templates->get('global_awaiting_moderation_threads').'";');
 
   }
 
   $unreadreports $unreadreports $awaiting_moderation;
 
   $awaiting_moderation '';
 
   
    
// Unapproved posts
 
   $query $db->query("
        SELECT COUNT(pid) AS unapprovedposts
        FROM  "
.TABLE_PREFIX."posts p
        LEFT JOIN "
.TABLE_PREFIX."threads t ON (t.tid=p.tid)
        WHERE p.visible='0' 
{$tflist} AND t.firstpost != p.pid
    "
);
 
   $unapproved_posts $db->fetch_field($query"unapprovedposts");

 
   // 0 or more unapproved posts currently exist
 
   if($unapproved_posts 0)
 
   {
 
       if($unapproved_posts == 1)
 
       {
 
           $lang->awaiting_moderation $lang->awaiting_moderation_post;
 
       }
 
       else
        
{
 
           $lang->awaiting_moderation $lang->sprintf($lang->awaiting_moderation_posts$unapproved_posts);
 
       }
 
       
        eval
('$awaiting_moderation = "'.$templates->get('global_awaiting_moderation_posts').'";');
 
   }
 
   $unreadreports $unreadreports $awaiting_moderation;
 
   $awaiting_moderation '';
 
   
    
    
// Unapproved attachments
 
   $query $db->query("
        SELECT COUNT(aid) AS unapprovedattachments
        FROM  "
.TABLE_PREFIX."attachments a
        LEFT JOIN "
.TABLE_PREFIX."posts p ON (p.pid=a.pid)
        LEFT JOIN "
.TABLE_PREFIX."threads t ON (t.tid=p.tid)
        WHERE a.visible='0' 
{$tflist}
    "
);
 
   $unapproved_attachments $db->fetch_field($query"unapprovedattachments");

 
   // 0 or more unapproved attachments currently exist
 
   if($unapproved_attachments 0)
 
   {
 
       if($unapproved_attachments == 1)
 
       {
 
           $lang->awaiting_moderation $lang->awaiting_moderation_attachment;
 
       }
 
       else
        
{
 
           $lang->awaiting_moderation $lang->sprintf($lang->awaiting_moderation_attachments$unapproved_attachments);
 
       }
 
       
        eval
('$awaiting_moderation = "'.$templates->get('global_awaiting_moderation_attachments').'";');
 
   }
 
   $unreadreports $unreadreports $awaiting_moderation;


Dans le ACP administrations créer de nouveaux templates avec les noms indiqués. (dans  les "Templates globaux" !)

global_awaiting_moderation_attachments
Code :
<div class="red_alert"><a href="modcp.php?action=modqueue&type=attachments">{$lang->awaiting_moderation}</a></div>
<br />

global_awaiting_moderation_posts
Code :
<div class="red_alert"><a href="modcp.php?action=modqueue&type=posts">{$lang->awaiting_moderation}</a></div>
<br />

global_awaiting_moderation_threads
Code :
<div class="red_alert"><a href="modcp.php?action=modqueue&type=threads">{$lang->awaiting_moderation}</a></div>
<br />

EN IMAGE FRANCAIS ET ANGLAIS

[Image: 236271moderateurnoticeattentevalidationfrenchmybb.jpg]

[Image: 630278moderateurnoticeattentevalidationenglishmybb.jpg]

TESTER APPLIQUE ET FONCTIONNEL DANS MyBB 1.8.7
Répondre
26-08-2016, 2:17,
#3
RE: Alerte notice pour les sujets, messages, piéces jointes, en attente de modération
Je n'ai pas vérifié le code, mais il est certain que j'aurais utilisé un plugin avec le hook 'global_intermediate' afin d'insérer les nouveaux templates à la suite de $unreadreports dans le template 'header'.

Par exemple il y aurait ceci dans 'header' :
Code :
<div id="content">
  {$pm_notice}
  {$bannedwarning}
  {$bbclosedwarning}
  {$unreadreports}
  {$awaiting_moderation}
  {$pending_joinrequests}
  <navigation>


Même si cela demande une duplication des conditionnels pour vérifier si le code doit être affiché.

Ceci afin d'éviter que le code soit écrasé par une future mise-à-jour... Wink

Administrateur de MyBBCodes.com
Cool " Ce n'est pas ce que vous savez qui est important, c'est ce que vous faites ou ne faites pas!"
Obtenez plus de 175 plugins pour MyBB ici...
~~ AUCUNE AIDE Par MP, MAIL OU MSN !!!~~
Répondre
26-08-2016, 10:25,
#4
RE: Alerte notice pour les sujets, messages, piéces jointes, en attente de modération
Oui tout à fait d'accord avec toi, ça serai écrasé par une future mise-à-jour sans aucuns doutes ...
Il est meilleur de créer un plugin, ou, que les devs de MyBB.com l'intègrent dans la version MyBB 2.0 ou une mise-à-jour MyBB 1.8.8 ?

Il est vrai qu'il faudrait vérifier le code, mais comme je ne suis qualifié ... je ne sais pas le faire.

J'ai regardé la doc pour tenter de créer ce plugin, je n'en ai jamais fait, juste corrigé certains bugs, quand c'est permis par le créateur du plugins !

J'ai trouver ce dont tu me parle, mais je ne sais pas quoi en faire vraiment ... Wink

Doc > https://docs.mybb.com/1.8/development/plugins/hooks/

Citation :File: global.php
Hook Params Line
global_start 99
global_intermediate 474
global_end 1082

Je sais que ce n'est pas un forum d'apprentissage, mais si toutefois vous pourriez m'aider un peu a comprendre a quoi sert ce hook et comment faire le plugin, je souhaiterai le faire Smile
Répondre
26-08-2016, 12:36, (Modification du message : 26-08-2016, 12:57 par exdiogene. Raison de la modification: Certains oublis dans le code... )
#5
RE: Alerte notice pour les sujets, messages, piéces jointes, en attente de modération
Je suggère d'utiliser le plugin exemple "/inc/plugins/hello.php" pour avoir une vue d'ensemble.

Normalement il faudrait renommer le plugin et toutes les fonctions internes, mais je vais donner la façon la plus simple... Wink

Pour commencer il faudra remplacer :
Code PHP :
$plugins->add_hook("pre_output_page""hello_world");
$plugins->add_hook("postbit""hello_world_postbit"); 

par :
Code PHP :
$plugins->add_hook("global_intermediate""hello_world"); 

supprimer :
Code PHP :
function hello_world_postbit(&$post)
{
$post['message'] = "<strong>Hello world!</strong><br /><br />{$post['message']}";


Remplacer :
Code PHP :
function hello_world($page)
{
$page str_replace("<div id=\"content\">""<div id=\"content\"><p>Hello World!<br />This is a sample MyBB Plugin (which can be disabled!) that displays this message on all pages.</p>"$page);
return 
$page;


par :

Code PHP :
function hello_world(){
 global 
$mybb$db$lang$awaiting_moderation;

$awaiting_moderation '';
// This user is a moderator, super moderator or administrator
if($mybb->usergroup['cancp'] == || $mybb->user['ismoderator'] && $mybb->usergroup['canmodcp']){

 
   // Unapproved threads
 
   $query $db->simple_select("threads""COUNT(tid) AS unapprovedthreads""visible=0 {$flist}");
 
   $unapproved_threads $db->fetch_field($query"unapprovedthreads");

 
   // 0 or more unapproved threads currently exist
 
   if($unapproved_threads 0)
 
   {
 
       if($unapproved_threads == 1)
 
       {
 
           $lang->awaiting_moderation $lang->awaiting_moderation_thread;
 
       }
 
       else
        
{
 
           $lang->awaiting_moderation $lang->sprintf($lang->awaiting_moderation_threads$unapproved_threads);
 
       }
 
       
        eval
('$awaiting_moderation_1 = "'.$templates->get('global_awaiting_moderation_threads').'";');
 
   }
 
   $awaiting_moderation .= $awaiting_moderation_1;
 
   
    
// Unapproved posts
 
   $query $db->query("
        SELECT COUNT(pid) AS unapprovedposts
        FROM  "
.TABLE_PREFIX."posts p
        LEFT JOIN "
.TABLE_PREFIX."threads t ON (t.tid=p.tid)
        WHERE p.visible='0' 
{$tflist} AND t.firstpost != p.pid
    "
);
 
   $unapproved_posts $db->fetch_field($query"unapprovedposts");

 
   // 0 or more unapproved posts currently exist
 
   if($unapproved_posts 0)
 
   {
 
       if($unapproved_posts == 1)
 
       {
 
           $lang->awaiting_moderation $lang->awaiting_moderation_post;
 
       }
 
       else
        
{
 
           $lang->awaiting_moderation $lang->sprintf($lang->awaiting_moderation_posts$unapproved_posts);
 
       }
 
       
        eval
('$awaiting_moderation_2 = "'.$templates->get('global_awaiting_moderation_posts').'";');
 
   }
 
   $awaiting_moderation .= $awaiting_moderation_2;
   
    
    
// Unapproved attachments
 
   $query $db->query("
        SELECT COUNT(aid) AS unapprovedattachments
        FROM  "
.TABLE_PREFIX."attachments a
        LEFT JOIN "
.TABLE_PREFIX."posts p ON (p.pid=a.pid)
        LEFT JOIN "
.TABLE_PREFIX."threads t ON (t.tid=p.tid)
        WHERE a.visible='0' 
{$tflist}
    "
);
 
   $unapproved_attachments $db->fetch_field($query"unapprovedattachments");

 
   // 0 or more unapproved attachments currently exist
 
   if($unapproved_attachments 0)
 
   {
 
       if($unapproved_attachments == 1)
 
       {
 
           $lang->awaiting_moderation $lang->awaiting_moderation_attachment;
 
       }
 
       else
        
{
 
           $lang->awaiting_moderation $lang->sprintf($lang->awaiting_moderation_attachments$unapproved_attachments);
 
       }
 
       
        eval
('$awaiting_moderation_3 = "'.$templates->get('global_awaiting_moderation_attachments').'";');
    
$awaiting_moderation .= $awaiting_moderation_3;
 
   }


Il ne reste qu'à installer le plugin... Smile

P.S. Je n'ai rien vérifier, mais cela devrait bien fonctionner...

Administrateur de MyBBCodes.com
Cool " Ce n'est pas ce que vous savez qui est important, c'est ce que vous faites ou ne faites pas!"
Obtenez plus de 175 plugins pour MyBB ici...
~~ AUCUNE AIDE Par MP, MAIL OU MSN !!!~~
Répondre
26-08-2016, 17:23,
#6
RE: Alerte notice pour les sujets, messages, piéces jointes, en attente de modération ?
J'ai fait ce que tu m'a suggéré.

Je n'ai pas renommé le hello.php , juste appliqué ce que tu m'a écris.

Une fois je hello.php upload sur le ftp (j'ai pris soins de sauvegarder le hello.php original)

ERREUR

Fatal error: Call to a member function get() on a non-object in /home/mobilsa1/domains/mobilsam.com/public_html/inc/plugins/hello.php on line 123

Ligne 123
Code PHP :
       eval('$awaiting_moderation_1 = "'.$templates->get('global_awaiting_moderation_threads').'";'); 

Je n'ai pas renomé les "function" du hello.php et bien sur j'ai remis le global.php original non modifié, vu que tout est dans le plugin crée sur la base du hello.php

Code PHP :
function hello_world(){
 global 
$mybb$db$lang$awaiting_moderation

Dans l'attente, je remet le global.php modifié et le hello.php original
Répondre
26-08-2016, 19:20,
#7
RE: Alerte notice pour les sujets, messages, piéces jointes, en attente de modération ?
La raison est l'oubli d'avoir inséré $templates dans les variables globales :

global $mybb, $db, $lang, $templates, $awaiting_moderation;

Désolé!

Administrateur de MyBBCodes.com
Cool " Ce n'est pas ce que vous savez qui est important, c'est ce que vous faites ou ne faites pas!"
Obtenez plus de 175 plugins pour MyBB ici...
~~ AUCUNE AIDE Par MP, MAIL OU MSN !!!~~
Répondre
26-08-2016, 19:30,
#8
RE: Alerte notice pour les sujets, messages, piéces jointes, en attente de modération ?
C'est moi qui suis désolé, avec la fatigue je viens juste de m'en apercevoir ...

J'ai activé sans soucis le plugin modifié hello.php plus d'erreurs.

Mais la notice ne s'affiche pas :-/ ne ne comprend pas pourquoi ...
Répondre
26-08-2016, 19:36,
#9
RE: Alerte notice pour les sujets, messages, piéces jointes, en attente de modération ?
Est-ce que la variable $awaiting_moderation est installée sous $unreadreports dans le template "header"?

{$unreadreports}
{$awaiting_moderation}

Administrateur de MyBBCodes.com
Cool " Ce n'est pas ce que vous savez qui est important, c'est ce que vous faites ou ne faites pas!"
Obtenez plus de 175 plugins pour MyBB ici...
~~ AUCUNE AIDE Par MP, MAIL OU MSN !!!~~
Répondre
26-08-2016, 19:49,
#10
RE: Alerte notice pour les sujets, messages, piéces jointes, en attente de modération ?
Non et c'était bien ça ... Merci donc ce morceaux de plugin rempli la fonction Smile

Le plugin devrait pouvoir ajouter les lignes de langues dans le global.lang.php , le {$awaiting_moderation} dans le template du header et les templates mises manuellement dans les global templates, plutôt créer ces trois templates dans les template des themes Wink c'est vrai que c'est un plugin qui marche super permet les mise-à-jour sans touchder le global.php, mais tout le reste est à faire à la main, alors que le plugin pourrait le faire à l'activation et installation.

c'est vrai que c'est long à faire un plugin complet, les function sont également à changer, le nom du plugin.

Veut tu que je mette ici le code complet actuel modifié qui fonctionne de la modif avec le hello.php ?
Répondre
26-08-2016, 20:16,
#11
RE: Alerte notice pour les sujets, messages, piéces jointes, en attente de modération ?
Pour charger le fichier de langue il suffit d'ajouter au plugin :

$lang->load("awaiting_moderation", false, true);

Et avoir les textes dans awaiting_moderation.lang.php

Bien sur l'ajout de la variable dans le template 'header' peut être fait dans la phase d'installation du plugin, ainsi que la création des templates. Mais cela dépasse largement le support que nous donnons ici.

Idéalement il faudrait faire un tutoriel pour la création de ce plugin avec toutes les étapes et le nom correct pour le plugin et ses fonctions, dans la section des tutoriels. Wink

Administrateur de MyBBCodes.com
Cool " Ce n'est pas ce que vous savez qui est important, c'est ce que vous faites ou ne faites pas!"
Obtenez plus de 175 plugins pour MyBB ici...
~~ AUCUNE AIDE Par MP, MAIL OU MSN !!!~~
Répondre
26-08-2016, 20:50,
#12
RE: Alerte notice pour les sujets, messages, piéces jointes, en attente de modération ?
Merci beaucoup exdiogene, il est vrai que j'ai largement abusé du support de MyBB.fr qui soit dit en passant il ne faut pas oublier de l'écrire, est excellent, sympathique, dévoué, généreux et présent pour tous.

Bravo et respect !

PS : Je progresse encore un peu avant de me lancer dans le "codage" plugin, parce que mon niveau est encore très très faible par rapport à vos connaissances en devs et code de tous languages ou presque, c'est certain ! ^^
Répondre




Utilisateur(s) parcourant ce sujet : 1 visiteur(s)

Contact | MyBB.support | Retourner en haut | Retourner au contenu | Version bas-débit (Archivé) | Syndication RSS
 Utilitaire de traduction fourni par Regentronique