Author: pierre.andrews@gmail.com
Date: Sun Jul 30 01:44:01 2006
New Revision: 4270
Log:
on peut aussi ajouter un set de ses photos directement
Added:
_plugins_/_contenu_editorial_/FpipR/exec/flickr_choix_sets.php
Modified:
_plugins_/_contenu_editorial_/FpipR/FpipR.php
_plugins_/_contenu_editorial_/FpipR/action/flickr_ajouter_documents.php
_plugins_/_contenu_editorial_/FpipR/exec/flickr_choix_photos.php
_plugins_/_contenu_editorial_/FpipR/inc/flickr_api.php
Modified: _plugins_/_contenu_editorial_/FpipR/FpipR.php
--- _plugins_/_contenu_editorial_/FpipR/FpipR.php (original)
+++ _plugins_/_contenu_editorial_/FpipR/FpipR.php Sun Jul 30 01:44:01 2006
@@ -57,6 +57,7 @@
}*/
if($acces)
$flux['data'] .= '<a class="thickbox" href="'.generer_url_ecrire('flickr_choix_photos',"type=$type&id=$id").'">ajouter une photo Flickr</a>';
+ $flux['data'] .= '<a class="thickbox" href="'.generer_url_ecrire('flickr_choix_sets',"type=$type&id=$id").'">ajouter un set de photos Flickr</a>';
}
return $flux;
}
Modified: _plugins_/_contenu_editorial_/FpipR/action/flickr_ajouter_documents.php
--- _plugins_/_contenu_editorial_/FpipR/action/flickr_ajouter_documents.php (original)
+++ _plugins_/_contenu_editorial_/FpipR/action/flickr_ajouter_documents.php Sun Jul 30 01:44:01 2006
@@ -1,15 +1,37 @@
<?php
function action_flickr_ajouter_documents() {
+ include_spip('base/abstract_sql');
+
$hash = _request('hash');
$id = _request('id');
$type = _request('type');
- $photos = _request('photos');
$action = _request('action');
$arg = _request('arg');
$redirect = _request('redirect');
$id_auteur = _request('id_auteur');
+ $set = _request('set');
+ if($set == 'oui') {
+ include_spip('inc/flickr_api');
+ $from = array('spip_auteurs');
+ $select = array('flickr_token','flickr_nsid');
+ $where = array('id_auteur='.$id_auteur);
+ $row = spip_abstract_fetsel($select,$from,$where);
+ $photos = array();
+ if($row['flickr_nsid'] != '' && $row['flickr_token'] != '') {
+ $sets = _request('sets');
+ foreach($sets as $s) {
+ $allphotos = flickr_photosets_getPhotos($s,'','',$row['auth_token']);
+ foreach($allphotos as $photo) {
+ $photos[] = $photo->source('o')."@#@".$photo->title;
+ }
+ }
+ }
+ } else {
+ $photos = _request('photos');
+ }
+
include_spip('inc/actions');
if (!verifier_action_auteur("$action-$arg", $hash,$id_auteur)) {
include_spip('inc/minipres');
@@ -19,8 +41,7 @@
foreach($photos as $photo) {
list($url,$title)=split('@#@',$photo);
$empty = array();
- include_spip('base/abstract_sql');
- var_dump(ajouter_un_document($url,$title,$type,$id,'distant',0,$empty));
+ ajouter_un_document($url,$title,$type,$id,'distant',0,$empty);
}
redirige_par_entete(urldecode($redirect));
}
Modified: _plugins_/_contenu_editorial_/FpipR/exec/flickr_choix_photos.php
--- _plugins_/_contenu_editorial_/FpipR/exec/flickr_choix_photos.php (original)
+++ _plugins_/_contenu_editorial_/FpipR/exec/flickr_choix_photos.php Sun Jul 30 01:44:01 2006
@@ -6,6 +6,10 @@
include_spip('inc/flickr_api');
include_spip('base/abstract_sql');
+
+ echo '<h1>Ajouter des photos</h1>';
+ echo 'Veillez choisir les photos que vous voulez ajouter.';
+
$from = array('spip_auteurs');
$select = array('flickr_token','flickr_nsid');
$where = array('id_auteur='.$connect_id_auteur);
@@ -51,6 +55,15 @@
} else {
echo 'vous devez d\'abord vous authentifier <a href="'.generer_url_ecrire('auteurs_edit','id_auteur='.$connect_id_auteur).'">là</a>';
}
+ echo '<hr/>';
+ if(_request('type') == 'article') {
+ echo '<a href="'.generer_url_ecrire('articles','id_article='._request('id')).'">retour</a>';
+ } else if(_request('type') == 'rubrique') {
+ echo '<a href="'.generer_url_ecrire('naviguer','id_rubrique='._request('id')).'">retour</a>';
+ } else {
+ echo '<a href="'.generer_url_ecrire('breves_edit','id_breve='._request('id')).'">retour</a>';
+ }
+
}
?>
Added: _plugins_/_contenu_editorial_/FpipR/exec/flickr_choix_sets.php
--- _plugins_/_contenu_editorial_/FpipR/exec/flickr_choix_sets.php (added)
+++ _plugins_/_contenu_editorial_/FpipR/exec/flickr_choix_sets.php Sun Jul 30 01:44:01 2006
@@ -0,0 +1,59 @@
+<?php
+
+function exec_flickr_choix_sets() {
+ global $connect_id_auteur;
+
+ include_spip('inc/flickr_api');
+ include_spip('base/abstract_sql');
+
+ echo '<h1>Ajouter des sets de photos</h1>';
+ echo 'Veillez choisir les sets que vous voulez ajouter.';
+
+ $from = array('spip_auteurs');
+ $select = array('flickr_token','flickr_nsid');
+ $where = array('id_auteur='.$connect_id_auteur);
+ $row = spip_abstract_fetsel($select,$from,$where);
+ if($row['flickr_nsid'] != '' && $row['flickr_token'] != '') {
+ $page = _request('page')?_request('page'):1;
+ $photosets = flickr_photosets_getList($row['flickr_nsid'],$row['flickr_token']);
+
+ $html = "<ul>\n";
+ foreach($photosets as $set) {
+
+ $html .= '<li style="display:inline;">
+<label for="set'.$set->id.'">
+<a href="'.$set->url().'"><img alt="'.$set->title.'" src="'.$set->logo('s').'">'.
+$set->title.
+'</a>
+</label>
+<input type="checkbox" id="set'.$set->id.'" name="sets[]" value="'.$set->id.'"/>
+</li>'."\n";
+ }
+ $html .= "</ul>\n";
+ $html .= '<button type="submit">'._T('spip:valider')."</button>\n";
+ $html .= '<input type="hidden" name="type" value="'._request('type').'"/>'."\n";
+ $html .= '<input type="hidden" name="id" value="'._request('id').'"/>'."\n";
+ $html .= '<input type="hidden" name="set" value="oui"/>'."\n";
+
+
+ include_spip('inc/actions');
+ if(_request('type') == 'article') {
+ echo generer_action_auteur('flickr_ajouter_documents',_request('id'), generer_url_ecrire('articles','id_article='._request('id')),$html);
+ } else if(_request('type') == 'rubrique') {
+ echo generer_action_auteur('flickr_ajouter_documents',_request('id'), generer_url_ecrire('naviguer','id_rubrique='._request('id')),$html);
+ } else {
+ echo generer_action_auteur('flickr_ajouter_documents',_request('id'), generer_url_ecrire('breves_edit','id_breve='._request('id')),$html);
+ }
+ } else {
+ echo 'vous devez d\'abord vous authentifier <a href="'.generer_url_ecrire('auteurs_edit','id_auteur='.$connect_id_auteur).'">là</a>';
+ }
+ if(_request('type') == 'article') {
+ echo '<a href="'.generer_url_ecrire('articles','id_article='._request('id')).'">retour</a>';
+ } else if(_request('type') == 'rubrique') {
+ echo '<a href="'.generer_url_ecrire('naviguer','id_rubrique='._request('id')).'">retour</a>';
+ } else {
+ echo '<a href="'.generer_url_ecrire('breves_edit','id_breve='._request('id')).'">retour</a>';
+ }
+}
+
+?>
Modified: _plugins_/_contenu_editorial_/FpipR/inc/flickr_api.php
--- _plugins_/_contenu_editorial_/FpipR/inc/flickr_api.php (original)
+++ _plugins_/_contenu_editorial_/FpipR/inc/flickr_api.php Sun Jul 30 01:44:01 2006
@@ -120,7 +120,7 @@
o original image, either a jpg, gif or png, depending on source format
*/
function source($size='') {
- return "http://static.flickr.com/".$this->server."/".$this->id."_".$this->secret."_$size.".(($size=='o')?$this->originalformat:'jpg');
+ return "http://static.flickr.com/".$this->server."/".$this->id."_".$this->secret.($size?"_$size":'').'.'.(($size=='o')?$this->originalformat:'jpg');
}
function url() {
@@ -128,6 +128,33 @@
}
}
+class PhotoSet {
+ var $owner;
+ var $id;
+ var $primary;
+ var $secret;
+ var $server;
+ var $photos;
+ var $title;
+ var $description;
+
+ /*
+ s small square 75x75
+ t thumbnail, 100 on longest side
+ m small, 240 on longest side
+ medium, 500 on longest side
+ b large, 1024 on longest side (only exists for very large original images)
+ */
+ function logo($size='') {
+ return "http://static.flickr.com/".$this->server."/".$this->primary."_".$this->secret."_$size.jpg";
+ }
+
+ function url() {
+ return "http://www.flickr.com/photos/".$this->owner.'/sets/'.$this->id;
+ }
+
+}
+
//======================================================================
function flickr_photos_search(
@@ -187,4 +214,71 @@
return $resp;
}
+function flickr_photosets_getList($user_id,$auth_token) {
+ /*<photosets cancreate="1">
+ <photoset id="5" primary="2483" secret="abcdef"
+ server="8" photos="4">
+ <title>Test</title>
+ <description>foo</description>
+ </photoset>
+ <photoset id="4" primary="1234" secret="832659"
+ server="3" photos="12">
+ <title>My Set</title>
+ <description>bar</description>
+ </photoset>
+ </photosets>*/
+
+
+ $photosets = flickr_check_error(flickr_api_call('flickr.photosets.getList',array('user_id'=>$user_id),$auth_token));
+ $resp = array();
+ if($photosets) {
+
+ $rez = array_keys($photosets);
+ $photosets = $photosets[$rez[0]][0];
+
+ foreach($photosets as $set => $data) {
+ $new_p = new PhotoSet;
+ $new_p->owner = $user_id;
+ foreach(split(' ',$set) as $attr){
+ if(preg_match('#([a-zA-Z_]+)="(.*?)"#',$attr,$matches)) {
+ $new_p->$matches[1] = $matches[2];
+ }
+ }
+ foreach($data[0] as $k => $v) {
+ $new_p->$k = $v[0];
+ }
+ $resp[] = $new_p;
+ }
+ }
+ return $resp;
+}
+
+function flickr_photosets_getPhotos($photoset_id,$extras='',$privacy_filter='',$auth_token) {
+
+ $params = array();
+ $params['photoset_id'] = $photoset_id;
+ if($privacy_filter) $params['privacy_filter'] = $privacy_filter;
+ if($extras) $params['extras'] = "original_format,$extras";
+ else $params['extras'] = "original_format";
+
+ $photos = flickr_check_error(flickr_api_call('flickr.photosets.getPhotos',$params,$auth_token));
[... 21 lines stripped ...]