Fork me on GitHub






Problème multimenu lié à un nombre important de groupes
Régulier
Inscrit: 02/05/2005 15:47
Messages: 227
Bonjour à tous,

Lors de la réalisation d'un site avec XOOPS 2.5.0 et Multimenu 2.05, notre équipe a rencontrée un souci que nous avons pu corriger.

Lorsque nous avons plus d’une dizaine de groupe à gérer pour les droits au niveau des menus, les droits ne sont pas correctement respectés.

En effet, c’est une faille de multi-menu : lors de la recherche des droits pour les groupes dans la requête il y a un LIKE avec %no du groupe% or pour le groupe 2 nous allons aussi récupérer ce qui correspond au groupe 12 ou 22,etc….

Pour remédier à cette faille deux fichiers ont été corrigé avec les tags modif SVN :

Le fichier /www/modules/multimenu/include/function_commons.php
A la ligne 37 remplacer par :
//modif SVN pour pb droit au menu par groupes
        
$tabgroups explode(' ',$data['groups']);
        
$menu_count false;
        foreach(
$tabgroups as $group_id ){
            if (
in_array($group_id,$user_group)){$menu_count true;}    
        }
        if (
$menu_count) { //voir si utilisateur a le droit au menu
        //fin modif SVN pour pb droit au menu par groupes

Le fichier /www/modules/multimenu/blocks/include/item.php

A la ligne 43 remplacer par :
// Is the menu available?
//modif SVn pb droit menu pour group
      /* $menu_result = "SELECT image_dir
               FROM ".$xoopsDB->prefix('multimenu_menu')."
               WHERE status>=1 AND catid=" . $options[2] . " AND ( title='' ".$like." )"; */
        
$menu_result "SELECT image_dir,groups FROM ".$xoopsDB->prefix('multimenu_menu')." WHERE status>=1 AND catid=" $options[2] ;
        
$menu_list  $xoopsDB->queryF$menu_result );
        
        
$menu_count $xoopsDB->getRowsNum$menu_list );
        if( !
$menu_count ) { Return False; }
        
$myrow         $xoopsDB->fetchArray$menu_list );
        
$tabgroups explode(' ',$myrow['groups']);
        
//print_r($tabgroups);
        
$menu_count false;
        foreach(
$tabgroups as $group_id ){
            if (
in_array($group_id,$user_group)){$menu_count true;}    
        }
        if( !
$menu_count ) { Return False; }
//fin modif SVn pb droit menu pour group

A la ligne 121, remplacer par :
//modif SVn pb droit menu pour group
     /* $result = "SELECT *
        FROM  ".$xoopsDB->prefix("multimenu_link")."
        WHERE catid=".$options[2]." AND status>0 AND ( title='' ".$like." ) " . $where ."
                ORDER BY " . $options[6];
                ; */
        
$result "SELECT * FROM  ".$xoopsDB->prefix("multimenu_link")." WHERE catid=".$options[2]." AND status>0 " $where ." ORDER BY " $options[6];
                ;
        
$link_list $xoopsDB->queryF($result$options[3], $rand);


En espérant que cela puisse servir aux créateurs du module.

Posté le : 13/05/2011 10:49

Edité par Kris sur 14/05/2011 09:52:35
Partager Twitter Partagez cette article sur GG+
Re: Problème multimenu lié à un nombre important de groupes
Team FrXoops
Inscrit: 14/05/2004 22:32
Messages: 2554
Bonjour
Merci pour l'info, bien que des sites qui gères pus de 10 groupes ne soient pas légions.
JJDAI

Posté le : 13/05/2011 23:15

Ne pas perdre patience, même si cela semble impossible, c'est déjà de la patience.
Origami
Conseil des Sages
Sur gitHub
Partager Twitter Partagez cette article sur GG+
Re: Problème multimenu lié à un nombre important de groupes
Supporter Xoops
Inscrit: 09/01/2005 13:37
De Breizh
Messages: 16972
Bonjour et merci pour le partage

Posté le : 14/05/2011 09:52

La connaissance s'accroît quand on la partage ...
Partager Twitter Partagez cette article sur GG+

 Haut   Précédent   Suivant



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

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