OK, moi je n'ai que des virtuelles, donc je ne vais pas essayer de trop trifouiller ça... vu que je ne maitrise pas les modifs, je vais m'en tenir au comportement de base ;)
Zaphod a écrit:
Avant de tester la modif, une petite question : cet héritage ne se fait bien que sur les nouvelles catégories ?
non sur toutes les sous catégories
mais moi n'ayant que des catégories réelles je ne sais pas si ça marche pas les virtuelles
sinon ça m'arrangerait que d'autres te répondes parce que je suis très pris
Je remonte ce topic...
Je ne suis pas bien sur de l'endroit où rajouter ce code...
J'ai essayé plusieurs endroits, mais jamais mes nouvelles catégories virtuelles n'héritent des droits.
Avant de tester la modif, une petite question : cet héritage ne se fait bien que sur les nouvelles catégories ?
Si dans une catégorie, j'ai une sous-catégorie avec des droits plus restrictif, ça ne va jamais venir modifier ça ?
ben comme j'ai résolu le problème ^^
d'ailleurs se serait cool qu'un dev corrige ça (bug 352)
dis on est a fond sur les droits hérités ici
;o)
Je suis désolé mais c'est la vérité ! J'ai vu les sujets et ce qu'on faisait dans l'année était plus difficile que ça ! (rien qu'à voir la physique-chimie) Attention moi je parle des S (comme supérieur ^^), les autres j'en sais rien
flop25 a écrit:
franchement : l'année dernière oui il était donné (cpe ..)
Mais cette année, il était à la fois dur, facile, et original !
Un grand merci pour ta remarque de la part des bacheliers 2006 :p
flop25 a écrit:
franchement : l'année dernière oui il était donné (cpe ..)
8-)
franchement : l'année dernière oui il était donné (cpe ..)
Mais cette année, il était à la fois dur, facile, et original !
flop25 a écrit:
hé attend : mention bien à plus de 15 de moyenne tu t'adresses pas à n'importe qui ! héhé :D
Ouais, mais aujourd'hui le bac est donné comparé à celui qu'on a passé à l'époque? mdr!
Je plaisante...
hé attend : mention bien à plus de 15 de moyenne tu t'adresses pas à n'importe qui ! héhé :D
Bien... (Ça aide d'avoir le Bac.)
8-)
Houahou ! ça marche !!! j'ai testé en local !!
j'ai donc mis :
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
$query = '
SELECT id
FROM '.CATEGORIES_TABLE.'
WHERE id IN ('.implode(',', get_subcat_ids(array($page['cat']))).')
AND status = \'private\'
;';
$private_uppercats = array_from_query($query, 'id');
// We must not reinsert already existing lines in group_access table
$granteds = array();
foreach ($private_uppercats as $cat_id)
{
$granteds[$cat_id] = array();
}
$query = '
SELECT group_id, cat_id
FROM '.GROUP_ACCESS_TABLE.'
WHERE cat_id IN ('.implode(',', $private_uppercats).')
AND group_id IN ('.implode(',', $_POST['grant_groups']).')
;';
$result = pwg_query($query);
while ($row = mysql_fetch_array($result))
{
array_push($granteds[$row['cat_id']], $row['group_id']);
}
$inserts = array();
foreach ($private_uppercats as $cat_id)
{
$group_ids = array_diff($_POST['grant_groups'], $granteds[$cat_id]);
foreach ($group_ids as $group_id)
{
array_push($inserts, array('group_id' => $group_id,
'cat_id' => $cat_id));
}
}
mass_inserts(GROUP_ACCESS_TABLE, array('group_id','cat_id'), $inserts);
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
après le code précédent ! génial !! Je rajoute une note dans le bug 352
je reviens dessus !
Dans admin/cat_perm.php
il y a ceci :
else if (isset($_POST['grant_groups_submit'])
and isset($_POST['grant_groups'])
and count($_POST['grant_groups']) > 0)
{
$query = '
SELECT id
FROM '.CATEGORIES_TABLE.'
WHERE id IN ('.implode(',', get_uppercat_ids(array($page['cat']))).')
AND status = \'private\'
;';
$private_uppercats = array_from_query($query, 'id');
// We must not reinsert already existing lines in group_access table
$granteds = array();
foreach ($private_uppercats as $cat_id)
{
$granteds[$cat_id] = array();
}
$query = '
SELECT group_id, cat_id
FROM '.GROUP_ACCESS_TABLE.'
WHERE cat_id IN ('.implode(',', $private_uppercats).')
AND group_id IN ('.implode(',', $_POST['grant_groups']).')
;';
$result = pwg_query($query);
while ($row = mysql_fetch_array($result))
{
array_push($granteds[$row['cat_id']], $row['group_id']);
}
$inserts = array();
foreach ($private_uppercats as $cat_id)
{
$group_ids = array_diff($_POST['grant_groups'], $granteds[$cat_id]);
foreach ($group_ids as $group_id)
{
array_push($inserts, array('group_id' => $group_id,
'cat_id' => $cat_id));
}
}
mass_inserts(GROUP_ACCESS_TABLE, array('group_id','cat_id'), $inserts);
}
elle est censée ajouter des droits par groupe : c'est cela ?
Donc on pourrait faire la même chose mais en remplaçant "get_uppercat_ids" par "get_subcat_ids" : comme ça les droits se transmettent "vers le bas" J'ai juste ? [çà m'a l'air trop simple]