Si j'essaye avec ça :
$template->assign(var_dump($result));
j'ai cet affichage en haut de page :
object(mysqli_result)#125 (5) { ["current_field"]=> int(0) ["field_count"]=> int(1) ["lengths"]=> NULL ["num_rows"]=> int(1) ["type"]=> int(0) }
Je ne sais pas comment interpréter tout ça.
Donc j'en suis toujours au même point : le nombre d'image ne s'affiche toujours pas dans ma variable sur la page et le message d'erreur me pête la page :
Catchable fatal error: Object of class mysqli_result could not be converted to string in /home/titou/www/beouetsavic/_data/templates_c/domkd3^08388098deabcad4a52bbe20e5ea86627c25a42d_0.file.a-propos.tpl.php on line 84
Rappel du code du plugin personnel :
<?php /* Plugin Name: Total Images public for TPL */ add_event_handler('loc_after_page_header', 'Pure_default_after_page_header'); function Pure_default_after_page_header() { global $template, $page, $user; if (isset($page['body_id']) and $page['body_id'] == 'theAboutPage') { $query = ' SELECT COUNT(DISTINCT(image_id)) as total FROM phpwebgallery_image_category'; { $query.= ' WHERE category_id NOT IN ('.$user['forbidden_categories'].')'; } $query.= ' ;'; $result = pwg_query($query); /* $template->assign(var_dump($result)); */ $template->assign('TOTAL_IMAGES',$result); } } ?>
Dernière modification par titounet (2016-06-08 15:07:36)
Hors ligne
Bonsoir
var_dump c'est pour voir le contenu de $result qui doit être un tableau
c'est comme echo pour un bout de texte
Hors ligne
titounet a écrit:
:
Code:
<?php ....... $query = ' SELECT COUNT(DISTINCT(image_id)) as total FROM phpwebgallery_image_category'; { $query.= ' WHERE category_id NOT IN ('.$user['forbidden_categories'].')'; } $query.= ' ;'; $result = pwg_query($query); $template->assign('TOTAL_IMAGES',$result); } } ?>
je dirais un truc du genre
$result = pwg_query($query);
$row = pwg_db_fetch_assoc($result);
$total = $row['total'];
$template->assign('TOTAL_IMAGES',$total );
Hors ligne
ddtddt a écrit:
je dirais un truc du genre
Code:
$result = pwg_query($query); $row = pwg_db_fetch_assoc($result); $total = $row['total']; $template->assign('TOTAL_IMAGES',$total );
Bonsoir ddtddt,
YYYEESSSSSS BRAVO ddtddt !!!! ça marche à 95% !! Merci !!
Maintenant ça m'affiche le nombre total d'image de la galerie, mais, en revanche, ça me retranche pas le nombre de photos non publiques (les images non accessibles à/aux l'utilisateur(s) guest).
j'ai d'ailleurs un message d'erreur :
Notice: Undefined index: restrictions in /home/titou/www/beouetsavic/plugins/PersonalPlugin/main.inc.php on line 16
quand je réactive la ligne 16 :
if (count($user['restrictions']) > 0)
Et le nombre d'image ne bouge pas (ça reste le nombre total d'image de la galerie sans restriction)
Hors ligne
[SOLUTION]
Alors voilà c'est résolu.
Je voudrais adresser mes remerciements sincères à @ddtddt et @flop25 pour leur aide, le temps accordé, leur grande patience, et leur travail puisqu'il m'ont fait 70% du boulot sur ce coup là !
Bonne soirée à vous deux
Pour finir, j'ai donc trouvé la dernière partie de la solution, en changeant la requête pour qu'elle corresponde à ce que je voulais : afficher le nombre total d'images uniques qui sont accessibles à tout le monde dans la galerie (les photos publiques, donc).
Je suis donc plutôt allé taper dans la table (PREFIXE)_images en ne sélectionnant que les images de "level 0", donc du coup la requête est beaucoup plus simple.
Voici le code du plugin personnel :
<?php /* Plugin Name: Total Public Images for TPL */ add_event_handler('loc_after_page_header', 'Pure_default_after_page_header'); function Pure_default_after_page_header() { global $template, $page, $user; if (isset($page['body_id']) and $page['body_id'] == 'theAboutPage') { $query = ' SELECT COUNT(DISTINCT(id)) as total FROM phpwebgallery_images'; $query.= ' WHERE level=0'; $query.= ' ;'; $result = pwg_query($query); $row = pwg_db_fetch_assoc($result); $total = $row['total']; $template->assign('TOTAL_IMAGES',$total); } } ?>
La variable dans le code du template-extension là où je veux que la donnée apparaisse dans le texte est :
{$TOTAL_IMAGES}
Le résultat dans la page sur le site en question : http://www.beouetsavic.fr/about (dans la section "Histoire du site")
Dernière modification par titounet (2016-06-09 09:37:55)
Hors ligne
de rien. Vous avez parfaitement conclu :)
vous avez du apprendre depuis zéro un langage de programmation, ce qui est très difficile mais est enrichissant (se former un esprit logique) et permet de se libérer de pas mal de contraintes
peut être à bientôt bonne soirée
Hors ligne
flop25 a écrit:
de rien. Vous avez parfaitement conclu :)
vous avez du apprendre depuis zéro un langage de programmation, ce qui est très difficile mais est enrichissant (se former un esprit logique) et permet de se libérer de pas mal de contraintes
peut être à bientôt bonne soirée
Merci pour ce retour @flop25 et à bientôt j'espère aussi.
Au passage je rajouterai que Piwigo est une application géniale, et de gros efforts et beaucoup de travail ont été réalisés par les développeurs de la communauté pour simplifier et améliorer son utilisabilité (je suis ergonome de métier, donc, par déformation professionnelle, forcément sensible à cela).
Mais c'est vrai que quelquefois, pour une évolution/demande/modification qui pourrait paraitre "simple" au premier abord (dans le cas présent), il faut parfois encore mettre les mains dans le cambouis et je trouve que c'est difficile avec Smarty pour un novice comme moi.
Pour revenir un peu plus prés du cas qui m'occupait, ça vaut ce que ça vaut mais : je ne sais pas du tout s'il y a d'autres demandes proches de la mienne, mais peut être que des variables existantes (dont certains correspondantes aux stats dans l'admin par exemple) pourraient être mises à disposition dans les différentes zones de champs de texte utilisateur ?
Car finalement des requêtes de données/info comme celle que je souhaitais récupérer dans le cas présent existent déjà ailleurs dans le standard de l'application.
Dernière modification par titounet (2016-06-09 09:28:27)
Hors ligne