Annonce

Écrire une réponse

Veuillez écrire votre message et l'envoyer

Cliquez dans la zone sombre de l'image pour envoyer votre message.

Retour

Résumé de la discussion (messages les plus récents en premier)

titounet
2016-06-08 22:34:10

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.

flop25
2016-06-08 22:19:15

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

titounet
2016-06-08 22:15:28

[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 :

Code:

<?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 :

Code:

{$TOTAL_IMAGES}

Le résultat dans la page sur le site en question : http://www.beouetsavic.fr/about (dans la section "Histoire du site")

titounet
2016-06-08 20:39:43

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 :

Code:

Notice: Undefined index: restrictions in /home/titou/www/beouetsavic/plugins/PersonalPlugin/main.inc.php on line 16

quand je réactive la ligne 16 :

Code:

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)

ddtddt
2016-06-08 20:15:09

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 );

ddtddt
2016-06-08 20:10:35

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

titounet
2016-06-08 06:52:45

Si j'essaye avec ça :

Code:

$template->assign(var_dump($result));

j'ai cet affichage en haut de page :

Code:

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 :

Code:

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 :

Code:

<?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);
  }
}

?>
titounet
2016-06-08 06:29:29

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

titounet
2016-06-08 06:28:13

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
2016-06-08 06:25:26

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 ;-)

ddtddt
2016-06-08 06:25:12

('TOTAL_IMAGES', $result)


c'est cela qui est bon

titounet
2016-06-08 06:23:53

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 

Code:

$template->assign(TOTAL_IMAGES, '$result');

ça ne marche pas non plus, de toute façon que ce soit

Code:

('TOTAL_IMAGES', '$result')

ou

Code:

('TOTAL_IMAGES', $result)

(ce qui était dans mon script)
rien ne marche

ddtddt
2016-06-08 06:23:47

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 ;-)

ddtddt
2016-06-08 06:15:08

titounet a écrit:

Code:

$template->assign('TOTAL_IMAGES', '$result');

Bonjour
la variable ne doit pas être entre 'quote'

titounet
2016-06-07 23:19:34

En fait je n'arrive pas à afficher le résultats de la requête, car si je remplace

Code:

$template->assign('TOTAL_IMAGES', '$result');

par

Code:

$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 :

Code:

<?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} :

Code:

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

Pied de page des forums

Propulsé par FluxBB

github twitter newsletter Faire un don Piwigo.org © 2002-2024 · Contact