Fork me on GitHub




« 1 (2) 3 »


Re: News 1.4 et vrais modérateurs
Guest_
Citation :

Que dois-je faire pour avoir un VRAI groupe moderateur, qui ne peut que supprimer ou approuver des news, sans intervenir sur l'administration de ce module ?

Pourquoi ne pas utiliser le bloc de modération ?

Posté le : 30/09/2005 18:17
Partager Twitter Partagez cette article sur GG+
Re: News 1.4 et vrais modérateurs
Admin Frxoops
Inscrit: 16/05/2003 18:10
De Rhone-Alpes
Messages: 4051
Parce que je ne veux pas que mes modérateurs puissent intervenir sur les sujets (catégories)...

Posté le : 30/09/2005 18:21

Open in new window
Partager Twitter Partagez cette article sur GG+
Re: News 1.4 et vrais modérateurs
Guest_
et bien ?
Le bloc ne permet pas d'intervenir sur le sujet.
Tu peux modifier le sujet lorsque tu approuve l'article mais c'est tout.

Posté le : 30/09/2005 18:38
Partager Twitter Partagez cette article sur GG+
Re: News 1.4 et vrais modérateurs
Admin Frxoops
Inscrit: 16/05/2003 18:10
De Rhone-Alpes
Messages: 4051
Merci pour ta réponse Hervé.

Tu as raison et cela fonctionne bien effectivement, mais comme il te faut les droits d'administration du module news pour pouvoir éditer les news en attente, qui te dit qu'un moderateur n'ira pas directement sous http://monsite.fr/modules/news/admin/index.php et modifiera / supprimera des catégories enitères (intentionnelement ou non d'ailleurs) ?

Posté le : 30/09/2005 18:54

Open in new window
Partager Twitter Partagez cette article sur GG+
Re: News 1.4 et vrais modérateurs
Guest_
Rien ne me le confirme effectivement.
Par contre être modérateur est avant tout une question de confiance

Posté le : 30/09/2005 19:29
Partager Twitter Partagez cette article sur GG+
Re: News 1.4 et vrais modérateurs
Admin Frxoops
Inscrit: 16/05/2003 18:10
De Rhone-Alpes
Messages: 4051
Sur un aspect pratique oui, par contre les modérateurs ne sont pas tous mordus d'informatique et ne sont pas à l'abri de fausses manips...

Je souhaite juste qu'ils valident / modifient / suppriment les articles en attente.

Posté le : 30/09/2005 19:34

Open in new window
Partager Twitter Partagez cette article sur GG+
Re: News 1.4 et vrais modérateurs
Guest_
ca mérite réflexion.

Posté le : 30/09/2005 19:45
Partager Twitter Partagez cette article sur GG+
Re: News 1.4 et vrais modérateurs
Xoops accro
Inscrit: 04/02/2003 01:54
De Le Mans
Messages: 12273
Citation :
ca mérite réflexion.
Pour ceux qui auraient pas compris, Alain si j'ai pas ma dose je ne sais pas si je pourrai réfléchir assez longtemps pour aboutir à la solution que tu souhaites :

Open in new window

Posté le : 30/09/2005 21:35
Partager Twitter Partagez cette article sur GG+
Re: News 1.4 et vrais modérateurs
Régulier
Inscrit: 14/06/2004 13:20
Messages: 374
Salut,

en ce qui me concerne hervé, je trouve cette fonctionnalité essentielle. Surtout dans le domaine associatif ...
Allez laisse toi aller

Posté le : 22/10/2005 21:00

Baronxoops d'accord, mais loin d'être le roi
Partager Twitter Partagez cette article sur GG+
Re: News 1.4 et vrais modérateurs
Aspirant
Inscrit: 13/02/2003 11:29
Messages: 45
Pour moi également c'est un véritable probleme.
Le soucis c'est que dans le module droits d'approbation $ droit d'administration.
Je suis alors parti sur la regle :
droit d'approbation = droit d'édition ou d'effacement.
Aprés plusieurs modifs, je suis arrivé à mes fin, chaque groupe peut approuver, editer,effacer les articles des catégories dont ils ont les droits d'approbation sans passer par l'administrtion.
Dans mon cas j'utilise le groupe des articles en attentes en haute de toutes les pages pour informer chaque groupe d'utilisateurs sur les articles qu'il doit approuver.

