Fork me on GitHub




« 1 (2) 3 »


#11 Re: News 1.4 et vrais modérateurs
Posté le : 30/09/2005 18:17
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 ?
#12 Re: News 1.4 et vrais modérateurs
alain01 Posté le : 30/09/2005 18:21
Parce que je ne veux pas que mes modérateurs puissent intervenir sur les sujets (catégories)...
#13 Re: News 1.4 et vrais modérateurs
Posté le : 30/09/2005 18:38
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.
#14 Re: News 1.4 et vrais modérateurs
alain01 Posté le : 30/09/2005 18:54
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) ?
#15 Re: News 1.4 et vrais modérateurs
Posté le : 30/09/2005 19:29
Rien ne me le confirme effectivement.
Par contre être modérateur est avant tout une question de confiance
#16 Re: News 1.4 et vrais modérateurs
alain01 Posté le : 30/09/2005 19:34
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.
#17 Re: News 1.4 et vrais modérateurs
Posté le : 30/09/2005 19:45
ca mérite réflexion.
#18 Re: News 1.4 et vrais modérateurs
Christian Posté le : 30/09/2005 21:35
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
#19 Re: News 1.4 et vrais modérateurs
baronxoops Posté le : 22/10/2005 21:00
Salut,

en ce qui me concerne hervé, je trouve cette fonctionnalité essentielle. Surtout dans le domaine associatif ...
Allez laisse toi aller
#20 Re: News 1.4 et vrais modérateurs
Nono Posté le : 24/10/2005 00:59
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

 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

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