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

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

add cfg customization

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