Annonce

#1 2005-11-06 20:51:38

plg
Équipe Piwigo
Nantes, France, Europe
2002-04-05
12639

services web

L'utilisation de Flickr et le MOD "external random" incitent à implémenter certaines fonctionnalités sous forme de service web. Concrètement, il s'agit de permettre la communication entre PhpWebGallery et d'autres applications.

Prenons l'exemple du MOD "external random", qui propose d'afficher sur un autre site une miniature issue de PhpWebGallery. La version actuelle est principalement limitée par l'obligation d'accès à la base de données de PhpWebGallery par le site distant. Le service web équivalent se déroulerait en 3 étapes :

1. le site distant envoie une requête HTTP signifiant "envoies moi les informations sur 3 photos tirées aléatoirement". Concrètement, dans du code PHP, ça donnerait :

Code:

fopen('http://domain.tld/pwg/service.php?type=random&number=3');

2. PhpWebgallery reçoit cette requête HTTP et renvoie des données au format XML:

Code:

<items>
 <item src="http://domain.tld/pwg/galleries/cat1/cat1.1/picture.jpg"
       width="640"
       height="480"
       tnsrc="http://domain.tld/pwg/galleries/cat1/cat1.1/thumbnail/TN-picture.jpg"
       tnwidth="100"
       tnheight="75"
       url="http://domain.tld/pwg/picture.php?cat=2&image_id=442"
       author="pierrick"
       description="vue d'ensemble de l'appartement"
       date_creation="2005-11-06" />
 <item src="http://domain.tld/pwg/galleries/cat3/cat3.5/test.jpg"
       width="480"
       height="640"
       tnsrc="http://domain.tld/pwg/galleries/cat3/cat3.5/thumbnail/TN-test.jpg"
       tnwidth="75"
       tnheight="100"
       url="http://domain.tld/pwg/picture.php?cat=45&image_id=1589"
       author="bertrand"
       description="plage de sable fin"
       date_creation="2002-08-01" />
 <item src="http://domain.tld/pwg/galleries/cat4/cat4.1/cat4.1.5/voiture.jpg"
       width="640"
       height="480"
       tnsrc="http://domain.tld/pwg/galleries/cat4/cat4.1/cat4.1.5/thumbnail/TN-voiture.jpg"
       tnwidth="100"
       tnheight="75"
       url="http://domain.tld/pwg/picture.php?cat=345&image_id=8944"
       author="larry"
       description="pyramide de Kheops"
       date_creation="2005-10-13" />
</items>

3. le site distant traite les données XML pour en extraire celles qui l'intéresse. Par exemples, certains site afficheront la miniature pointant vers PhpWebGallery, d'autres afficheront la photo taille normale avec une légende.


Ce type d'implémentation serait facile à étendre à d'autres demandes comme "liste des derniers ajouts" ou "photos les plus visitées".

Ce type de fonctionnalité serait prisée des blogeurs, il n'y a qu'à voir le succès rencontré par des fonctionnalités du même type chez Flickr ou Blogmarks.


Les historiens ont établi que Pierrick était le premier utilisateur connu de Piwigo.

Hors ligne

#2 2005-11-07 06:41:19

flipflip
Membre
Lyon
2005-03-19
2316

Re: services web

Cela peut être interressant aussi dans le cadre de partenaria.


Le cerveau à des capacités tellement étonnantes qu’aujourd’hui pratiquement tout le monde en à un

Mon site : http://www.blogoflip.fr

Hors ligne

#3 2005-11-07 07:09:19

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

Re: services web

Oui, je ne suis pas très sûr de l'intérêt mais j'ai tort sans doute.
C'est bon pour le Rank, si ça marche.

Il faut prévoir donner un exemple de récupération xml près à l'emploi, c'est surtout ça je pense, non?
Sinon seuls les habitués du XML seront succeptibles d'être interressés.

Enfin c'est pas trop compliqué à faire, donc il faut offrir ce service.
Je peux le faire et ça répondra à la requête restante sur External random.
J'ai d'autres priorités mais si vous n'êtes pas trop pressés, je m'en chargerai.

J'y intégrerai une table de tickets (droit optionnel d'usage des photos de la gallerie) pour gérer les partenariats avec des périodes de validité, qu'en pensez-vous?


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

#4 2005-11-09 08:19:39

flipflip
Membre
Lyon
2005-03-19
2316

Re: services web

