Les boucles FpipR : Flickr pour SPIP

Boucles SPIP pour accéder aux fonctionnalités de l’API Flick depuis vos squelettes.

La plupart des boucles disponible depuis l’API Flickr sont disponibles comme boucle SPIP avec des balises et critères correspondant aux champs décrit dans la documentation de l’API Flickr.

Avant propos

Un mot sur les performances

Attention, essayez de bien comprendre cette partie si vous ne voulez pas avoir des problèmes avec vos utilisateurs et l’administrateur de votre serveur. En résumé, pensez à mettre des valeurs de durée de cache intelligentes et de bien diviser vos squelettes pour éviter de surcharger votre serveur avec des recalcules trop réguliers.

Chaque boucle demande au moins une requête au serveur Flickr par boucle. Quand vous utilisez une boucle FpipR, le plugin va faire une demande au serveur Flickr pour récupérer les informations que vous demandez.
Elles seront alors stockées temporairement dans une table visible par SPIP qui pourra alors boucler dessus.

Chaque requête au serveur Flickr est bloquante et peut prendre du temps (il s’agit d’un téléchargement de données à travers internet), il faut donc éviter d’en faire trop souvent et beaucoup en même temps. Une bonne idée pour éviter les mauvaises expériences est de :

  1. utiliser des délais de cache élevé,
  2. diviser le squelette en inclusions qui ont des délais différents pour éviter de tout recalculer en même temps.

Authentification

Certaines boucles demande d’être identifié. En effet, Flickr offre différent niveau de droits d’accès au photos en fonction de votre relation avec leur propriétaire.

Chaque auteur connecté au site SPIP et ayant configuré sa connection avec Flickr dans l’espace privé aura accès à un cache différent de la page et on peut ainsi proposer des squelettes gérant correctement les droits Flickr.

Balises spéciales

  • #FLICKR_PHOTO_ID, #FLICKR_PHOTO_SECRET :
    FpipR permet d’ajouter des documents aux articles comme documents distant. Pour savoir si un document retourné par une boucle DOCUMENTS est une image Flickr, on peut utiliser ces balises, qui pourront aussi être utilisées comme paramètre pour les boucles FPIPR.
  • #FPIPR_EXISTS : cette balise permet de savoir si le plugin est installé. Si le plugin n’est pas installé, cette balise ne retournera rien. On peut ainsi faire des squelettes qui feront des inclusions spécifiques si le plugin est installé.
  • #PAGINATION_FLICKR : la balise de pagination SPIP ne fonctionne pas correctement avec les boucles FpipR. Quand on fait une boucle FpipR avec critère {pagination}, il faut utiliser cette balise à la place de la balise #PAGINATION

Documentation partielle

Le plugin FpipR ajoute 35 nouvelles boucles et un grand nombre de balises et critères associés. La documentation de toutes ces fonctionalités n’est pas encore complète, mais chaque boucle correspond à peu prêt à une méthode de l’API Flickr. Pour savoir ce que la boucle fait, allez lire la documentation de l’API Flickr (en anglais pour l’instant). Si vous voulez aider à documenter tout cela, connecter vous ici et proposer des nouvelles documentations.

Cette boucle implante la méthode : flickr.photos.search On peut l’utiliser pour chercher des photos. ATTENTION, il faut absolument spécifier au moins un critère précisant la recherche si on veut que la boucle retourne des résultats.

Critères

Les critères correspondent aux paramètres de la méthode Flickr.

