Fork me on GitHub




(1) 2 »


News 1.68 block moderate
Aspirant
Inscrit: 06/07/2012 10:51
Messages: 30
Bonjour je rencontre un problème avec le block news_moderate.php

Premier beug :

Lorsqu'une news est en attente d'approbation, le block fait planté le site.

J'ai du commenter c'est deux ligne pour que le site remarche !

#$block['picture'] = XOOPS_URL.'/uploads/news/image/'.$story->picture();
#$block['pictureinfo'] = $story->pictureinfo();

Deuxiéme beug : ( le plus important pour moi)

J'ai créer des groupes avec des utilisateur pouvant approuver les news en attentes d'approbation. mais lorsque un utilisateur disposant des droits d'approbation souhaite editer la news via le block moderate, celui-ci n'a pas les accés nécessaire pour approuver la news :

Désolé, vous n'avez pas les permissions pour accéder à cette zone.

avez vous une idée ?

Posté le : 19/02/2013 10:30
Partager Twitter Partagez cette article sur GG+
Re: News 1.68 block moderate
Admin Frxoops
Inscrit: 04/03/2011 09:10
De Lot
Messages: 2109
Citation :

J'ai créer des groupes avec des utilisateur pouvant approuver les news en attentes d'approbation. mais lorsque un utilisateur disposant des droits d'approbation souhaite editer la news via le block moderate, celui-ci n'a pas les accés nécessaire pour approuver la news :

Désolé, vous n'avez pas les permissions pour accéder à cette zone.

avez vous une idée ?

Est-ce que tu as donné les bons droits a ton groupe d'approbateurs ?
Je m'explique, même si tu donnes les droits d'approuver a un groupe dans News, il faut que ce groupe puisse accéder a la partie "administration", le réglage se fait au niveau de 'administration'->'groupes'

Posté le : 19/02/2013 11:14
Partager Twitter Partagez cette article sur GG+
Re: News 1.68 block moderate
Aspirant
Inscrit: 06/07/2012 10:51
Messages: 30
J'ai fait l'essais de donnée les drois administration du block news au group souhaité, mais du coup le group peut modifier toutes les news ....

Enfin, après d'autres essais, les icônes d'éditions apparaisse ils peuvent essayer mais les modifications sur d'autres articles ou le groupe n'a pas les droits ne sont effectivement pas modifiable !

Par contre le group peut supprimer toutes les news ...


Je suis tomber sur se poste de la version 1.4 qui semble répondre à mes problème

http://www.frxoops.org/modules/newbb/ ... SC&topic_id=8301&forum=12

Quand penssez vous ? le module n'a pas été mis à jour depuis ?

Posté le : 19/02/2013 11:25
Partager Twitter Partagez cette article sur GG+
Re: News 1.68 block moderate
Admin Frxoops
Inscrit: 16/05/2003 18:10
De Rhone-Alpes
Messages: 3130
Citation :
montuy337513 a écrit :
Est-ce que tu as donné les bons droits a ton groupe d'approbateurs ?
Je m'explique, même si tu donnes les droits d'approuver a un groupe dans News, il faut que ce groupe puisse accéder a la partie "administration", le réglage se fait au niveau de 'administration'->'groupes'
Pas d'accord Cédric !
Car si tu donnes ces droits là, effectivement, le groupe n'a plus besoin d'être "modérateurs" puisqu'il sera administrateurs...

Oui, il y a un problème,
le groupe pouvant approuver peut approuver mais c'est tout.
Pas d'édition possible...


Posté le : 19/02/2013 14:24

Open in new window
Partager Twitter Partagez cette article sur GG+
Re: News 1.68 block moderate
Aspirant
Inscrit: 06/07/2012 10:51
Messages: 30
Effectivement ... mais si pas d'édition ? pas d'approbation !

Effectivement je ne vois comment un modérateur peut approuver un article, si celui la n'est pas éditer ...


Posté le : 20/02/2013 08:25
Partager Twitter Partagez cette article sur GG+
Re: News 1.68 block moderate
Aspirant
Inscrit: 06/07/2012 10:51
Messages: 30
Les modification présenté sont repris du post suivant :
http://www.frxoops.org/modules/newbb/ ... t&order=DESC&type=&mode=0

et adapter pour la version 1.68 du module news.

les principales modification ont été de rajouter "news_" devant les fonctions suivantes:

news_updateCache();

news_getmoduleoption('authoredit')

news_is_admin_group


Fichier /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 ligne     $storyarray NewsStory :: getAllSubmitted(0truenews_getmoduleoption('restrictindex')); Par la ligne     $storyarray NewsStory :: getAllSubmitted(0truetrue);


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=edit&amp;storyid=" $newstory->storyid() . "'>" _EDIT"</a> - <a href='" XOOPS_URL "/modules/news/admin/index.php?op=delete&amp;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 134: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']);             }         }


Et a la fin de la page on y ajoute la case delete pour le block moderate :
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;



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 :


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')) || (news_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();
        }
        }
    }


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;           }        }



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')) || (news_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();         }         }     }



Voila ! J'obtient maitenant un vrai service de moderateur !!

Posté le : 20/02/2013 11:13
Partager Twitter Partagez cette article sur GG+
Re: News 1.68 block moderate
Admin Frxoops
Inscrit: 16/05/2003 18:10
De Rhone-Alpes
Messages: 3130
Cedric,
tu pourrais regarder ce code ?

Ainsi, si tout fonctionne et qu'il n'y a pas de faille de sécurité, on pourrait sortir un news 1.68.

Posté le : 22/02/2013 16:11

Open in new window
Partager Twitter Partagez cette article sur GG+
Re: News 1.68 block moderate
Admin Frxoops
Inscrit: 04/03/2011 09:10
De Lot
Messages: 2109
tu veux dire une version 1.69, nous avons une version d'avance sur xoops.org.
A première vue, ça devrait fonctionner, je ferai le test et préparerai un nouveau package "news" dès que j'ai fini d'installer mon nouveau matos.

Posté le : 22/02/2013 16:42
Partager Twitter Partagez cette article sur GG+
Re: News 1.68 block moderate
Admin Frxoops
Inscrit: 16/03/2009 16:40
De Tende (06)
Messages: 2395
Si tu travailles sur le module News 1.68 montuy337513, peux-tu voir aussi pour un soucis d'affichage avec les explorateurs, signalé ici ?

Posté le : 26/02/2013 04:55

Open in new window

Xoopseuse Mai 2012 | Responsable équipe internationale | Recherche avancée en bas de page !
Partager Twitter Partagez cette article sur GG+
Re: News 1.68 block moderate
Admin Frxoops
Inscrit: 16/03/2009 16:40
De Tende (06)
Messages: 2395
Trop tard, il y a déjà une nouvelle version du module News

Posté le : 26/02/2013 13:57

Open in new window

Xoopseuse Mai 2012 | Responsable équipe internationale | Recherche avancée en bas de page !
Partager Twitter Partagez cette article sur GG+

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




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

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