Je suis pas particulierement préssé vue que la version 1.5 vient de sortir, je vais avoir de quoi m'occuper pour migrer. Pour donner un autre exemple d'utilisation pour ce module, par exemple sur mon site j'ai 150 membres, certains m'envoie des photos et je souhaiterais qu'ils puissent les afficher sur leurs site mais que les leurs ce qui impose, dans l'état actuel, de faire des liens direct vers les vignettes et c'est pas propre. Alors que si ce module permet de gérer les droits autres que visiteurs/membres cela pourrait être un service interressant pour les membres. Et pour revenir sur ma premiere idée on pourraient envisager un service d'échange de stockage de photos comme c'est à la mode ou alors en détournant un peu l'utilisation, l'échange de banniere publicitaire (même si je suis totalement contre). Bien sur il faut que cela reste simple, genre un menu lorsqu'un membre est logé sur le site où il récupère le code qui va bien à mettre sur sont site. Ce week end j'ai regardé ton script VDigital (external random), malheureusement je n'ai eu le temps d'étudier la gestion des droits PWG dans la base :( mais il me semble qu'il manque pas grand chose.


Le cerveau à des capacités tellement étonnantes qu’aujourd’hui pratiquement tout le monde en à un

Mon site : http://www.blogoflip.fr

Hors ligne

#5 2005-11-15 00:17:37

plg
Équipe Piwigo
Nantes, France, Europe
2002-04-05
12639

Re: services web

VDigital a écrit:

Oui, je ne suis pas très sûr de l'intérêt mais j'ai tort sans doute.

En fait, ça ouvre pas mal de possibilités sympatiques tout en étant simple à implémenter. L'objectif, c'est vraiment la communication entre applications. Entre un blog et une galerie par exemple.

VDigital a écrit:

Il faut prévoir donner un exemple de récupération xml près à l'emploi, c'est surtout ça je pense, non?

Bien sûr. Je pense qu'on peut s'inspirer des plugins Blogmarks ou Flickr pour DotClear (j'ai la flemme de chercher, mais je suis sûr qu'on est pas en train d'inventer l'eau tiède...)

Je peux le faire et ça répondra à la requête restante sur External random.

Je comptais implémenter cela sur la branche de développement en vue d'une mise à disposition en 1.6. Si tu veux t'en charger, pourquoi pas, fais le sous forme de MOD (un fichier service.php) et quelqu'un s'occupera de l'intégrer, toi si tu veux. Le plus "compliqué" étant bien sûr l'exploitation du XML renvoyé. Et cela ne peut être fait que sous forme de MOD ou de plugin pour d'autres applications (j'en ferai un pour Dotclear).

J'y intégrerai une table de tickets (droit optionnel d'usage des photos de la gallerie) pour gérer les partenariats avec des périodes de validité, qu'en pensez-vous?

Je ne suis pas sûr de comprendre. Est-ce que cela a un rapport avec le status des catégories : privé/publique ? Si oui, alors mon opinion actuelle est que seules les photos publiques sont accessibles via service.

NB : en fait il y a déjà un service disponible en branche 1.5... le flux RSS de notification pardi !


Les historiens ont établi que Pierrick était le premier utilisateur connu de Piwigo.

Hors ligne

#6 2005-12-01 17:04:51

MBt
Invité

Re: services web

z0rglub a écrit:

Prenons l'exemple du MOD "external random", qui propose d'afficher sur un autre site une miniature issue de PhpWebGallery. La version actuelle est principalement limitée par l'obligation d'accès à la base de données de PhpWebGallery par le site distant.

Yeapa!!! c'est exactement la fonctionnalité que je cherchais et c'est la raison pour laquelle je teste PWG depuis 2 jours. Au départ c'est sa fonction remote_site (dont j'ai des commentaires à faire, mais pas ici...) qui me plaisait mais si l'option "service" est mise en place c'est mieux.

Je cherche une interco PWG/Mambo. Vu qu'elle ne doit pas exister, je suis prêt à faire un MOD Mambo (si j'y arrive déjà pour moi... ;o) )

A+
MBt

#7 2005-12-01 22:24:08

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

Re: services web

Je n'ai pas commencé à faire service.php mais vers Noël...


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

#8 2006-01-10 23:35:02

volcom
Former Piwigo Team
2005-01-24
489

Re: services web

je me permets de faire remonter ce sujet :

tu en es où ?
tu as vu ce que donne DotClear dans ce domaine ?

Hors ligne

#9 2006-01-11 07:17:09

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

Re: services web

J'avance mais avec les festivités (et ce n'est pas tout à fait fini, bouffe hier et sortie vendredi).
Plus les obligations de la vie, et le boulot, je ne peux pas "speeder" partout.

Je n'ai surtout pas commencé à coder, tout est sur papier.
Si je commence, il faut que je sois certain de ne pas être dérangé pendant 4/5 heures.
Alors pour l'instant, j'assemble les idées nécessaires.
Je n'ai pas regardé dotClear, mais comme tu me le dis, je vais regarder.

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

#10 2006-01-11 10:45:36

volcom
Former Piwigo Team
2005-01-24
489

Re: services web