Les critères suivant peuvent être utilisés comme les critères standard de SPIP : {user_id=#FLICKR_NSID} ou {upload_date < #DATE} par exemple. Ils peuvent aussi être utiliser dans des tris

  • {user_id}
  • {license}
  • {upload_date}
  • {taken_date}

Les critères suivant sont « spéciaux » et prennent leur paramètre directement : {tags spip, gateau} par exemple

  • {tags}
  • {tag_mode}
  • {text}
  • {privacy_filter}
    • 1 public photos
    • 2 private photos visible to friends
    • 3 private photos visible to family
    • 4 private photos visible to friends & family
    • 5 completely private photos
  • {safe_search}
  • {content_type}
  • {machine_tags} voir http://www.flickr.com/groups/api/di...
  • {machine_tag_mode} par defaut ’any’
  • {bbox} limitation geographique de la recherche, separé par des :, longitude minimum, latitude minimum, longitude max, latitude max
  • {accuracy}

Les critères suivant peuvent être spécifié pour les tri : {par date_posted} , {par date_taken} , {par interestingness} , {par relevance} (dans le cas d’une recherche).

Balises

  • #ID_PHOTO id de la photo
  • #USER_ID nsid de l’utilisateur
  • #SECRET secret de la photo pour construire l’url et obtenir plus d’info
  • #SERVER le server où la photo se trouve
  • #TITLE le titre de la photo
  • #ISPUBLIC 1 si la photo est publique, 0 sinon
  • #ISFRIEND 1 si la photo est accessible aux amis, 0 sinon
  • #ISFAMILY 1 si la photo est accessible à la famille, 0 sinon
  • #ORIGINALFORMAT l’extension du fichier original
  • #LICENSE la « license » (voir les valeurs ici)
  • #UPLOAD_DATE quand la photo a été postée sur Flickr
  • #TAKEN_DATE quand la photo a été prise, si dispo dans les infos EXIF
  • #ONWER_NAME le nom de l’utilisateur
  • #ICON_SERVER le serveur où trouver l’icone de l’utilisateur
  • #LAST_UPDATE date de dernière modification des données de la photo
  • #LONGITUDE
  • #LATITUDE
  • #ACCURACY la précision de l’info géographique :
    • 1 niveau global
    • 3 niveau d’un pays
    • 6 niveau d’une région
    • 11 niveau d’une ville
    • 16 niveau de la rue

Balises Calculées

(c.f. http://www.flickr.com/services/api/... et http://www.flickr.com/services/api/...

  • #URL_PHOTO l’url de la photo
  • #URL_OWNER l’url du photographe
  • #LOGO_PHOTO retourne l’image taille moyenne (500px sur le côté le plus long), sauf si on lui passe un paramètre :
    • s petit carre 75x75
    • t vignette, 100px sur le côté le plus long
    • m petite, 240px sur le côté le plus long
    • b large, 1024px sur le côté le plus long (seulement si o est très large)
    • o image originale, jpg, png ou gif en fonction de #ORIGINALFORMAT
  • #LOGO_OWNER le logo du photographe

Boucle FLICKR_PHOTOS_GETINFO

Retourne des informations complémentaires sur une photo. (voir : http://www.flickr.com/services/api/...)

Critères

  • On doit absolument spécifier le critère {id_photo}
  • On peut aussi spécifier le critère {secret}

Balises

  • #ID_PHOTO
  • #SECRET
  • #SERVER
  • #ISFAVORITE
  • #LICENSE
  • #ROTATION la rotation effectue automatiquement sur l’image
  • #ORIGINALFORMAT
  • #USER_ID
  • #OWNER_USERNAME le username flickr du photographe
  • #OWNER_REALNAME le nom réel du photographe
  • #OWNER_LOCATION où le photographe vit
  • #TITLE
  • #DESCRIPTION
  • #ISPUBLIC
  • #ISFRIEND
  • #ISFAMILY
  • #DATE_POSTED
  • #DATE_TAKEN
  • #DATE_LASTUPDATE
  • #COMMENTS Le nombre de commentaires sur la photo
  • #LATITUDE
  • #LONGITUDE
  • #ACCURACY

Balises Calculées

Identiques à la boucle précédente

Boucle FLICKR_PHOTO_TAGS

CETTE BOUCLE N’EST DISPONIBLE QUE DANS UNE BOUCLE FLICKR_PHOTOS_GETINFO

Retourne la liste de tag d’une photo

Critère

Pas de critères spécifique

Balises

  • #ID_TAG
  • #AUTHOR le nsid de l’auteur qui a ajouté le tag sur la photo
  • #RAW la version normale du tag (avec espace, caractères spéciaux etc.)
  • #SAFE une version « sûre » du tag, qu’on peut utiliser dans des urls, etc.
  • #ID_PHOTO

Boucle FLICKR_PHOTO_NOTES

CETTE BOUCLE N’EST DISPONIBLE QUE DANS UNE BOUCLE FLICKR_PHOTOS_GETINFO

Retourne la liste des notes sur une photo

Critère

Pas de critères spécifique

Balises

  • #ID_NOTE
  • #AUTHOR le nsid de l’auteur qui a ajouté la note sur la photo
  • #AUTHOR_NAME le username de l’auteur qui a ajouté la note sur la photo
  • #X #Y les coordonnées du coin en haut à gauche
  • #WIDTH #HEIGHT Les dimensions de la note
  • #TEXTE le texte de la note
  • #ID_PHOTO

Boucle FLICKR_PHOTO_URLS

CETTE BOUCLE N’EST DISPONIBLE QUE DANS UNE BOUCLE FLICKR_PHOTOS_GETINFO

Retourne la liste des urls d’une photo

Critères

Pas de critères spécifique

Balises

  • #TYPE le type de l’url
  • #URL l’url
  • #ID_PHOTO

Boucle FLICKR_PHOTOSETS_GETLIST

Retourne la liste des sets d’un utilisateur

Critère

  • user_id l’identifiant flickr (nsid) de l’utilisateur

Balises

  • #ID_PHOTOSET
  • #USER_ID le nsid de l’auteur qui a ajouté le tag sur la photo
  • #PRIMARY_PHOTO l’id de la photo illustrant le set
  • #SECRET le secret de cette photo
  • #SERVER le serveur de cette photo
  • #PHOTOS le nombre de photos dans le set
  • #TITLE
  • #DESCRIPTION

Balises calculées

  • #LOGO_PHOTOSET le logo du photoset (la « primary » image, prend les memes paramètre que la balise #LOGO_PHOTO sauf ’o’)
  • #URL_PHOTOSET

Boucle FLICKR_PHOTOSETS_GETPHOTOS

Retourne les photos dans un set

Critères

  • {id_photoset} l’id du photoset
  • {privacy_filter} pas testé

Balises

Un sous set des balises de FLICKR_PHOTOS_SEARCH, mais on peut imbriquer une boucle FLICKR_PHOTOS_GETINFO à l’intérieur pour avoir plus de détails.

  • #ID_PHOTO
  • #SECRET
  • #SERVER
  • #LICENSE
  • #DATE_UPLOAD
  • #DATE_TAKEN
  • #OWNER_NAME
  • #ICON_SERVER
  • #ORIGINAL_FORMAT
  • #LAST_UPDATE

Balises Calculées

  • #URL_PHOTO l’url de la photo
  • #LOGO_PHOTO retourne l’image taille moyenne (500px sur le côté le plus long), sauf si on lui passe un paramètre :
    • s petit carre 75x75
    • t vignette, 100px sur le côté le plus long
    • m petite, 240px sur le côté le plus long
    • b large, 1024px sur le côté le plus long (seulement si o est très large)
    • o image originale, jpg, png ou gif en fonction de #ORIGINALFORMAT

Balises a utiliser quand #ID_PHOTO est disponible

Voici des balises, correspondantes aux informations fournis par la méthode : flickr.photos.getContext. Elles peuvent être utilisées dans n’importe quelle boucle qui fournit un #ID_PHOTO

  • #PHOTOS_COUNT le total de photos de l’utilisateur possédant cette photo
  • #PREVPHOTO_ID l’id de la photo précédente dans le photostream
  • #PREVPHOTO_SERVER le serveur de la photo précédente dans le photostream
  • #PREVPHOTO_SECRET le secret de la photo précédente dans le photostream
  • #PREVPHOTO_TITLE le titre de la photo précédente dans le photostream
  • #URL_PREVPHOTO l’url de la page de la photo précédente dans le photostream
  • #PREVPHOTO_THUMB l’url de la vignette de la photo précédente dans le photostream
  • #LOGO_PREVPHOTO le logo de la photo précédente dans le photostream (prend un parametre comme les autres balises logo, sauf ’o’)
  • #NEXTPHOTO_ID l’id de la photo suivante dans le photostream
  • #NEXTPHOTO_SERVER le serveur de la photo suivante dans le photostream
  • #NEXTPHOTO_SECRET le secret de la photo suivante dans le photostream
  • #NEXTPHOTO_TITLE le titre de la photo suivante dans le photostream
  • #URL_NEXTPHOTO l’url de la page de la photo suivante dans le photostream
  • #NEXTPHOTO_THUMB l’url de la vignette de la photo suivante dans le photostream
  • #LOGO_NEXTPHOTO le logo de la photo suivante dans le photostream (prend un paramètre comme les autres balises logo, sauf ’o’)

Toutes les boucles

Voir http://www.flickr.com/services/api/ pour les détails. La plupart des boucles prennent les même critères que les méthodes décrites dans ces pages.

  • FLICKR_CONTACTS_GETLIST
  • FLICKR_CONTACTS_GETPUBLICLIST
  • FLICKR_FAVORITES_GETLIST
  • FLICKR_FAVORITES_GETPUBLICLIST
  • FLICKR_GROUPS_GETINFO
  • FLICKR_GROUPS_POOLS_GETGROUPS
  • FLICKR_GROUPS_POOLS_GETPHOTOS
  • FLICKR_INTERESTINGNESS_GETLIST
  • FLICKR_PEOPLE_GETINFO
  • FLICKR_PEOPLE_GETPUBLICGROUPS
  • FLICKR_PHOTO_NOTES
  • FLICKR_PHOTO_TAG
  • FLICKR_PHOTO_URLS
  • FLICKR_PHOTOS_COMMENTS_GETLIST
  • FLICKR_PHOTOS_GETALLCONTEXTS
  • FLICKR_PHOTOS_GETCONTACTSPHOTOS
  • FLICKR_PHOTOS_GETCONTACTSPUBLICPHOTOS
  • FLICKR_PHOTOS_GETEXIF
  • FLICKR_PHOTOS_GETINFO
  • FLICKR_PHOTOS_GETNOTINSET
  • FLICKR_PHOTOS_GETRECENT
  • FLICKR_PHOTOS_GETUNTAGGED
  • FLICKR_PHOTOS_GETWITHGEODATA
  • FLICKR_PHOTOS_GETWITHOUTGEODATA
  • FLICKR_PHOTOS_RECENTLYUPDATED
  • FLICKR_PHOTOS_SEARCH
  • FLICKR_PHOTOSETS_COMMENTS_GETLIST
  • FLICKR_PHOTOSETS_GETLIST
  • FLICKR_PHOTOSETS_GETPHOTOS
  • FLICKR_TAGS_GETHOTLIST
  • FLICKR_TAGS_GETLISTPHOTO
  • FLICKR_TAGS_GETLISTUSER
  • FLICKR_TAGS_GETLISTUSERPOPULAR
  • FLICKR_TAGS_GETLISTUSERRAW
  • FLICKR_TAGS_GETRELATED
  • FLICKR_URLS_LOOKUPGROUP
  • FLICKR_URLS_LOOKUPUSER

Toutes les balises calculées

TODO : Il faut encore trier ces balises pour les associer aux bonnes boucles dans la doc

  • #ACCURACY
  • #FLICKR_PHOTO_ID
  • #FLICKR_PHOTO_SECRET
  • #ID_GROUP
  • #ID_PHOTOSET
  • #ISFAMILY
  • #ISFRIEND
  • #ISPUBLIC
  • #LATITUDE
  • #LOGO_CONTACT
  • #LOGO_GROUP
  • #LOGO_NEXTPHOTO
  • #LOGO_OWNER
  • #LOGO_PHOTO
  • #LOGO_PHOTOSET
  • #LOGO_PREVPHOTO
  • #LONGITUDE
  • #NEXTPHOTO_ID
  • #NEXTPHOTO_SECRET
  • #NEXTPHOTO_SERVER
  • #NEXTPHOTO_THUMB
  • #NEXTPHOTO_TITLE
  • #PHOTOS_COUNT
  • #PREVPHOTO_ID
  • #PREVPHOTO_SECRET
  • #PREVPHOTO_SERVER
  • #PREVPHOTO_THUMB
  • #PREVPHOTO_TITLE
  • #URL_GROUP
  • #URL_NEXTPHOTO
  • #URL_OWNER
  • #URL_PHOTO
  • #URL_PHOTOSET
  • #URL_PREVPHOTO
  • #URL_USERPHOTOS
  • #URL_USERPROFILE

Toutes les balises/critères pour limiter dans les tables

TODO trier, expliquer

  • {id_photo} / #ID_PHOTO
  • {user_id} / #USER_ID
  • {secret} / #SECRET
  • {server} / #SERVER
  • {title} / #TITLE
  • {ispublic} / #ISPUBLIC
  • {isfriend} / #ISFRIEND
  • {isfamily} / #ISFAMILY
  • {originalformat} / #ORIGINALFORMAT
  • {license} / #LICENSE
  • {upload_date} / #UPLOAD_DATE
  • {taken_date} / #TAKEN_DATE
  • {owner_name} / #OWNER_NAME
  • {icon_server} / #ICON_SERVER
  • {last_update} / #LAST_UPDATE
  • {latitude} / #LATITUDE
  • {longitude} / #LONGITUDE
  • {accuracy} / #ACCURACY
  • {rang} / #RANG
  • {id_photoset} / #ID_PHOTOSET
  • {id_group} / #ID_GROUP
  • {added_date} / #ADDED_DATE
  • {field} / #FIELD
  • {id_photo} / #ID_PHOTO
  • {secret} / #SECRET
  • {server} / #SERVER
  • {isfavorite} / #ISFAVORITE
  • {license} / #LICENSE
  • {rotation} / #ROTATION
  • {originalformat} / #ORIGINALFORMAT
  • {user_id} / #USER_ID
  • {owner_username} / #OWNER_USERNAME
  • {owner_realname} / #OWNER_REALNAME
  • {owner_location} / #OWNER_LOCATION
  • {title} / #TITLE
  • {description} / #DESCRIPTION
  • {ispublic} / #ISPUBLIC
  • {isfriend} / #ISFRIEND
  • {isfamily} / #ISFAMILY
  • {date_posted} / #DATE_POSTED
  • {date_taken} / #DATE_TAKEN
  • {date_lastupdate} / #DATE_LASTUPDATE
  • {comments} / #COMMENTS
  • {latitude} / #LATITUDE
  • {longitude} / #LONGITUDE
  • {accuracy} / #ACCURACY
  • {field} / #FIELD
  • {id_tag} / #ID_TAG
  • {author} / #AUTHOR
  • {raw} / #RAW
  • {safe} / #SAFE
  • {id_photo} / #ID_PHOTO
  • {score} / #SCORE
  • {count} / #COUNT
  • {field} / #FIELD
  • {id_note} / #ID_NOTE
  • {id_photo} / #ID_PHOTO
  • {author} / #AUTHOR
  • {authorname} / #AUTHORNAME
  • {x} / #X
  • {y} / #Y
  • {width} / #WIDTH
  • {height} / #HEIGHT
  • {texte} / #TEXTE
  • {field} / #FIELD
  • {type} / #TYPE
  • {id_photo} / #ID_PHOTO
  • {url} / #URL
  • {field} / #FIELD
  • {id_photoset} / #ID_PHOTOSET
  • {user_id} / #USER_ID
  • {primary_photo} / #PRIMARY_PHOTO
  • {secret} / #SECRET
  • {server} / #SERVER
  • {photos} / #PHOTOS
  • {title} / #TITLE
  • {description} / #DESCRIPTION
  • {field} / #FIELD
  • {id_contexte} / #ID_CONTEXTE
  • {title} / #TITLE
  • {type} / #TYPE
  • {id_photo} / #ID_PHOTO
  • {field} / #FIELD
  • {id_comment} / #ID_COMMENT
  • {user_id} / #USER_ID
  • {authorname} / #AUTHORNAME
  • {date_create} / #DATE_CREATE
  • {permalink} / #PERMALINK
  • {texte} / #TEXTE
  • {id_photo} / #ID_PHOTO
  • {id_photoset} / #ID_PHOTOSET
  • {field} / #FIELD
  • {id_group} / #ID_GROUP
  • {user_id} / #USER_ID
  • {admin} / #ADMIN
  • {eighteenplus} / #EIGHTEENPLUS
  • {iconserver} / #ICONSERVER
  • {name} / #NAME
  • {description} / #DESCRIPTION
  • {members} / #MEMBERS
  • {privacy} / #PRIVACY
  • {throttle_count} / #THROTTLE_COUNT
  • {throttle_mode} / #THROTTLE_MODE
  • {throttle_remaining} / #THROTTLE_REMAINING
  • {photos} / #PHOTOS
  • {field} / #FIELD
  • {user_id} / #USER_ID
  • {isadmin} / #ISADMIN
  • {ispro} / #ISPRO
  • {iconserver} / #ICONSERVER
  • {username} / #USERNAME
  • {realname} / #REALNAME
  • {location} / #LOCATION
  • {url_photos} / #URL_PHOTOS
  • {url_profile} / #URL_PROFILE
  • {date_firstphoto} / #DATE_FIRSTPHOTO
  • {date_taken_firstphoto} / #DATE_TAKEN_FIRSTPHOTO
  • {photos_count} / #PHOTOS_COUNT
  • {ignored} / #IGNORED
  • {family} / #FAMILY
  • {friend} / #FRIEND
  • {field} / #FIELD
  • {id_photo} / #ID_PHOTO
  • {secret} / #SECRET
  • {server} / #SERVER
  • {tagspace} / #TAGSPACE
  • {tagspaceid} / #TAGSPACEID
  • {tag} / #TAG
  • {label} / #LABEL
  • {raw} / #RAW
  • {clean} / #CLEAN
  • {field} / #FIELD

Discussion

3 discussions

  • 2
    Maitresinh

    Désolé, je fais faire le neueu de service, mais...j’ai recopié une boucle pour afficher les tags. ok ça marche.

    Le probleme, c’est que je ne sais meme pas comment faire les boucles les plus simple.

    Du genre afficher les miniatures des photos comme sur flickr, sur 3 colonnes, cliquables vers les grand formats.

    et / ou une boucle pour afficher (celle la je vois deja plus...)

    Bref, quelques boucles types pour les bleus ?

    • Maitresinh

      justement, en voila une pour afficher les albums...

      et vlan une erreur de serveur :

      <BOUCLE_FLICKR_PHOTOSETS_GETLIST(FLICKR_PHOTOSETS_GETLIST){author=43073719@N00} {"<br/>"} }>
      #SAFE <a href="#URL_PHOTOSET">#TITLE #LOGO_PHOTOSET </a>
      </BOUCLE_ FLICKR_PHOTOSETS_GETLIST>
    • Maitresinh

      juste un espace de trop et le critere auteur a ne pas afficher.
      par contre le lie ne fonctionne pas, il renvoie vers la meme page

    Répondre à ce message

  • 8
    <BOUCLE_tags_photos(FLICKR_TAGS_GETLISTUSER){user_id=12037949754@N01}>
            #RAW
    </BOUCLE_tags_photos>

    Cette boucle doit normalement correspondre à la boucle flickr.tags.getListUser de l’api, selon la documentation Flickr de cette boucle cette boucle retourne les tags d’un utilisateur Flickr dont l’id et user_id.

    Or chez moi, cette boucle retourne l’erreur suivante :

    # Erreur(s) dans le squelette

    * Erreur sur le site, boucle critère inconnu user_id
    * Vous ne pouvez pas utiliser l’operateur sur le critere user_id,
    * (fpipr_tags)
    Erreur MySQL
    fpipr_tags.raw FROM spip_fpipr_tags AS fpipr_tags WHERE (user_id = ’12037949754@N01’)
    Champ ’user_id’ inconnu dans where clause

    Est-ce que c’est bien la même boucle que celle de Flickr ?

    Et pour la balise #RAW, elle doit retourner (comme dans l’api Flickr) le nom du tag en brut ?

    Merci d’avance.

    • Bon, c’est ma faute et la documentation n’est pas écrite, donc ça aide pas à comprendre.

      A la base, les boucle _TAGS_ utilise la même table en DB que la boucle TAGS de photos_getinfo. Donc, pour l’user_id, il faut passer author et pas user_id, c’est pas intuitifs au vue de la doc flickr :(

      Donc ça donnerait :

      <BOUCLE_flickr_tags_getlistuser(FLICKR_TAGS_GETLISTUSER){author=71651012@N00} {"<br/>"} {0,5}>
      safe: #SAFE
      </BOUCLE_flickr_tags_getlistuser>

      Pour la version RAW, malheureusement, il n’y a pas moyen dans l’API flickr, de récupérer tous les RAW d’un tag, on peut juste avoir ceux de l’utilisateur authentifié. Comme la doc dit qu’on n’a pas besoin d’authentification, je ne sais pas ce que ça donnera si on n’est pas authentifié.
      On peut donc faire quelque chose comme cela :

      <BOUCLE_flickr_tags_getlistuser(FLICKR_TAGS_GETLISTUSER){author=71651012@N00} {"<br/>"} {0,5}>
      safe: #SAFE (
      <BOUCLE_raw(FLICKR_TAGS_GETLISTUSERRAW) {tag #SAFE} {","}>
      #RAW
      </BOUCLE_raw>)
      </BOUCLE_flickr_tags_getlistuser>

      Mais attention, deux boucles flickr imbriquées, si on a bcp de tags (ce qui est le cas en général), c’est mortellement long. Il faut alors :

      • limiter la boucle extèrieure
      • utiliser un inclure pour faire utilisation du cache au maximum.
    • Ok,

      Au fait #SAFE est l’équivalente de tag-body de l’API ?

      Si j’ai bien compris, les tags sont traités par Flickr pour ensuite donner le SAFE (enleve les espaces, tirets, etc.), et si plusieurs tags ont le même SAFE calculés, ils deviennent le RAWs ?

      Vu que je vais afficher les photos de mon compte, et que je controle les tags (tous les tags n’auront q’une version) je peut mettre directement le RAW dans la boucle (pas le SAFE puisqu’il y a un seul RAW) et sans réstreindre la boucle. ?

      Et pour l’authentification, c’est le visiteur du site SPIP qui doit être authentifié en tant qu’administrateur lorsque SPIP calcule le squelette qui contient la boucle FLICKR pour dire qu’il est authentifié ?

    • #SAFE est en effet le contenu du tag-body de l’API et en effet, ils correspondent au tag « propre », sans espace, etc... Par cette transformation, plusieurs tags « normaux » peuvent avoir le même tag « propre », ainsi, les RAWs correspondent à toutes les transformations de ce tag d’un utilisateur particulier.

      la méthode flickr.tags.getListUser de l’API flickr ne retourne pas le RAW, donc tu ne peux pas utiliser directement #RAW dans cette boucle, c’est pour cela qu’il faut faire une boucle en plus imbriqué.
      Le problème est alors que pour FpipR, une boucle=une requette au serveur Flickr, donc si tu as 200 tags retournés par getListUser, ça veut dire 200 appels getListUserRaw, c’est un peu idiot, mais on n’y peut rien.

      Tu peux le faire, mais il faut optimiser l’utilisation du cache de SPIP en mettant la boucle imbriqué dans un squelette tout seul avec un delais « eternel » que tu incluras dans la boucle getListUser (qui devrait aussi etre dans un squelette inclus avec un delais tres grand), ainsi, ça évitera de faire trop souvent ces requettes juste pour avoir les RAWs.

      Pour l’authentification, en effet, c’est les infos de l’auteur qui est actuellement logué dans le site SPIP qui seront utilisées...

    • J’ai compris pour les Raws.

      Mais en ce qui concerne l’authentification, si au moment ou un visiteur visite le squelette (ou se trouve la boucle des Raws imbriqué dans une boucle de tags) et que ce squelette se recalcule (fin du délais de cache), Spip ne pourra avoir la liste des Raws de Flickr ? puisque c’est le visiteur (qui n’est pas authentifié) qui demande le calcul de la page...

      Si c’est le cas, le délais de cache de cette boucle doit être éternel, et c’est l’admin qui devra calculer en premier puis recalculer quand de nouveaux tags sont ajoutés...

    • non non, tu n’as pas compris, chaque utilisateur authentifiés a un cache indépendant et les visiteurs non authentifié ont le même cache, indépendant de celui des authentifiés.

      On ne veut pas que quelqu’un qui n’est pas authentifié puisse voire les photos privées de quelqu’un d’autre, etc...

      donc :
      -  les visiteurs authentifiés verront LEUR liste de RAW
      -  les visiteurs pas authentifiés ne verront rien...

      c’est une limitation dans l’API flickr je pense, on ne peut pas y faire grand chose :(

    • Ah Ok, donc ceux qui ne sont pas authentifiés ne peuvent voir que le tag brute.

      La documentation dis pourtant que l’API renvoie la liste sans authentification (et c’est plutôt logique).

    • C’est mon interprétation, la documentation est un peu contradictoire puisque la méthode ne demande pas d’authentification, mais qu’elle ne retourne que les tags de l’utilisateur « actuellement connecté »... ce qui, je suppose veut dire que cela utilise l’authentification malgrès tout.

    • Question sûrement stupide, mais je gratte depuis quelques temps dessus sans résultat : J’arrive à remonter mes tags, mais je n’arrive pas à en faire des liens valides vers les photos leur correspondant... une solution ?

    Répondre à ce message

  • 2

    Comment utiliser le paramètre de taille de la balise #LOGO_PHOTO ?

      • [(#LOGO_PHOTO{s})] retournera la taille carrée,
      • [(#LOGO_PHOTO{t})] retournera la taille vignette,
      • [(#LOGO_PHOTO{m})] retournera la taille petite,
      • etc.
    • Merci beaucoup pour la réponse rapide !

    Répondre à ce message

Ajouter un commentaire

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

Merci d’avance pour les personnes qui vous aideront !

Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.

Qui êtes-vous ?
[Se connecter]

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom