Fork me on GitHub




(1) 2 »


Ne pas afficher tous les commentaires
Régulier
Inscrit: 16/10/2005 15:35
Messages: 140
Bonjour à vous, et à toute l'équipe de Xoops.

Voilà, je viens encore vous embêter pour un petit soucis.

Je m'expliques.

Sur mon site, j'utilises les modules suivants :

- mydownloads (public)
- news (public)
- smartsection (public)
- xcgal (module privé réservé à un seul groupe)

Afin que l'on ne passe pas à côté des commentaires, j'ai récemment affiché le bloc "commentaires récents" que l'on trouve dans la gestion des blocs "système".

Donc, là, c'est parfait, je vois tous les commentaires ayant étés récemment ajoutés.

MAIS (et oui, il y a toujours et malheureusement un mais).

Le problème, c'est que j'ai affiché ce bloc pour tout le monde (que ce soit utilisateurs anonyme, utilisateurs enregistrés et mes différents groupes).

Et, le problème apparait quand une personne du groupe privé qui à accès à XCgal (module privé qui leur est réservé) laisse un commentaire sur une photo, tout le monde, y compris les utilisateurs anonymes voient ces commentaires, et du coup, il savent qu'il y a une section où ils n'ont pas accès. De plus, s'ils cliquent sur ce commentaire, ils atterrissent sur une page les informant comme quoi ils n'ont pas les autorisations nécessaires pour y accéder.

Donc, grosso merdo, ma question est la suivante.

Est-il possible de n'afficher que les commentaires pour lequels les utilisateurs ont le droit d'accès. Un peu comme pour le forum NewsBB ?

Ou alors, faire en sorte que tous les commentaires s'affichent pour tout le monde SAUF pour le module XCgal pour lequel seul le groupe privé pourraient les voirs.

Je sais pas si j'ai été assez clair, auquel cas, n'hésitez pas à me poser des questions.

D'avance, je vous remercies infiniment pour toute l'aide que vous voudrez bien m'apporter.

Merci d'avance.

Posté le : 11/06/2007 04:06
Partager Twitter Partagez cette article sur GG+
Re: Ne pas afficher tous les commentaires
Guest_
Editer le fichier /xoops/modules/system/blocks/system_blocks.php

Après la ligne 329 :
$criteria->setOrder('DESC');


Insérer :
// Herve *****************************************************
    
global $xoopsUser;
    
$moduleperm_handler =& xoops_gethandler('groupperm');

    
$gperm_groupid is_object($xoopsUser) ? $xoopsUser->getGroups() : XOOPS_GROUP_ANONYMOUS;
    
$criteria1 = new CriteriaCompo(new Criteria('gperm_name''module_read','='));
    if (
is_array($gperm_groupid)) {
        
$criteria2 = new CriteriaCompo();
        foreach (
$gperm_groupid as $gid) {
            
$criteria2->add(new Criteria('gperm_groupid'$gid), 'OR');
        }
        
$criteria1->add($criteria2);
    } else {
        
$criteria1->add(new Criteria('gperm_groupid'intval($gperm_groupid)));
    }
    
$perms $moduleperm_handler->getObjects($criteria1true);
    
$modIds = array();
    foreach(
$perms as $item) {
        
$modIds[] = $item->getVar('gperm_modid');
    }
    if(
count($modIds) > ) {
        
$modIds array_unique($modIds);
        
$criteria->add(new Criteria('com_modid''('.implode(','$modIds).')''IN'));
    }
    
// Fin Hervé ********************************************************


Une telle intégration au noyau serait intéressate !

Posté le : 12/06/2007 07:32
Partager Twitter Partagez cette article sur GG+
Re: Ne pas afficher tous les commentaires
Xoops accro
Inscrit: 04/02/2003 01:54
De Le Mans
Messages: 12273
Merci Hervé, car j'avais cherché un peu pour tenter de répondre mais n'avait pas trouvé la solution.

Posté le : 12/06/2007 09:10
Partager Twitter Partagez cette article sur GG+
Re: Ne pas afficher tous les commentaires
Régulier
Inscrit: 16/10/2005 15:35
Messages: 140
Merci beaucoup Hervé de te pencher sur mon problème.

Malheureusement, depuis que j'ai modifié le fichier /xoops/modules/system/blocks/system_blocks.php, le block ne s'affiche plus du tout .

