source: spip-zone/_plugins_/spicasa/spicasa_options.php @ 34862

Last change on this file since 34862 was 34862, checked in by gaitan@…, 10 years ago

missing file

File size: 6.6 KB
Line 
1<?php
2function spicasa_init(){
3$p=explode(basename(_DIR_PLUGINS)."/",str_replace('\\','/',realpath(dirname(__FILE__))));
4define('_DIR_PLUGIN_SPICASA',(_DIR_PLUGINS.end($p))."/");
5
6ini_set('include_path', 
7                                ini_get('include_path') . PATH_SEPARATOR . _DIR_PLUGIN_SPICASA.'LightweightPicasaAPI');
8
9require_once 'Picasa.php';
10
11include_spip('inc/distant'); // pour 'copie_locale'
12}
13
14
15function spicasa_resultados($query, $id_article, $debut=1, $max_results=250, $items_page=50){
16        /*Return images for a general query*/
17        spicasa_init();   
18
19                $pic = new Picasa();
20                $query = str_replace(" ", "+", $query);
21                $images = $pic->getImages(null, $debut+$items_page, $debut, $query, null, "public", null, 800);
22
23                if($images->getTotalResults() < $max_results) $max_results=$images->getTotalResults();
24               
25                foreach($images->getImages() as $img){
26                       
27                                       
28                                $id_image = $img->getIdnum();
29                                $id_album = $img->getAlbumid(); 
30                                $author = $img->getAuthor()->getUser();
31                               
32                                $titre = $img->getTitle();
33                                $thumb = $img->getMediumThumb();
34                                       
35                        $ret .= spicasa_thumb($id_image,$id_album, $thumb, $titre, $author,"");
36                }
37       
38        //pagination
39        for ($i = 1; $i <= $max_results; $i = $i + $items_page) {
40                if ($i != $debut) $pagination .= " <a href='#' onclick='spicasa_buscar($i);return false;'>$i</a> ";
41                else $pagination .= " <strong>$i</strong> ";
42        }
43               
44                $pagination = "<div style='background-color: #eeeeee; font-size: 0.7em; text-align: right; padding: 5px; padding-right: 10px;'>$pagination</div>";
45       
46       
47        if ($ret) {
48                $ret = "$pagination<div style='padding: 10px; padding-right: 0px; font-size: 0.8em;'>$ret</div><div style='clear: left;'></div>$pagination";
49        }
50       
51       
52        return $ret;
53 
54 
55   
56}
57
58
59function spicasa_add_photo($id_image, $id_article, $id_album, $user){
60    /* This function download the given image and attach it to the article in course.*/
61    spicasa_init();   
62        $pic = new Picasa();
63        $image = $pic->getImageById($user, $id_album, $id_image, null, 800);
64        foreach($image->getContentUrlMap() as $value) $url = $value; //just one
65
66        $type = $image->getImageType();
67               
68        switch($type){
69                case "image/jpeg": 
70                        $extension = "jpg";     
71                        break;
72                case "image/gif": 
73                                        $extension = "gif";     
74                                        break;
75                case "image/png":
76                        $extension = "png";     
77                        break;         
78        }
79
80        $titre = $image->getTitle();
81        $descriptif = $image->getDescription()."(c)".$image->getAuthor()->getName() ;
82        $largeur = $image->getWidth();
83        $hauteur = $image->getHeight();
84   
85   
86 
87        //echo "<script>alert('url: ".$url."');</script><br><br>";
88
89
90        $img_local = copie_locale($url);
91       
92        $taille = filesize($img_local);
93        $tam = getimagesize($img_local);
94        $img_local = ereg_replace("^"._DIR_IMG, "", $img_local);
95       
96        include_spip("base/abstract_sql");
97        $id_document = sql_insertq (
98                "spip_documents",
99                array (
100                        "extension" => "$extension",
101                        "titre" => "$titre",
102                        "date" => "NOW()",
103                        "descriptif" => "$descriptif",
104                        "fichier" => "$img_local",
105                        "largeur" => "$tam[0]",
106                        "hauteur" => "$tam[1]",
107                        "mode" => "document",
108                        "taille" => $taille,
109                        "distant" => "non"
110                )
111        );
112        if ($id_document) {
113                sql_insertq (
114                        "spip_documents_liens",
115                        array(
116                                "id_document" => $id_document,
117                                "id_objet" => $id_article,
118                                "objet" => "article"
119                        )
120                );
121        }
122       
123        return _T('spicasa:la_imagen')." <strong>".$titre."</strong> "._T('spicasa:exitosamente');
124
125}
126
127function spicasa_login($email, $pass){
128    spicasa_init();
129    /* function to login at Picasa Web album. If it's ok, show the list of user's albums */
130    $pic = new Picasa();
131
132    try{
133        $login = $pic->authorizeWithClientLogin($email, $pass);
134        print "<script>$('#login').html('<p>"._T('spicasa:logged')."<strong>$email</strong></p>');</script>";
135       
136    } catch (Picasa_Exception_CaptchaRequiredException $ce) {
137        print _T('spicasa:captcha');
138        print '<img src="'.$ce->getCaptchaUrl().'" />';
139        return;
140
141       /* Put code for generating a form with an input field, setting $ce->getCaptchaToken(),
142        * $ce->getUsername(), and $cd->getPassword() as hidden fields here
143        */
144    } catch (Picasa_Exception_InvalidUsernameOrPasswordException $ie) {
145        print _T('spicasa:login_invalid');
146        print _T('spicasa:intente');
147        return;
148    } catch (Picasa_Exception $e) {
149        print _T('spicasa:login_fail').": ".$e->getMessage();
150        print "<br/>"._T('spicasa:intente');
151        return;
152
153    }
154   
155    //show album list.
156    return spicasa_lists_albums($email, $pic);
157}
158
159function spicasa_lists_albums($email, $pic){
160    $username = substr($email, 0, strrpos($email, "@")); 
161    //print $username;
162    $account = $pic->getAlbumsByUsername ($username, null, null, "all");
163   
164     foreach($account->getAlbums() as $album){
165        $ret .=  spicasa_thumb("",$album->getIdnum(),$album->getIcon(),$album->getTitle(), $username, "album");
166     }
167   
168    return $ret;
169  }
170
171
172
173function spicasa_add_album($id_album, $user, $id_article){
174         spicasa_init();
175         $pic = new Picasa();
176             $album = $pic->getAlbumById($user, $id_album, null, null, null, null, null, 800);
177         foreach($album->getImages() as $img){   
178                $id_image = $img->getIdnum();
179                spicasa_add_photo($id_image, $id_article, $id_album, $user);
180        }
181
182        return _T('spicasa:el_album')." <strong>".$album->getTitle()."</strong> "._T('spicasa:exitosamente');
183       
184}
185
186
187function spicasa_show_album($id_album, $user, $id_article){
188     spicasa_init();
189         $pic = new Picasa();
190     $album = $pic->getAlbumById($user, $id_album, null, null, null, null, null, 800);
191     foreach($album->getImages() as $img){   
192                $id_image = $img->getIdnum();
193                                $id_album = $img->getAlbumid(); 
194                                $author = $img->getAuthor()->getUser();
195                               
196                                $titre = $img->getTitle();
197                                $thumb = $img->getMediumThumb();
198                                       
199                        $ret .= spicasa_thumb($id_image,$id_album, $thumb, $titre, $author,"");
200     }
201     return $ret;
202   
203}
204
205
206
207
208function spicasa_thumb($id_image,$id_album, $thumb, $titre, $author, $type="photo") {
209
210                        $ret .= "<div style='width: 190px; height: 190px; text-align: center; float: left; margin-right: 10px; margin-bottom: 10px;'>";
211                                $ret .= "<table cellpadding='0' cellspacing='0'><tr><td style='width: 190px; height: 190px; vertical-align: bottom; text-align: center; border: 0px;'>";
212                                $ret .= "<a onclick='spicasa";
213                $ret .= ($type=="album") ? "_show_album": "_add_photo";
214
215                                $ret .= "(";
216                                if ($id_image) $ret .= "\"$id_image\", ";
217                                $ret .= "\"$id_album\",\"$author\");return false;' href='#'><img src='".$thumb."' /></a></td></tr></table>";
218                                $ret .= "<div style='font-size: 0.8em;'><strong>$titre</strong></div>";
219                                $ret .= "</div>";
220                return $ret;
221}
222
223
224?>
Note: See TracBrowser for help on using the repository browser.