en tout cas ce dév m'intéresse bien, je suis chaud pour m'y plonger avec toi !

Hors ligne

#11 2006-01-12 09:51:56

MBt
Membre
Paris
2005-12-06
45

Re: services web

J'avais cherché (avant de découvrir PWG) ce qui existe en terme d'accès distant à une base de données et de XML et j'avais trouvé ces deux sources qui peuvent vous être utile soit pour ne pas réinventer la roue soit pour prendre des idées d'implémentation :
- NodeXML : nodeXML is an XML query language interpreter and an XML data provider. It addresses the issue of retrieving information located on multiple, remote, different databases. Information is provided through XML documents, according to user defined DTDs.
- MiniXML : MiniXML provides a simple, API to generating and parsing XML. Its advantages are ease-of-use and the fact that no additional libraries are required. It comes with two independant implementations, 100% PHP and 100% Perl, which you can use seperately.

Bonne lecture.
MBt

Hors ligne

#12 2006-01-12 22:47:01

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

Re: services web

J'y suis passé, j'ai besoin aussi de faire le point avec volcom sur ces sujets.
Merci de tes indications.

Lien sur le Wiki: XML Service

J'ai vu aussi la feuille de route et là surprise:
services web. Par VDigital et pierrick. Voir la spécification. Prévue pour la 1.6
J'ai l'impression que volcom/pierrick, voire volcom et pierrick et je regarde en quoi je suis utile, non?

Dernière modification par VDigital (2006-01-13 08:03:12)


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

#13 2006-01-13 20:02:58

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

Re: services web

Une source d'inspiration pour traiter en réception le XML retenu:
SurDtd
Je suis allé sur ces sources d'info... y a plus qu'à.
Je fais des tests dans les prochains jours et je livre un exemple de css et surtout le dtd qui ira bien.
Après... écriture php.


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 2006-01-13 23:59:29

plg
Équipe Piwigo
Nantes, France, Europe
2002-04-05
12639

Re: services web

VDigital a écrit:

Lien sur le Wiki: XML Service

OK, c'est parti, j'ai lu, j'ai un tas de remarques évidemment!

wiki a écrit:

De plus, Service “XML" pourrait être utilisé en quelque sorte comme une catégorie virtuelle/réelle distante mise à disposition par l’autre site.

Précisément, je pense que tout ce qui est accessible en HTML sur un site PhpWebGallery doit pouvoir être accessible via service web. Le premier exemple que j'avais donné, c'était 3 photographies random, mais bien sûr, l'objectif c'est de tout proposer avec cette technique. Je pense qu'il ne faut pas réinventer de catégories particulières accessibles uniquement pas service web.

wiki a écrit:

Résultat sous forme de tableau (Array):
En cas d’insdisponibilité temporaire du service, un seul élément binaire à False.

Tu parles d'un tableau, dommage de n'y montrer qu'un seul élément (ça perd de son intérêt). Qu'appelles tu un "élément binaire" en XML ?

wiki a écrit:

Quid d’une catégorie ne correspondant qu’à des images de sites distants? (agreed_xml_service = None est forcé). En ce cas Synchro est impacté.

Je ne vois pas en quoi le fait que les images sont distantes change les choses. L'URL de ton image sera toujours "http://site.distant/toto.jpg". Si l'image s'affiche sur le site PWG, alors elle peut s'afficher sur un site utilisant le service web. Je ne comprends pas en quoi la synchronisation pourrait être impacté par les services web :-/

Remarque en passant : à ce moment de la lecture, on ne sait pas ce qu'est agreed_xml_service (donc on a du mal à suivre).

wiki a écrit:

( Ultérieurement au cas où: Quid d’associer des images à une catégorie de service? Les images du site ne peuvent être associées à une catégorie de service. ).

Tu voudrais créer des catégories qui ne seraient accessible que par service web ? Quel intérêt ? As-tu des exemples concrets ?

wiki a écrit:

Code:

<?xml-stylesheet type="text/css" href="pwg_service.css" ?>

Pourquoi faire une feuille de style CSS ? On afficherait directement la sortie brute de service.php dans un navigateur ? Je ne savais même pas qu'on pouvait appliquer des feuilles de style CSS à un document XML. Voulais tu parler d'une feuille de style XSL ? (en même dans ce cas, je ne vois pas la finalité). Bref, je ne comprends pas :-/

wiki a écrit:

$conf[’XML_service’] [...]

Parfait pour l'activation/désactivation des services web grâce au paramètre en fichier de configuration. Je ne vois pas l'intérêt du paramétrage XML_switch complémentaire en base de données.

Je trouve intéressante l'idée de pouvoir dire pour chaque catégorie si elle est accessible via service, ou non. En résumé, l'accès à des images via service web ne sera possible que si l'image est à la fois accessible à guest et qu'elle appartient à au moins une catégorie autorisée au service web.

