|
|
Ne pas afficher tous les commentaires |
|
Régulier 
Inscrit: 16/10/2005 15:35
|
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
|
|
|
|
|
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($criteria1, true);
$modIds = array();
foreach($perms as $item) {
$modIds[] = $item->getVar('gperm_modid');
}
if(count($modIds) > 0 ) {
$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
|
|
|
|
|
Re: Ne pas afficher tous les commentaires |
|
Xoops accro 
Inscrit: 04/02/2003 01:54
De Le Mans
|
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
|
|
|
|
|
Re: Ne pas afficher tous les commentaires |
|
Régulier 
Inscrit: 16/10/2005 15:35
|
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
|
|
|
|
|
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
|
|
|
|
|
Re: Ne pas afficher tous les commentaires |
|
Régulier 
Inscrit: 16/10/2005 15:35
|
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
|
|
|
|
|
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
|
|
|
|
|
Re: Ne pas afficher tous les commentaires |
|
Régulier 
Inscrit: 16/10/2005 15:35
|
Alors, dans Errors, il y a :
Notice: Constant _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 0, 1
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 = 1 AND gperm_groupid IN (1,2)
SELECT b.* FROM msk_newblocks b, msk_block_module_link m WHERE m.block_id=b.bid AND b.isactive=1 AND b.visible=1 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,10) ORDER 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 s, msk_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_id) ORDER BY created DESC
SELECT COUNT(*) FROM msk_multimenu03 WHERE hide = 1
SELECT id, pid, groups, link, submenu, title, target, imageurl, weight 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 s, msk_topics t WHERE (published > 0 AND published <= 1181708562) AND (expired = 0 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,38) ORDER BY s.published DESC LIMIT 0, 10
SELECT * FROM msk_users WHERE uid=15
SELECT s.*, t.* FROM msk_stories s, msk_topics t WHERE (published > 0 AND published <= 1181708563) AND (expired = 0 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,2) ORDER BY s.published DESC LIMIT 0, 1
SELECT s.*, t.* FROM msk_stories s, msk_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_id, t.topic_replies, t.forum_id, t.topic_title, t.topic_views, t.topic_subject, f.forum_name, f.allow_subject_prefix, p.post_id, p.post_time, p.icon, p.uid, p.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=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 = 1 AND p.approved=1 ORDER BY p.post_time DESC LIMIT 0, 10
SELECT * FROM msk_users WHERE uid IN (15,1,205,6)
SELECT COUNT(*) FROM msk_multimenu02 WHERE hide = 1
SELECT id, pid, groups, link, submenu, title, target, imageurl, weight 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 0, 5
SELECT * FROM msk_modules WHERE hascomments = '1' ORDER BY weight ASC, mid ASC
SELECT COUNT(*) FROM msk_multimenu04 WHERE hide = 1
SELECT id, pid, groups, link, submenu, title, target, imageurl, weight 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, pid, groups, link, submenu, title, target, imageurl, weight 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 0, 10
SELECT * FROM msk_smartsection_categories
SELECT * FROM msk_group_permission WHERE (gperm_modid = '55')
SELECT lid, cid, title, date, hits FROM msk_mydownloads_downloads WHERE status>0 ORDER BY date DESC LIMIT 0, 10
SELECT COUNT(*) FROM msk_online WHERE online_uid=1
UPDATE msk_online SET online_updated=1181708563, online_module = 0 WHERE online_uid = 1
SELECT * FROM msk_online
SELECT * FROM msk_modules WHERE isactive = '1' ORDER BY weight ASC, mid 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 0, 1
SELECT lid, cid, title, date, hits FROM msk_mydownloads_downloads WHERE status>0 ORDER BY hits DESC LIMIT 0, 10
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
|
|
|
|
|
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
|
|
|
|
|
Re: Ne pas afficher tous les commentaires |
|
Régulier 
Inscrit: 16/10/2005 15:35
|
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
|
|
|
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.
|