•  » Plugins
  •  » [RESOLU]Piclens: Affichage des photos d'un ensemble de ss-catégories

#1 2008-06-24 23:11:33

tiico
Membre
Yvelines
2007-05-29
344

[RESOLU]Piclens: Affichage des photos d'un ensemble de ss-catégories

Bonsoir,

Je vous explique mon besoin :
J'ai un ensemble de catégores avec des sous-caégories (un certain nombre). J'ai installé le plugin piclens pour afficher les photos façon piclens sur chacune des sous catégories. Mais j'ai souhaité afficher l'ensemble des photos d'une catégorie (en intégrant les photos de toutes les sous-catégories associées) également avec piclens.
On peut maintenant, avec piclens, ajouter plusieurs flux rss dans une page ("multiple album").
J'ai modifié le plugin piclens mais ca ne fonctionne pas tout a fait, cela m'affiche certaines sous-catégories mais pas toutes!!! je ne sais pas pourquoi.

Voici mes modifications (en bleu: fichier main.inc.php

// Add Piclens CSS & Javascript in HEAD section
function piclens_link()
{
    global $template, $page;

    // Add only if we are in category page
    if(!empty($page['category']['id'])) {



    $piclnk='<link rel="alternate" type="application/rss+xml" title="" id="'.$page['category']['name'].'"'
                . ' href="'.$page['root_path'].PHPWG_PLUGINS_PATH.'piclens/piclens-rss.php?/category/'
                . $page['category']['id'] . '">' . "\n";
   
        $selection = $page['category']['id'];
        $query = 'SELECT id,name FROM ' . CATEGORIES_TABLE
        .' WHERE id_uppercat = '.$selection.';';
        $result = pwg_query($query);
       
        while ($row = mysql_fetch_assoc($result))
        {
        $piclnk=$piclnk.'<link rel="alternate" type="application/rss+xml" title="" id="'.$row['name'].'"'
                . ' href="'.$page['root_path'].PHPWG_PLUGINS_PATH.'piclens/piclens-rss.php?/category/'
                . $row['id'] . '">' . "\n";   
        }

        // We need absolute path
            set_make_full_url();
   
            // Fill templates with piclens files
                $template->assign_block_vars(
                    'head_element',
                array(
                    'CONTENT' => $piclnk
                    . '<script type="text/javascript" src="http://lite.piclens.com/current/piclens.js"></script>'
                    ,
                )
            );

    }
}


Les modifications ne sont peut-etre pas très propres (je ne code plus bcp!!).

Avec cette modification, toutes les sous-catégories sont présentes dans le header (en terme de lien vers le flux rss).
Je ne vois donc pas pourquoi toutes mes sous-catégories ne s'affichent pas...
Si vous pouvez me venir en aide.

D'avance merci.

Dernière modification par tiico (2009-07-15 08:49:46)

Hors ligne

 

#2 2008-06-28 20:49:14

Gotcha
Ex Equipe Piwigo
Pierrelatte (26)
2007-03-14
13331

Re: [RESOLU]Piclens: Affichage des photos d'un ensemble de ss-catégories

Je serais toi, j'écrirai à l'auteur par mail ou MP ^^


Ayez comme premier réflexe de consulter le wiki.
Ensuite, veuillez effectuer une recherche sur le forum avant de poser votre question.

LE FAIRE EST LE REVELATEUR DE L'ETRE

Hors ligne

 

#3 2008-06-30 16:29:07

yserver
Membre
2007-08-31
74

Re: [RESOLU]Piclens: Affichage des photos d'un ensemble de ss-catégories

Le script fonctionne bien, mais il ne fait pas exactement ce que l'on souhaite.

J'ai tester la modification :
  - à première vu aucun changement
  - mais à y regarder de plus près sur un autre poste ou le plugin Piclens pour Firefox est installé, cela fonctionne bien.

Quand je dis bien, je veux dire que le script fait bien ce qu'on lui demande, mais cela ne correspond pas au résultat attendu. Je m'explique plus clairement, si je peux :
  - les rss sont bien générés
  - avec le plugin pour FF, la flèche bleu apparait bien sur la catégorie
  - l'icone piclens sur la catégorie ouvre bien le diaporama de la catégorie
  - l'icone en haut de catégorie n'affiche toujours aucun diapo, puisque qu'aucun rss qui regroupe la totalité des images n'a été générés.

Si c'est pas clair (ce qui est fort probable), je vous conseil de tester en installant le plugin Piclens pour FF ou IE, je pense qu'un exemple vaut mieux qu'un long discours.

En conclusion, c'est déjà un bon début, mais c'est pas exactement ce qu'il faut pour faire un diapo d'une catégorie et de toutes ses sous catégories. Il faut ajouter la récursivité dans pinclen-rss.php.

Dernière modification par yserver (2008-06-30 16:35:31)


PWG 1.7

Ma galerie photos ==> http://sebouvard.free.fr

Hors ligne

 

#4 2008-06-30 16:37:41

flop25
Équipe Piwigo
2006-07-06
6544

Re: [RESOLU]Piclens: Affichage des photos d'un ensemble de ss-catégories

HA ! ce genre de modif m'intéresse grandement !! aidez donc ce petit

Hors ligne

 

#5 2008-06-30 17:48:45

yserver
Membre
2007-08-31
74

Re: [RESOLU]Piclens: Affichage des photos d'un ensemble de ss-catégories

Je pense qu'il serait plus intéressant d'utiliser Multi-Page Support :
Multi-Page Support

Instead of having one huge RSS feed of content, you can page it into as many individual feeds as you'd like. It's quite simple to do.

In your Media RSS feed, just link each feed with <atom:link rel="previous"/"next".../> tags inside the <channel> element, e.g.


  <channel>
    <atom:link rel="previous" href="http://mysite.com/feed1.rss" />
    <atom:link rel="next" href="http://mysite.com/feed2.rss" />


PWG 1.7

Ma galerie photos ==> http://sebouvard.free.fr

Hors ligne

 

#6 2008-06-30 20:56:11

tiico
Membre
Yvelines
2007-05-29
344

Re: [RESOLU]Piclens: Affichage des photos d'un ensemble de ss-catégories

Bonsoir,

merci pour vos réponses. En fait, pour préciser mes essais voici qqes explications :
- j'ai essayé d'ajouter la récursivité en parcourant toutes les sous catégories et en ajoutant ainsi sur la page de la catégorie, tous les flux rss des sous-catégories. Ceci pour exploiter ce que propose piclens : le "Multiple Albums on a Single Page" (cf. http://www.piclens.com/lite/webmasterguide.php#albums)
- cela fonctionne "partiellement" avec le plugin firefox : certaines photos s'affichent mais pas toutes les sous-catégories!!. La flèche bleue apparait bien sur toutes les pages voulues (catégories et sous-catégories)
- cela ne fonctionne pas avec "piclens lite", ce qui est utilisé en cliquant sur l'icone du plugins de phpwebgallery. Ca continue a fonctionner pour une sous-catégorie mais pas pour une catégorie complète (contenant elle même des sous-catégories)

J'ai vérifié lors de l'exécution du script et les informations sont bien présentes dans le fichier html : tous es flux rss sont présents comme indiqué dans la page d'aide de piclens...
Peut-être il existe une restriction en nombre de flux rss à incorporer dans une même page!

Une autre solution serait éventuellement de générer un seul flux rss contenant toutes les images de la catégorie et des sous-catégories mais cela nécessite d'inclure la récursivité dans l'autre fichier php du plugins.

Bref, toujours pas fonctionnel mais je ne desespère pas. encore merci.

Tiico

Hors ligne

 

#7 2008-07-08 23:11:50

tiico
Membre
Yvelines
2007-05-29
344

Re: [RESOLU]Piclens: Affichage des photos d'un ensemble de ss-catégories

Bonsoir,

et bien me revoilà avec une solution qui semble fonctionner. Je vais surement avoir besoin de votre aide pour optimiser le code, notamment le nombre d'appels à la Bdd....
Explications avant de vous livrer le détail. Les modifications permettent :
- de lancer piclens en cliquant sur une photo d'une des sous-catégorie et ainsi visualiser les photos de cette sous-catégorie.
- de lancer piclens sur l'ensemble des photos de la catégorie (incluant toutes les photos des sous-catégories) en cliquant soit sur le bouton du plugins piclens, soit sur l'icone piclens (sous firefox). On visualise ainsi l'ensemble des photos sous piclens.
- de continuer à afficher les photos sous piclens (comme le plugins initial le permettait...)

Maintenant, voici l'ampleur des modifications (à optimiser bien sur) :
fichier main.inc.php : les modifications sont celles de mon premier message.

fichier piclens-rss.php :
.....
// access authorization check
if (isset($page['category']))
{
  check_restrictions($page['category']['id']);
}

$cat = array();
$picturesID = array();

$pictures = array();

$selection = $page['items'];

    $selectionID = $page['category']['id'];
        array_push($cat, $selectionID);
    $query = 'SELECT id FROM ' . CATEGORIES_TABLE
        .' WHERE id_uppercat = '.$selectionID.';';
    $result = pwg_query($query);
    while ($row = mysql_fetch_assoc($result))
        array_push($cat, $row[id]);

    $query1 = 'SELECT image_id FROM ' . IMAGE_CATEGORY_TABLE
        .' WHERE category_id IN ('.implode(',', $cat).')'
        .';';
    $result1 = pwg_query($query1);

    while ($row = mysql_fetch_assoc($result1))
    {
        array_push($picturesID, $row[image_id]);
    }
   
//    usort($pictures, 'rank_compare');

// Select pictures
// if (count($selection) > 0)
// {
    $query = 'SELECT * FROM ' . IMAGES_TABLE
    .' WHERE id IN ('.implode(',', $picturesID).')'
    . $conf['order_by'].';';
    $result = pwg_query($query);
   
    while ($row = mysql_fetch_assoc($result))
    {
        array_push($pictures, $row);
    }
   

    usort($pictures, 'rank_compare');
// }

// It's a rss file
header("Content-Type: application/xml; charset=UTF-8");
echo '<?xml version="1.0" encoding="utf-8" standalone="yes"?>';
....

Voilà, j'arrete pour ce soir.
Merci d'avance pour vore aide.

Tiico

Hors ligne

 

#8 2008-07-09 13:15:31

yserver
Membre
2007-08-31
74

Re: [RESOLU]Piclens: Affichage des photos d'un ensemble de ss-catégories

Bonjour,


Merci pour ton travail, tu nous a bien fait avancé.
Actuellement, je test tout cela et tout ne va pas pour le mieux :

1/ le multi-album
  - il fonctionne bien mais
  - il liste toutes les sous-catégories de la catégorie sans exception
  - il liste donc aussi les catégories qui ne sont pas accessibles à l'utilisateur connecter
  - dans les flux RSS, on voit donc les RSS des catégories qui ne sont pas affichées par PWG en raison des restrictions
  - comme ces catégories ne sont pas affichée par PWG, on ne peut pas y acceder directement par le plugin

==> Avec un tout petit peu de méthode, cette modification permet d'avoir acces au travers du plugin piclens à des catégories et des images donc l'acces est restreint que .

2/ il y a certainement le même problème avec le RSS généré pour prendre en charge les sous-catégorie.


PWG 1.7

Ma galerie photos ==> http://sebouvard.free.fr

Hors ligne

 

#9 2008-07-09 13:23:54

tiico
Membre
Yvelines
2007-05-29
344

Re: [RESOLU]Piclens: Affichage des photos d'un ensemble de ss-catégories

Bonjour,

effectivement, il y a ce problème que je viens également d'identifier...
Ce n'est donc peut etre pas la bonne méthode employée! Il faut encore que je travaille sur ce sujet.

Le plugins initial fonctionnait bien car il prenait en compte que les images actives de la page. Maintenant, j'ai effectué une recherche sur toutes les images des sous-catégories. Il faut surement que je trouve un moyen de vérifier les droits d'accès aux sous-catégories en même temps pour que la liste ne contienne que ces images!! Je vais creuser (si je trouves un peu de temps)
Il y aura donc 2 point à voir :
- ne pas ajouter le lien vers le flux xml dans la page de la catégorie pour une sous-catégorie pour laquelle on n'a pas de droit.
- ne pas ajouter les images des sous-catégories pour lesquelles on n'a pas de droit dans le flux xml généré.
Faut que je vois en fonction du modèle de données, ou obtenir ces informations!


Si vous avez des idées, des améliorations... n'hésitez pas à m'en faire part!

@+
tiico

Hors ligne

 

#10 2008-07-09 23:52:48

tiico
Membre
Yvelines
2007-05-29
344

Re: [RESOLU]Piclens: Affichage des photos d'un ensemble de ss-catégories

Voila qqes ameliorations apportees :
- verification des droits lors de l'ajout de la generation du 'multi-album' ==> ajout des liens uniquement pour les catégories et sous-categories habilitées.
- vérification des droits également lors de la génération du flux RSS. Ceci permet de générer le flux RSS global d'une catégorie (avec ses sous-categories) mais en ne prenant que celles qui sont habilitées.

Reste un problème avec le multi album : lorsqu'il y a plus de 10 sous-catégories, en cliquant sur l'icone piclens sur l'image de la 11è (et +) catégories, il affiche le flux RSS global (de la catégorie) en se positionnant sur la bonne image mais j'aurai souhaité qu'il n'affiche que le flux RSS de la sous categorie. Peut etre encore un pb dans mon codage ou je pense également a ne limite du nombre d'album (en mode multi)... A voir.


Resta a faire :
- optimisation acces base de donnée
- pb multi album (possibilité d'acceder aux sous-categories uniquement et pas à tout en cliquant sur la photo de la sous-categorie)
- Ajout du tri par ordre (date des catégories?)
- verifications diverses
(- administration du plugin pour permettre cette fonctionnalité sur les catégories ou non?, choix du tri?, possibilité de tri aléatoire des photos d'une catégorie==>mode aléatoire de l'affichage de toutes les photos des categories)
-...

@+
Tiico


Voici les modifications.
1. fichier main.inc.php
[...]
// Add Piclens CSS & Javascript in HEAD section
function piclens_link()
{

//tiico : ajout de $user pour la verification des droits sur les categories.

    global $template, $page, $user;

    // Add only if we are in category page
    if(!empty($page['category']['id'])) {


// tiico: $piclnk contient les liens vers les flux xml correspondants aux categories (et sous-categories) de la page.
// tiico: Il y a un pb sur cette partie : l'affichage global fonctionne mais l'affichage de chacune des sous-categories (uniquement)
//      ne fonctionne plus après la 10ème sous-categorie.

    $piclnk='<link rel="alternate" type="application/rss+xml" title="" id="'.$page['category']['id'].'"'
                . ' href="'.$page['root_path'].PHPWG_PLUGINS_PATH.'piclens/piclens-rss.php?/category/'
                . $page['category']['id'] . '">' . "\n";

//tiico : recharche des sous-categories de la categorie selectionnee.   
        $selection = $page['category']['id'];
        $query = 'SELECT id,name FROM ' . CATEGORIES_TABLE
        .' WHERE id_uppercat = '.$selection.';';
        $result = pwg_query($query);
       
        while ($row = mysql_fetch_assoc($result))
        {
//tiico : verification de l'habilitation sur cette sous-categorie (base sur la fonction 'check_restrictions'       
            if (!(in_array($row[id], explode(',', $user['forbidden_categories']))))
                {

                $piclnk=$piclnk.'<link rel="alternate" type="application/rss+xml" title="" id="'.$row['id'].'"'
                    . ' href="'.$page['root_path'].PHPWG_PLUGINS_PATH.'piclens/piclens-rss.php?/category/'
                    . $row['id'] . '">' . "\n";   
                }
        }


        // We need absolute path
            set_make_full_url();

            // Fill templates with piclens files
                $template->assign_block_vars(
                    'head_element',
                array(
                    'CONTENT' => $piclnk
                    . '<script type="text/javascript" src="http://lite.piclens.com/current/piclens.js"></script>'
                    ,
                )
            );

    }
}
[...]

2. fichier piclens-rss.php
[...]
//-------------------------------------------------------------- initialization

// access authorization check
if (isset($page['category']))
{
  check_restrictions($page['category']['id']);
}



$cat = array();
$picturesID = array();

$pictures = array();

$selection = $page['items'];

// tiico: recherche de toutes les photos de la categorie (incluant les photos des sous-categories si necessaire)
    $selectionID = $page['category']['id'];
    array_push($cat, $selectionID);
    $query = 'SELECT id FROM ' . CATEGORIES_TABLE
        .' WHERE id_uppercat = '.$selectionID.';';
    $result = pwg_query($query);
    while ($row = mysql_fetch_assoc($result))
    {
//tiico : verification des droits sur la sous-categorie
        if (!(in_array($row[id], explode(',', $user['forbidden_categories']))))
            array_push($cat, $row[id]);
    }
    $query1 = 'SELECT image_id FROM ' . IMAGE_CATEGORY_TABLE
        .' WHERE category_id IN ('.implode(',', $cat).')'
        .';';
    $result1 = pwg_query($query1);

    while ($row = mysql_fetch_assoc($result1))
    {
        array_push($picturesID, $row[image_id]);
    }
   
// tiico



// Select pictures
// if (count($selection) > 0)
// {


    $query = 'SELECT * FROM ' . IMAGES_TABLE
    .' WHERE id IN ('.implode(',', $picturesID).')'
    . $conf['order_by'].';';
    $result = pwg_query($query);
   
    while ($row = mysql_fetch_assoc($result))
    {
        array_push($pictures, $row);
    }
   

    usort($pictures, 'rank_compare');

// }


// It's a rss file
header("Content-Type: application/xml; charset=UTF-8");
echo '<?xml version="1.0" encoding="utf-8" standalone="yes"?>';

[...]

Dernière modification par tiico (2008-07-09 23:56:02)

Hors ligne

 

#11 2008-08-22 19:01:01

flop25
Équipe Piwigo
2006-07-06
6544

Re: [RESOLU]Piclens: Affichage des photos d'un ensemble de ss-catégories

petit up pour savoir ce qu'il en est ?

Hors ligne

 

#12 2008-08-31 22:47:23

tiico
Membre
Yvelines
2007-05-29
344

Re: [RESOLU]Piclens: Affichage des photos d'un ensemble de ss-catégories

flop25 a écrit:

petit up pour savoir ce qu'il en est ?

Salut,

pour info, rien de plus par rapport au précédent post. (Vacances obligent)
Pour l'instant, le plugin modifié fonctionne comme souhaité : piclens activé sur une sous-catégorie mais également sur toutes les sous catégories d'une catégorie. Cela fonctionne également avec les droits accordés aux catégories/sous catégories. Il est également possible de lancer piclens (via icone sur la vignette) pour afficher le diaporama sur la sous-catégorie en cours.
Par contre, pas le temps encore de faire les choses suivantes :
- optimisation code
- possibilité de choix d'ordre d'affichage
- page admin
...

Il faut également que je contacte le créateur du plugin pour savoir comment faire pour faire une nouvelle version (si possible). Sur ce point, je ne sais pas comment ca marche et ce qu'il faut faire...

Des que j'ai un peu de temps, je m'y mets et je vois ce que je peux faire (je n'ai pas encore vu comment marchent les pages admin)

@+
Tiico

Hors ligne

 

#13 2008-08-31 22:56:35

VDigital
Former Piwigo Team
Montpellier (FR)
2005-05-04
15127

Re: [RESOLU]Piclens: Affichage des photos d'un ensemble de ss-catégories

Si tu pouvais intégrer le support de permalinks (Nom de catégorie au lieu de numéro).
8-)


Vincent -« Plus vidéaste averti que photographe amateur... »
La galerie - Le blog   

Piwigo est une application libre de gestion de photos en ligne.

Hors ligne

 

#14 2008-08-31 23:00:48

tiico
Membre
Yvelines
2007-05-29
344

Re: [RESOLU]Piclens: Affichage des photos d'un ensemble de ss-catégories

Et bien je regarderai ce que je peux faire (si j'ai du temps). Faut déjà que je me documente sur les permalinks je n'ai jamais utilisé cela.
Je te tiens au courant

Hors ligne

 

#15 2008-09-01 10:33:42

flop25
Équipe Piwigo
2006-07-06
6544

Re: [RESOLU]Piclens: Affichage des photos d'un ensemble de ss-catégories

tiico a écrit:

Pour l'instant, le plugin modifié fonctionne comme souhaité : piclens activé sur une sous-catégorie mais également sur toutes les sous catégories d'une catégorie.

Et non pas exactement ! je l'ai testé et il semble qu'il ne gère que les sous-catégories "à un rang"
regarde mon site : http://flop25.free.fr/gallerie/index.php?
[légende : entre crochet si oui ou non la cat contient des images à sa racine]
* j'ai une catégorie de ce type :( http://flop25.free.fr/gallerie/index.php?/category/1291 => activer le contenu adulte)

+ cat1 [false]
|_cat 1.1 [true]
|_cat 1.2 [true]
|_cat 1.3 [true]
[...]
|_cat 1.20 [true]
[...]

tu as dit que "lorsqu'il y a plus de 10 sous-catégories, en cliquant sur l'icone piclens sur l'image de la 11è (et +) catégories, il affiche le flux RSS global"
Ici avec bien plus de 10 cat il affiche correctement toutes les images des sous cat si on a cliqué sur l'icone ou sur une image représentative

* D'un autre coté j'ai ceci :( http://flop25.free.fr/gallerie/index.php?/category/594 => activer le contenu adulte)

+cat1
|_+cat 1.1 [false]
   |_+cat 1.1.1 [false]
      |_+cat 1.1.1.1 [true]
      |_+cat 1.1.1.2 [true]
      |_+cat 1.1.1.3 [true]
       ...
   |_+cat 1.1.2 [false]
      |_+cat 1.1.2.1 [true]
      |_+cat 1.1.2.2 [true]
      |_+cat 1.1.2.3 [true]
       ...
   ...
|_+cat 1.2 [false]
   |_+cat 1.2.1 [false]
   idem

Si je me place sur cat 1.1 aucun xml généré ; si je suis sur 1.1.x là ça marche : Donc le script ne génère qu'à un niveau de hiérarchie
Preuve de ce que j'avance : http://flop25.free.fr/gallerie/index.php?/category/503 où seules les images des dossiers aquarelles comic manga_sexy sont prises en compte

Or  la catégorie pour homme ne contient des images au minimum qu'à 2 niveau de hiérarchies donc ne devrait pas générer de xml selon ce que je viens de dire, mais il en génère un !!! Il prend en compte des images de plusieurs sous sous cat (plus précisément : http://flop25.free.fr/gallerie/index.ph … ory/charme la cat /sexy/ avec tout son contenu [+ de 2000 images !!] est prise en compte ; pourquoi celle là uniquement et pas /gif par exemple, je ne sais pas !?! )


conclusion : il faudrait générer un vrai script de récursivité ( il suffit d'utiliser celui natif de pwg) pour que le plugin fasse vraiment son boulot, parce que pour l'instant il fait du bizarre. Peut-être que p@t pourrait se pencher dessus

Dernière modification par flop25 (2008-09-01 10:35:32)

Hors ligne

 
  •  » Plugins
  •  » [RESOLU]Piclens: Affichage des photos d'un ensemble de ss-catégories

Pied de page des forums

Propulsé par FluxBB

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