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.
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
[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")
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)
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 );
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
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); } } ?>
ddtddt a écrit:
('TOTAL_IMAGES', $result)
c'est cela qui est bon
Oui c'est ce qu'il y a dans mon script mais ça ne marche pas
ddtddt a écrit:
as mon avis si tu fais un var_dump de $result , cela te permettra de voir quoi modifier ;-)
Argh je nr sais pas ce que c'est un var_dump, je suis en train d'essayer de trouver comment faire mais je ne trouve rien
ddtddt a écrit:
titounet a écrit:
$result = pwg_query($query);
$template->assign('TOTAL_IMAGES',$result);
}
}
?>Bonour,
as mon avis si tu fais un var_dump de $result , cela te permettra de voir quoi modifier ;-)
('TOTAL_IMAGES', $result)
c'est cela qui est bon
ddtddt a écrit:
titounet a écrit:
Code:
$template->assign('TOTAL_IMAGES', '$result');Bonjour
la variable ne doit pas être entre 'quote'
Bonjour ddtddt
Euh, donc si je suis bien je dois essayer
$template->assign(TOTAL_IMAGES, '$result');
ça ne marche pas non plus, de toute façon que ce soit
('TOTAL_IMAGES', '$result')
ou
('TOTAL_IMAGES', $result)
(ce qui était dans mon script)
rien ne marche
titounet a écrit:
$result = pwg_query($query);
$template->assign('TOTAL_IMAGES',$result);
}
}
?>
Bonour,
as mon avis si tu fais un var_dump de $result , cela te permettra de voir quoi modifier ;-)
titounet a écrit:
Code:
$template->assign('TOTAL_IMAGES', '$result');
Bonjour
la variable ne doit pas être entre 'quote'
En fait je n'arrive pas à afficher le résultats de la requête, car si je remplace
$template->assign('TOTAL_IMAGES', '$result');
par
$template->assign('TOTAL_IMAGES', 'test');
Je n'ai plus d'erreur sur la page et j'ai bien le texte "test" qui s'affiche comme variable sur la page prévue.
Donc, voilà où j'en suis pour l'instant :
<?php /* Plugin Name: Total Images pour tpl a-propos */ 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('TOTAL_IMAGES',$result); } } ?>
Avec le message d'erreur à l'endroit où est placée ma variable {$TOTAL_IMAGES} :
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