Pages: 1
Bonjour/Bonsoir,
sur la dernière version de PIWIGO, comment fait on pour créer une page qui affiche, pour chaque utilisateur, les photos qu'il a notées en ordre décroissant par exemple ? on a déjà la page "my favorites", comment pourrait-on coder la page "my noted" ?
MERCI
Hors ligne
Bonjour,
Pour faire cela il te faut faire un plugin en t'inspirant de [extension by P@t] Most Commented
en ajoutant 1/ récupérer ID de l'utilisateur connecté
2 faire la requête pour récupérer les images que cette utilisateur qui les classe directement dans le bonne ordre
3/ l'affichage et le lien
Hors ligne
Merci, j'ai préféré hacker le code en rajoutant une section c'est finalement assez simple dans 2/3 fichiers tu peux rajouter ça au source pour les prochaines versions !!
url du type : /index.php?/my_best_rated
Modifications :
section_init.inc.php, ajouter
else if ($page['section'] == 'my_best_rated') //BREIZHWAVE201915
{
$page['super_order_by'] = true;
$conf['order_by'] = ' ORDER BY rating_score DESC, id DESC';
$query ='
SELECT DISTINCT(id)
FROM '.IMAGES_TABLE.'
INNER JOIN '.IMAGE_CATEGORY_TABLE.' AS ic ON id = ic.image_id
INNER JOIN '.RATE_TABLE.' AS ir ON id = ir.element_id
WHERE rating_score IS NOT NULL
and ir.user_id= ' . $user['id'] . '
'.$forbidden.'
order by ir.rate desc
;';
$page = array_merge(
$page,
array(
'title' => '<a href="'.duplicate_index_url(array('start'=>0)).'">'
.l10n("LES PHOTOS QUE J'AI NOTEES").'</a>',
'items' => query2array($query,null, 'id'),
)
);
}
et dans functions_url.inc.php, ajouter
elseif ('my_best_rated' == @$tokens[$next_token]) //breizehwave20190215
{
$page['section'] = 'my_best_rated';
$next_token++;
}
Hors ligne
Bonjour,
oui et à la prochaine mise à jour automatique tout est perdu ;-)
il est plus 'propre' de faire un plugin et en plus cela te permettrai de contribuer en le rendant dispo pour tout le monde ;-)
Hors ligne
Pages: 1