Bonjour,
dans mon site, je souhaite que tous les articles sauf quelques uns disposent d'un bouton "imprimer".
J'ai mis les paramètres généraux des articles icône imprimer -> Afficher, et dans les menus ->paramètres globaux : conséquence, tous les articles bénéficient de l'icône "imprimer".
Ensuite, je vais dans l'éditeur d'un article pour lequel je ne veux pas cette icône, et je paramètre pour cet article icône "imprimer" : masquer. Problème : l'icône reste visible.
Je suis allé voir où cela se passait dans le code : fichier icons.php dans layout/joomla/content. La condition pour afficher ou pas cette icône est if ($displayData['params']->get('show_print_icon')) :. En faisant afficher cette valeur, je me suis aperçu qu'elle était toujours à 1, même dans l'article en question. Pourtant dans la base de données, dans le champ attribs de cet article, il y a bien la valeur "show_print_icon":"0".
Il y a donc discordance entre la base de données et la valeur servant à la condition.
J'ai contourné le problème en utilisant une condition différente dans un override : if (!strstr($displayData['item']->attribs,'show_print_icon":"0')):. Ce n'est pas élégant mais ça fonctionne.
Mais j'aimerais bien savoir pourquoi $displayData['params']->get('show_print_icon') ne prend pas la valeur 0 quand show_print_icon":"0".
Cordialement
dans mon site, je souhaite que tous les articles sauf quelques uns disposent d'un bouton "imprimer".
J'ai mis les paramètres généraux des articles icône imprimer -> Afficher, et dans les menus ->paramètres globaux : conséquence, tous les articles bénéficient de l'icône "imprimer".
Ensuite, je vais dans l'éditeur d'un article pour lequel je ne veux pas cette icône, et je paramètre pour cet article icône "imprimer" : masquer. Problème : l'icône reste visible.
Je suis allé voir où cela se passait dans le code : fichier icons.php dans layout/joomla/content. La condition pour afficher ou pas cette icône est if ($displayData['params']->get('show_print_icon')) :. En faisant afficher cette valeur, je me suis aperçu qu'elle était toujours à 1, même dans l'article en question. Pourtant dans la base de données, dans le champ attribs de cet article, il y a bien la valeur "show_print_icon":"0".
Il y a donc discordance entre la base de données et la valeur servant à la condition.
J'ai contourné le problème en utilisant une condition différente dans un override : if (!strstr($displayData['item']->attribs,'show_print_icon":"0')):. Ce n'est pas élégant mais ça fonctionne.
Mais j'aimerais bien savoir pourquoi $displayData['params']->get('show_print_icon') ne prend pas la valeur 0 quand show_print_icon":"0".
Cordialement
Commentaire