trop fort P@t ca marche ! ca marche en 1.7 et 1.6.2
par contre, je pinaille un peu, mais ca me fait un espace entre les catégorie de meme niveau qd des sous niveaux existent . C'est pas clair, tu m'etonnes...
disons que j'ai 5 catégorie. cat1,2 etc...
cat1,4,5 ne possede pas de sous niveau
cat2 et cat 3 oui
donc voila le rendu sur le menubar :
cat1 cat2 cat3 cat4 cat5
c'est juste pour l'esthetique... il serait preferable d'avoir
cat1 cat2 cat3 cat4 cat5
tt le monde l'aura compris :-)
Dernière modification par sakkhho (2007-07-06 19:06:24)
Hors ligne
Ok c'est bon, j'ai trouvé la solution...
Au lieu de rajouter le code avant:
$ref_level = $level;
Il faut remplacer
if ($level > $ref_level)
{
$menu.= "\n<ul>";
}
par:
if ($level > $ref_level)
{
$category_info = get_cat_info($category['id']);
if ($level > 5
and strpos($category_info['uppercats'] , $selected_category['uppercats']) !== 0
and !in_array($category['id'] , explode("," , $selected_category['uppercats'])))
continue;
$menu .= "\n<ul>";
}
Et voila le travail!
Dernière modification par P@t (2007-07-06 22:25:03)
Hors ligne
P@t a écrit:
On pourrais faire ca dans un plugin perso si ca te dit: ca fait redéfinir 2 fonctions entiere, juste pour rajouter le petit bout de code....
Pas glop!
Essayez plutôt de trouver les triggers à ajouter pour faire un plugin. S'ils sont conformes, on les rajoutera en 1.7.1!
Hors ligne
Ben il faudrait soit rajouter un trigger dans cette fonction "functions_html.inc.php" à ce niveau:
foreach ($categories as $category) {
$level = substr_count($category['global_rank'], '.') + 1;
if ($level > $ref_level)
{
Trigger
$menu .= "\n<ul>";
}
Ou alors intégrer le bout de code directement avec un $conf['nb_cat_dev'] = xxx qui va bien dans le config_default.inc.php:
foreach ($categories as $category) {
$level = substr_count($category['global_rank'], '.') + 1;
if ($level > $ref_level)
{
$category_info = get_cat_info($category['id']);
if ($level > $conf['nb_cat_dev']
and strpos($category_info['uppercats'] , $selected_category['uppercats']) !== 0
and !in_array($category['id'] , explode("," , $selected_category['uppercats'])))
continue;
$menu .= "\n<ul>";
}
Sans oublier de déclarer $conf dans la fonction ;-)
Dernière modification par P@t (2007-07-07 11:30:42)
Hors ligne
Justement, je te laisse chercher les bonnes combinaisons possibles. C'est un bon exercice!
Je rappelles que nous avons 2 sortes de triggers:
o les triggers pour signaler une action en cours trigger_action
o les triggers pour retourner/modifier une valeur trigger_event
Hors ligne
J'ai un peu de mal encore avec ces 2 betes la, mais si j'ai bien compris, je pense qu'un trigger_action suffit...
Mais pour ce cas, il serait plutot pas mal d'intégrer le code directement dans la fonction avec un $conf, plutot que de faire appel à un plugin, non?
Hors ligne
P@t a écrit:
Mais pour ce cas, il serait plutot pas mal d'intégrer le code directement dans la fonction avec un $conf, plutot que de faire appel à un plugin, non?
Ben, je sais pas, c'est pas toi qui a parlé de plugin?
Tu voudrais mettre quoi dans $conf?
Hors ligne
rub a écrit:
Ben, je sais pas, c'est pas toi qui a parlé de plugin?
Tu voudrais mettre quoi dans $conf?
Non non, je ne suis pas contre l'idée du plugin!!
Mais disons qu'un trigger à cet endroit ne servirait pas à grand chose....
Et je pensais que mettre en standard dans le fichier de conf le nombre maxi de catégories à développer était interessant.
C'est à dire integrer le bout de code dans la prochaine version, et rajouter dans le config_default.inc.php:
$conf['nb_cat_dev'] = 99; (par exemple)
Ainsi, par défault, le nombre de catégories à développer sera de 99 (c'est à dire toutes!).
Et on pourra changer ca dans le config_local.inc.php.
A vous de voir! ;-)
PS: le trigger me va aussi! De toute facon, je n'ai pas perso l'utilité de ca. C'était juste histoire de progresser en php!
Dernière modification par P@t (2007-07-08 04:46:27)
Hors ligne
P@t a écrit:
Ainsi, par défault, le nombre de catégories à développer sera de 99 (c'est à dire toutes!).
Aaaah, quand je lis cas, je fais des bonds et si j'ai 133 niveaux?
Il faut mieux un 0 ou -1 pour dire de prendre tout.
En fait, on peut très bien avoir un conf et un trigger en même temps.
Je m'explique:
1 $conf sert pour fixer une valeur par défaut applicable à toutes la catégories.
2 si on met dans la table user_info, chaque utilisateur fait ce qu'il veut
3 le trigger permet de changer le comportement à sa guise (même valeur pour tous, ou suivent le template, etc.)
Perso, je verrais plus:
o soit 1 + 3
o soit 2 + 3
Selon que l'on souhaite que ca soit une option générale ou à utilisateur.
Pour moi, ca m'est égal avec une petite préférence pour (1+3)
Hors ligne
rub a écrit:
Aaaah, quand je lis cas, je fais des bonds et si j'ai 133 niveaux?
Il faut mieux un 0 ou -1 pour dire de prendre tout.
Si t'as 133 niveaux, t'es vraiment le roi des boulets! ;-)
Et pourquoi pas des miniatures de 202 x 152 ;-)))
(cf ici)
rub a écrit:
En fait, on peut très bien avoir un conf et un trigger en même temps.
Je m'explique:
1 $conf sert pour fixer une valeur par défaut applicable à toutes la catégories.
2 si on met dans la table user_info, chaque utilisateur fait ce qu'il veut
3 le trigger permet de changer le comportement à sa guise (même valeur pour tous, ou suivent le template, etc.)
Perso, je verrais plus:
o soit 1 + 3
o soit 2 + 3
Selon que l'on souhaite que ca soit une option générale ou à utilisateur.
Pour moi, ca m'est égal avec une petite préférence pour (1+3)
Vendu!
Hors ligne
P@t a écrit:
Et pourquoi pas des miniatures de 202 x 152 ;-)))
(cf ici)
Et pourquoi, c'est interdit?
J'ai bien des miniatures de 260x475 ...
C'est sur Le Nassier (07: Ardèche, Juillet, Grandes Vacances, Grand Soleil, ... grandes miniatures).
8-)
Hors ligne
P@t a écrit:
rub a écrit:
Aaaah, quand je lis cas, je fais des bonds et si j'ai 133 niveaux?
Il faut mieux un 0 ou -1 pour dire de prendre tout.Si t'as 133 niveaux, t'es vraiment le roi des boulets! ;-)
Et pourquoi pas des miniatures de 202 x 152 ;-)))
(cf ici)
You 're talking to me ? :-=))
Hors ligne