Même pour moi qui suis admin, rien à faire, le block n'apparait pas. J'ai bien évidemment vérifié avec Blockadmin si j'avais les droits et s'il était bien affiché, mais rien à faire.

J'ai même par la même occasion mis à jour le module "Système" sans changements malheureusement.

Je précises tout de même que je tournes avec la version 2.0.16 (car je ne vous l'avais pas préciser ).

Merci tout de même à Christian d'avoir également cherché à résoudre mon problème .

Alors, du coup, je suis le seul à qui le bloc disparait ou chez d'autres personnes, l'astuce d'Hervé fonctionne ?

Sinon, je suis bien d'accord avec toi Hervé, une intégration de cette fonction dans le noyau de Xoops serait un avantage indéniable .

Encore merci pour votre aide.

Et, si vous avez des idées sur le fait que le bloc disparaisse chez moi, n'hésitez pas à me faire signe.

Merci d'avance

Posté le : 13/06/2007 05:08
Partager Twitter Partagez cette article sur GG+
Re: Ne pas afficher tous les commentaires
Guest_
Peux tu activer le mode debug Php de Xoops et rapporter ici les messages d'erreur ?

Posté le : 13/06/2007 05:44
Partager Twitter Partagez cette article sur GG+
Re: Ne pas afficher tous les commentaires
Régulier
Inscrit: 16/10/2005 15:35
Messages: 140
Ouah, tu es très matinal Hervé

Alors, par contre, excuses moi mon ignorance, mais, quand j'actives le mode débug, dans le pied de page, j'ai tout ça.

All errors (21) queries (66) blocks (17) extra (0) timers (6)

Je dois te donner quoi, juste les blocks ou tout (car il y a pas mal d'erreurs avec MultiMenu et pleins d'autres choses dont j'ignorais totalement que ça fonctionnait mal ).

Posté le : 13/06/2007 06:16
Partager Twitter Partagez cette article sur GG+
Re: Ne pas afficher tous les commentaires
Guest_
ce qu'il y a dans "All errors" et dans Queries, les lignes en rouge (s'il y en a)

Posté le : 13/06/2007 06:17
Partager Twitter Partagez cette article sur GG+
Re: Ne pas afficher tous les commentaires
Régulier
Inscrit: 16/10/2005 15:35
Messages: 140
Alors, dans Errors, il y a :

NoticeConstant _MD_POSTEDON already defined in file /modules/newbb/language/french/main.php line 48
Notice
Only variables should be assigned by reference in file /include/xoopscodes.php line 84
Notice
: Use of undefined constant _MB_AN_TITRE assumed '_MB_AN_TITRE' in file /modules/anni/language/french/blocks.php line 2
Notice
: Use of undefined constant _MB_AN_DESC assumed '_MB_AN_DESC' in file /modules/anni/language/french/blocks.php line 3
Notice
: Use of undefined constant _MB_AN_TODAY assumed '_MB_AN_TODAY' in file /modules/anni/language/french/blocks.php line 4
Notice
: Use of undefined constant _MB_AN_YEARSOLD assumed '_MB_AN_YEARSOLD' in file /modules/anni/language/french/blocks.php line 5
Notice
: Use of undefined constant _MB_AN_NOBIRTHDAY assumed '_MB_AN_NOBIRTHDAY' in file /modules/anni/language/french/blocks.php line 6
Notice
: Use of undefined constant _MB_AN_TITLEPLURAL assumed '_MB_AN_TITLEPLURAL' in file /modules/anni/language/french/blocks.php line 7
Notice
: Use of undefined constant _AN_TITLE assumed '_AN_TITLE' in file /modules/anni/blocks/anni.php line 7
Notice
Only variables should be assigned by reference in file /modules/xmmemberstats/blocks/membership_block.php line 36
Notice
Only variables should be assigned by reference in file /kernel/module.php line 542
Notice
Only variables should be assigned by reference in file /modules/xmmemberstats/blocks/membership_block.php line 53
Notice
Only variables should be assigned by reference in file /modules/xmmemberstats/blocks/membership_block.php line 107


Et dans query, il y a

SELECT FROM msk_config WHERE (conf_modid '0' AND conf_catid '1'ORDER BY conf_order ASC
SELECT sess_data FROM msk_session WHERE sess_id 
'4c66687b79597077ca453e223c46b509'
SELECT FROM msk_users WHERE uid=1
SELECT COUNT
(*) FROM msk_banner
SELECT 
FROM msk_banner LIMIT 01
UPDATE msk_banner SET impmade 
impmade+1 WHERE bid 6
SELECT 
FROM msk_config WHERE (conf_modid '0' AND conf_catid '3'ORDER BY conf_order ASC
SELECT DISTINCT gperm_itemid FROM msk_group_permission WHERE gperm_name 
'block_read' AND gperm_modid AND gperm_groupid IN (1,2)
SELECT b.* FROM msk_newblocks bmsk_block_module_link m WHERE m.block_id=b.bid AND b.isactive=AND b.visible=AND m.module_id IN (0,-1) AND b.bid IN (7,26,25,43,38,44,24,23,22,40,42,3,2,17,35,19,18,5,1,20,15,14,13,11,9,8,6,4,45,46,47,48,49,50,51,52,53,134,135,133,62,61,60,59,58,63,64,65,66,67,68,69,70,71,197,81,78,79,80,82,83,74,75,154,196,109,110,108,111,112,16,73,72,76,77,159,158,157,155,156,165,164,163,162,161,160,12,10ORDER BY b.weight,b.bid
SELECT 
FROM msk_modules WHERE dirname 'news'
SELECT FROM msk_config WHERE (conf_modid '2'ORDER BY conf_order ASC
SELECT 
FROM msk_group_permission WHERE (gperm_name 'news_approve' AND gperm_modid '2' AND (gperm_groupid '1' OR gperm_groupid '2'))
SELECT s.*, t.* FROM msk_stories smsk_topics t WHERE (published '0' AND (topicid '38' OR topicid '27' OR topicid '31' OR topicid '37' OR topicid '36' OR topicid '33' OR topicid '32' OR topicid '26' OR topicid '18' OR topicid '30' OR topicid '29' OR topicid '14' OR topicid '13' OR topicid '12' OR topicid '11' OR topicid '10' OR topicid '9' OR topicid '7' OR topicid '5' OR topicid '34' OR topicid '6' OR topicid '2' OR topicid '35' OR topicid '4' OR topicid '28' OR topicid '23' OR topicid '19' OR topicid '8' OR topicid '3' OR topicid '15' OR topicid '16' OR topicid '39')) AND (s.topicid=t.topic_idORDER BY created DESC
SELECT COUNT
(*) FROM msk_multimenu03 WHERE hide 1
SELECT id
pidgroupslinksubmenutitletargetimageurlweight FROM msk_multimenu03 WHERE hide 1 ORDER BY weight ASC
SELECT 
FROM msk_smiles
SELECT COUNT
(*) FROM msk_priv_msgs WHERE (read_msg '0' AND to_userid '1')
SELECT COUNT(*) FROM msk_priv_msgs WHERE (read_msg '1' AND to_userid '1')
SELECT FROM msk_group_permission WHERE (gperm_name 'news_view' AND gperm_modid '2' AND (gperm_groupid '1' OR gperm_groupid '2'))
SELECT s.*, t.* FROM msk_stories smsk_topics t WHERE (published AND published <= 1181708562) AND (expired OR expired 1181708562) AND (s.topicid=t.topic_id) AND topicid IN (27,2,15,31,16,18,9,36,12,14,11,4,35,6,34,5,29,30,3,8,19,23,28,26,37,10,32,33,13,7,38ORDER BY s.published DESC LIMIT 010
SELECT 
FROM msk_users WHERE uid=15
SELECT s
.*, t.* FROM msk_stories smsk_topics t WHERE (published AND published <= 1181708563) AND (expired OR expired 1181708563) AND (s.topicid=t.topic_id) AND topicid IN (38,27,31,37,36,33,32,26,18,30,29,14,13,12,11,10,9,7,5,34,6,35,4,28,23,19,8,3,16,15,2ORDER BY s.published DESC LIMIT 01
SELECT s
.*, t.* FROM msk_stories smsk_topics t WHERE (storyid=231) AND (s.topicid=t.topic_id)
SELECT FROM msk_modules WHERE dirname 'newbb'
SELECT FROM msk_config WHERE (conf_modid '31'ORDER BY conf_order ASC
SELECT 
FROM msk_bb_forums ORDER BY forum_order
SELECT 
FROM msk_group_permission WHERE (gperm_name 'module_admin' AND gperm_itemid '31' AND gperm_modid '1')
SELECT uid FROM msk_groups_users_link WHERE groupid=1
SELECT DISTINCT t
.topic_idt.topic_repliest.forum_idt.topic_titlet.topic_viewst.topic_subjectf.forum_namef.allow_subject_prefixp.post_idp.post_timep.iconp.uidp.poster_name FROM msk_bb_posts AS p LEFT JOIN msk_bb_topics AS t ON t.topic_last_post_id=p.post_id LEFT JOIN msk_bb_forums AS f ON f.forum_id=t.forum_id WHERE 1=AND t.forum_id IN (1,2,3,4,5,6,7,8,9,10,16,17,18,19,20,21,22,23,24,25) AND t.approved AND p.approved=1 ORDER BY p.post_time DESC LIMIT 010
SELECT 
FROM msk_users WHERE uid IN (15,1,205,6)
SELECT COUNT(*) FROM msk_multimenu02 WHERE hide 1
SELECT id
pidgroupslinksubmenutitletargetimageurlweight FROM msk_multimenu02 WHERE hide 1 ORDER BY weight ASC
SELECT 
FROM msk_group_permission WHERE (gperm_name 'module_read' AND (gperm_groupid '1' OR gperm_groupid '2'))
SELECT FROM msk_xoopscomments WHERE (com_status '2' AND com_modid IN (1)) ORDER BY com_created DESC LIMIT 05
SELECT 
FROM msk_modules WHERE hascomments '1' ORDER BY weight ASCmid ASC
SELECT COUNT
(*) FROM msk_multimenu04 WHERE hide 1
SELECT id
pidgroupslinksubmenutitletargetimageurlweight FROM msk_multimenu04 WHERE hide 1 ORDER BY weight ASC
SELECT 
FROM msk_modules WHERE dirname 'shoutbox'
SELECT FROM msk_config WHERE (conf_modid '62'ORDER BY conf_order ASC
SELECT 
FROM msk_smiles WHERE display=1
SELECT COUNT
(*) FROM msk_multimenu06 WHERE hide 1
SELECT id
pidgroupslinksubmenutitletargetimageurlweight FROM msk_multimenu06 WHERE hide 1 ORDER BY weight ASC
SELECT 
FROM msk_modules WHERE dirname 'smartsection'
SELECT FROM msk_config WHERE (conf_modid '55'ORDER BY conf_order ASC
SELECT 
FROM msk_smartsection_items WHERE ((status '2') AND datesub <= '1181708563'ORDER BY datesub DESC LIMIT 010
SELECT 
FROM msk_smartsection_categories
SELECT 
FROM msk_group_permission WHERE (gperm_modid '55')
SELECT lidcidtitledatehits FROM msk_mydownloads_downloads WHERE status>0 ORDER BY date DESC LIMIT 010
SELECT COUNT
(*) FROM msk_online WHERE online_uid=1
UPDATE msk_online SET online_updated
=1181708563online_module 0 WHERE online_uid 1
SELECT 
FROM msk_online
SELECT 
FROM msk_modules WHERE isactive '1' ORDER BY weight ASCmid ASC
SELECT country2
,country FROM msk_iptoc WHERE IPFROM<=1369263959 AND IPTO>=1369263959
SELECT COUNT
(*) FROM msk_users WHERE level '0'
SELECT COUNT(*) FROM msk_users WHERE user_regdate >= '1181685600'
SELECT COUNT(*) FROM msk_users WHERE user_regdate >= '1181599200'
SELECT FROM msk_users WHERE (level '0'ORDER BY user_regdate DESC LIMIT 01
SELECT lid
cidtitledatehits FROM msk_mydownloads_downloads WHERE status>0 ORDER BY hits DESC LIMIT 010


En revanche, désolé, mais il n'y a pas de lignes en rouge (je supposes que c'est mieux comme ça ).

Encore merci infiniment pour toute l'aide que tu m'apportes

Posté le : 13/06/2007 06:24
Partager Twitter Partagez cette article sur GG+
Re: Ne pas afficher tous les commentaires
Guest_
Les messages d'erreur sont ceux qui sont visibles quand le bloc est activé ?

Posté le : 13/06/2007 06:27
Partager Twitter Partagez cette article sur GG+
Re: Ne pas afficher tous les commentaires
Régulier
Inscrit: 16/10/2005 15:35
Messages: 140
Oui, exactement.

Par contre, comme je l'ai dis précédemment, je ne vois pas du tout le bloc. Donc, je ne sais pas si ça se ressent dans les messages d'erreur

Posté le : 13/06/2007 06:28
Partager Twitter Partagez cette article sur GG+

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



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

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