je parle du premier bug que tu as cité, celui clairement en rapport avec DRP
pour get_tag_ids() je ne sais pas
mistic100 a écrit:
bon ce problème SQL vient de la fonction get_sql_condition_FandF() et de son utilisation dans DynaRecePeriod
Pas convaincu... Comment expliquer le bug, dans ce cas, lorsqu'il n'y a que SA présent et actif sur une galerie ?
on peut corriger dans DRP en mettant
'visible_images' => 'id'
ça fonctionnera
mais je préfèrerais renforcer get_sql_condition_FandF() par exemple en testant
!empty($user['image_access_list']) and !empty($user['image_access_type'])
au passage je comprends pas trop pourquoi on voit ce bug que maintenant... je vois pas de lien avec SmartAlbums
bon ce problème SQL vient de la fonction get_sql_condition_FandF() et de son utilisation dans DynaRecePeriod
le code fautif est
case 'forbidden_images': if ( !empty($user['image_access_list']) or $user['image_access_type']!='NOT IN' ) { $table_prefix=null; if ($field_name=='id') { $table_prefix = ''; } elseif ($field_name=='i.id') { $table_prefix = 'i.'; } if ( isset($table_prefix) ) { $sql_list[]=$table_prefix.'level<='.$user['level']; } else { $sql_list[]=$field_name.' '.$user['image_access_type'] .' ('.$user['image_access_list'].')'; } }
dans le cas ou
$user['image_access_list'] = NULL
$user['image_access_type'] = NULL
$field_name != i.id ou id (ici ic.image_id)
on se retrouve avec une conditions SQL foireuse du type WHERE (ic.image_id ())
mistic100 a écrit:
get_tag_ids() est dans admin/include/functions.php que j'appelle dans meon count_images.php, fin de l'histoire...
mistic100 a écrit:
je reproduis l'erreur d'origine
Donc bug dans Piwigo ?
mistic100 a écrit:
tu as essayé sans aucun autre plugin ? je vois pas trop ce que ça peut changer mais bon
Oui. Sur mes galeries de test (2.4.5 et 2.5b2), il n'y a que SA d'installé et d'activé.
je reproduis l'erreur d'origine
tu as essayé sans aucun autre plugin ? je vois pas trop ce que ça peut changer mais bon
get_tag_ids() est dans admin/include/functions.php que j'appelle dans meon count_images.php, fin de l'histoire...
J'ai modifié le titre du topic car Dynamic Recent Period ne semble pas lié au problème.
Tiens, pour être vraiment certain, j'ai même essayé sur une galerie 2.5b2.
mistic100 a écrit:
et que ça bloque que pour les tags ça me parait encore plus délirant
J'ai moi aussi du mal à cerner le problème. Je viens de tester à nouveau sur une galerie toute neuve sur laquelle j'ai activé uniquement SA et ajouté 5 photos avec des tags récupérés via IPTC.
Si je créé un smart album avec n'importe quel autre filtrage que sur les tags, le bouton de comptage fonctionne. Mais dès que je choisi de filtrer sur les tags, c'est l'erreur
Fatal error: Call to undefined function get_tag_ids() in E:\www\monsite\gallery\plugins\SmartAlbums\include\functions.inc.php on line 454
Ce qui est encore plus bizarre c'est que tu ne puisses pas reproduire le problème...
je vois vraiment pas comment c'est possible
dans les fonctions SA je n'ai pas de global sur des variables autre que $page et $conf
DRP fonctionne sur "init", donc avant le traitement des données par le script php appelé en AJAX (fichier include/count_images)
et que ça bloque que pour les tags ça me parait encore plus délirant
Poursuite des tests en modifiant le type de filtrage : Je remplace le filtrage par tags par un filtrage par date (ajoutée le, avant, après - créée le, avant, après) puis "compter".
Là, pas de message d'erreur et le comptage se passe bien. Il doit donc y avoir une coquille avec le filtrage par tags.
J'ai refais des essais sur une galerie de test avec SA et DRP actifs. Le filtrage du smart album repose sur la présence d'un tag et il fonctionne bien car à la validation j'ai bien le nombre d'images attendu. Mais si je clique sur "compter", je reproduis l'erreur mentionnée dans mon post initial.
La modification massive de la variable $filter en $sa_filter a les mêmes conséquences que précédemment : Mon smart album est HS.
J'ai ensuite essayé en ne conservant que SA d'activé sur ce même smart album. En cliquant sur le bouton "compter", cette fois j'ai ceci :
Fatal error: Call to undefined function get_tag_ids() in E:\www\monsite\gallery\plugins\SmartAlbums\include\functions.inc.php on line 454
Du coup, j'ai un doute sur l'implication de DRP...
J'ai remplacé la variable $filter par $sa_filter comme tu le proposes, dans tous les fichiers du plugin.
Pas concluant : Cà m'a mis le bazar dans mes smart albums. Bien que toujours reconnus comme SA, ces albums n'ont plus la case "Cet album est un SmartAlbum" de cochée. En la recochant, les filtres ne sont plus visibles et pas moyen de les remettre. La validation est sans effet.
Une restauration du plugin n'a rien changé et j'ai dû supprimer mes SA et le plugin pour le réinstaller et reconfigurer mes SA.
Soit la solution du remplacement brutal de la variable $filter n'est pas la bonne, soit le changement de variable génère un autre problème.
Je vais retenter le coup en regardant bien ce qui est remplacé au lieu de partir à l'aveugle ;-)