wiki a écrit:

4. Chaque site PWG peut naturellement utiliser le service “Disponible??? d’un autre site PWG qu’à la condition que son propre service soit “Disponible??? et qu’au moins une catégorie non vide soit définie comme une ressource accessible. (Extension ultérieure probable)

Bon, je commence à comprendre l'idée, et ça me fait peur. C'est un travail énorme et je suis presque sûr que ça ne va pas intéresser grand monde. A titre d'exemple, je ne compte pas afficher dans ma galerie une pseudo catégorie qui présente les photos d'une autre galerie. D'une part, c'est ma galerie personnelle, d'autre part je ne controle pas le contenu de la catégorie accédée par service si je n'en suis pas administrateur.

Ce type de fonctionnalité (le service web), ce serait plutôt pour que je puisse afficher une mini galerie des 15 derniers photos sur mon blog, et ce de manière dynamique. Enfin, tu as sans doute une autre idée derrière la tête, je pense que tu vas détailler dans les prochains jours.

wiki a écrit:

maxreturn est défini lui aussi en table Config, et si le maxreturn demandé est supérieur au maxreturn de la table Config alors la requête renverra l’indicateur de service indisponible.

1. pas en base, en fichier de configuration pour ce genre de paramètre
2. tu es un peu dur :-) Je dirais que :

Code:

$maxreturn = min($_GET['maxreturn'], $conf['xml_service_maxreturn']);

wiki a écrit:

*  agreed_xml_service (détermine si la catégorie répond favorablement aux conditions de portée des requêtes et de catégorie “non vide???, valeurs: None (par Défaut) / Empty / Available).

#categories.xml_service = true/false (pourquoi faire plus compliqué ?)

wiki a écrit:

(impact) L’admin general: un nouveau process d’Admin de service (XML_switch et maxreturn).

Pas d'accord, inutile d'encombrer l'écran de configuration, "service web" est une fonctionnalité bien trop avancée. Le fichier de configuration est plus approprié à mon avis.

wiki a écrit:

(impact) L’admin category management: un nouveau process d’éligibilité des catégorie (agreed_xml_service).

En effet, il faudra modifier la page de propriétés d'une catégorie, mais aussi et surtout créer une nouvelle page [Administration>Catégories>Service Web].

wiki a écrit:

(ultérieurement: la synchro, les processus d’association éventuellement.)

On en rediscutera, mais alors très très ultérieurement :-)

Bref, merci pour ce dégrossissement important du travail. On a maintenant des bases plus détaillées pour avancer. Je pense que tu veux aller beaucoup trop loin pour une première version de la fonctionnalité, je fais référence à la communication "inter-PWG" via service web. Si on arrive à implémenter une version basique et fonctionnelle d'ici avril 2006, ce serait déjà un grand pas.

VDigital a écrit:

J'ai vu aussi la feuille de route et là surprise:
services web. Par VDigital et pierrick. Voir la spécification. Prévue pour la 1.6
J'ai l'impression que volcom/pierrick, voire volcom et pierrick et je regarde en quoi je suis utile, non?

Tout dépend de ce que tu veux faire. Au départ (dans ce topic), j'ai proposé que tu fasses un MOD pour la 1.5 et qu'ensuite il soit intégré (par moi ou par toi) dans la branche de développement avant le démarrage de la branche 1.6. Maintenant volcom s'intéresse également à la fonctionnalité, je peux très bien n'intervenir qu'en tant que relecteur de code. J'ai bien d'autres fonctionnalités à implémenter pour la 1.6 :-)

Encore une remarque de compréhension générale : j'ai eu de vraies difficultés à lire ta spécification car tu fais référence à des notions que tu définis plus tard dans le texte. C'est troublant. En relisant ma réponse, on voit clairement qu'il a fallu que je relise la spec en entier pour comprendre le premier paragraphe :-/


Les historiens ont établi que Pierrick était le premier utilisateur connu de Piwigo.

Hors ligne

#15 2006-01-14 01:00:38

volcom
Former Piwigo Team
2005-01-24
489

Re: services web

je viens de voir (et de me rappeller) aussi sur la feuille de route que la refonte de l'historique est prévue pour la 1.6 et vu le peu de temps que j'ai pu accorder au dev  PWG ces temps ci... il vaut certainement mieux que je me concentre sur l'historique dans un premier temps. Donc Vidigital Pierrick ça me parait correct.

Sinon d'une manière générale, je trouve aussi que tu vas un peu loin niveau fonctionnalités et que dans un premier temps il faut se "contenter" de fonctionnalités de base réellement exploitables par une grande majorité.

Hors ligne

Pied de page des forums

Propulsé par FluxBB

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