Voici la liste des modifications effectuées (attention c'est parti)

/modules/news/blocks/news_moderate.php

Ligne 38: Modification pour que le bloc des articles en attente de modération n'affiche que ceux que l'utilisateur
connecté peut approuvé
Remplacement de la igne
$storyarray 
NewsStory :: getAllSubmitted(0truegetmoduleoption('restrictindex'));
Par la ligne
$storyarray 
NewsStory :: getAllSubmitted(0truetrue);


Ligne 59 et 61: Modification des liens pour ne plus les faire ouvrir dans une nouvelle fenêtre (suppression du target=_blank)

Ligne 67: Modification du lien permettant d'effacer un article, afin que seul les groupes ayant les droits d'approbation sur un sujet puisse faire cette opération sans pour autant qu'ils aient les droits d'administration
Remplacement de la ligne 
$story
['action'] = "<a href='" XOOPS_URL "/modules/news/admin/index.php?op=delete&storyid=" $newstory->storyid() . "'>" _MB_DELETE "</a>";
Par la ligne
$story
['action'] = "<a href='" XOOPS_URL "/modules/news/submit.php?op=delete&storyid=" $newstory->storyid() . "'>" _MB_DELETE "</a>";



Fichier /modules/news/submit.php

Ligne 85 à 88 Mise en commentaire, du test d'admin dans le cas où les utilisateurs ne peuvent pas éditer leurs articles

Ligne 149 : Modification, pour autoriser la modification d'un post qu'au groupe d'utilisateur ayant les droits
d'approbation sur le sujet de l'article
Remplacement de la igne
if (!$gperm_handler->checkRight("news_view"$story->topicid(), $groups$module_id)) {
Par la ligne
if (!$gperm_handler->checkRight("news_approve"$story->topicid(), $groups$module_id)) {


Dans le swith ($op) (fin du script) ajout d'une réponse à l'opération delete qui demande la confirmation puis effectue l'effacement.
case 'delete':
        if (!
$approveprivilege) {
            
redirect_header(XOOPS_URL.'/modules/news/index.php'3_NOPERM);
            exit();
            break;
        }
        
$story = new NewsStory($storyid);
        if (!
$gperm_handler->checkRight("news_approve"$story->topicid(), $groups$module_id)) {
            
redirect_header(XOOPS_URL.'/modules/news/index.php'3_NOPERM);
            exit();
            break;
        }
        if (!empty(
$_POST['ok'])) {
            if (empty(
$storyid)) {
                
redirect_header(XOOPS_URL.'/modules/news/index.php',3_AM_EMPTYNODELETE );
                exit();
            }
            
$story->delete();
            
$sfiles = new sFiles();
            
$filesarr=Array();
            
$filesarr=$sfiles->getAllbyStory($storyid);
            if(
count($filesarr)>0) {
               foreach (
$filesarr as $onefile) {
                  
$onefile->delete();
               }
            }
            
xoops_comment_delete($xoopsModule->getVar('mid'),$storyid);
            
xoops_notification_deletebyitem($xoopsModule->getVar('mid'), 'story'$storyid);
            
updateCache();
            
redirect_header(XOOPS_URL.'/modules/news/index.php'1_AM_DBUPDATED );
            exit();
        } else {
            
//xoops_cp_header();
            
echo "<h4>" _AM_CONFIG "</h4>";
            
xoops_confirm(array('op' => 'delete''storyid' => $storyid'ok' => 1), XOOPS_URL.'/modules/news/submit.php'_AM_RUSUREDEL .'<br />' $story->title());
        }
        break;


Le code de confirmation, envoyant des POST et non des GET, on ajoute juste avant le switch($op) le elseif suivant (le précedent ne faisait
que des test sur le $_GET (Uniquement pour répondre à la confirmation de suppression)
elseif ( isset($_POST['op']) && isset($_POST['storyid'])) {
   if (
$approveprivilege && $_POST['op'] == 'delete') {
      
$op 'delete';
      
$storyid intval($_POST['storyid']);
   }
}



Fichier \modules\news\class\class.newsstory.php

Modification de la méthode AdminLink pour adapter le lien delete dans le cas où l'on n'est pas admin
Dans ce cas pour faire un delete on utilise le script submit.php modifié précédement
function adminlink()
   {
      if(
is_admin_group())
         
$ret "&nbsp;[ <a href='".XOOPS_URL."/modules/news/submit.php?op=edit&storyid=".$this->storyid()."'>"._EDIT."</a> | <a href='".XOOPS_URL."/modules/news/admin/index.php?op=delete&storyid=".$this->storyid()."'>"._DELETE."</a> ]&nbsp;";
      else
         
$ret "&nbsp;[ <a href='".XOOPS_URL."/modules/news/submit.php?op=edit&storyid=".$this->storyid()."'>"._EDIT."</a> | <a href='".XOOPS_URL."/modules/news/submit.php?op=delete&storyid=".$this->storyid()."'>"._DELETE."</a> ]&nbsp;";
      return 
$ret;
   }


Pour afficher les lien editer/effacer sur la page d'index listant les articles pour lequel l'utilisateur à le droit d'approbation
Localiser les lignes
       
if ($approveprivilege) {
           
$story['adminlink'] = $this->adminlink();
       }

Et y Insérer
      
if ($approveprivilege==0) {
          global 
$xoopsModule,$xoopsConfig;
          
$gperm_handler =& xoops_gethandler('groupperm');
          if (
is_object($xoopsUser)) {
             
$groups $xoopsUser->getGroups();
          } else {
             
$groups XOOPS_GROUP_ANONYMOUS;
          }
          if (
$gperm_handler->checkRight("news_approve"$this->topicid(), $groups$xoopsModule->getVar('mid'))) {
                
$approveprivilege=1;
          }
       }



Fichier /modules/news/article.php

Pour afficher les liens éditer/effacer sur la page de consultation d'un article
Remplacer les lignes (a partir de la 243)
if(
is_object($xoopsUser)) {
   if( 
$xoopsUser->isAdmin($xoopsModule->getVar('mid')) || (getmoduleoption('authoredit') && $article->uid() == $xoopsUser->getVar('uid')) ) {
       
$isadmin true;
       
$story['adminlink'] = $article->adminlink();
    }
}
Par les lignes
if(is_object($xoopsUser)) {
   if( 
$xoopsUser->isAdmin($xoopsModule->getVar('mid')) || (getmoduleoption('authoredit') && $article->uid() == $xoopsUser->getVar('uid')) ) {
       
$isadmin true;
       
$story['adminlink'] = $article->adminlink();
    }
    else {
       if (
$gperm_handler->checkRight("news_approve"$article->topicid(), $groups$xoopsModule->getVar('mid'))) {
           
$story['adminlink'] = $article->adminlink();
       }
    }
}


Voilà, ouf, c'est tout...
J'espère que cela vous conviendra autant qu'a moi

Posté le : 24/10/2005 00:59
Partager Twitter Partagez cette article sur GG+

 Haut   Précédent   Suivant
« 1 (2) 3 »



Vous pouvez voir les sujets.
Vous ne pouvez pas débuter de nouveaux sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

Propulsé avec XOOPS | Graphisme adapté par Tatane, Grosdunord, Montuy337513

118 Personne(s) en ligne (90 Personne(s) connectée(s) sur Forum) | Utilisateur(s): 0 | Invité(s): 118 | Plus ...