]> git.mxchange.org Git - quix0rs-gnu-social.git/blob - plugins/GNUsocialPhotos/actions/photos.php
Changes to only display currently viewed profile's pictures.
[quix0rs-gnu-social.git] / plugins / GNUsocialPhotos / actions / photos.php
1 <?php
2 /**
3  * GNU Social
4  * Copyright (C) 2010, Free Software Foundation, Inc.
5  *
6  * PHP version 5
7  *
8  * LICENCE:
9  * This program is free software: you can redistribute it and/or modify
10  * it under the terms of the GNU Affero General Public License as published by
11  * the Free Software Foundation, either version 3 of the License, or
12  * (at your option) any later version.
13  *
14  * This program is distributed in the hope that it will be useful,
15  * but WITHOUT ANY WARRANTY; without even the implied warranty of
16  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17  * GNU Affero General Public License for more details.
18  *
19  * You should have received a copy of the GNU Affero General Public License
20  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
21  *
22  * @category  Widget
23  * @package   GNU Social
24  * @author    Ian Denhardt <ian@zenhack.net>
25  * @author    Sean Corbett <sean@gnu.org>
26  * @copyright 2010 Free Software Foundation, Inc.
27  * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0
28  */
29
30 if (!defined('STATUSNET')) {
31     exit(1);
32 }
33
34 class PhotosAction extends Action
35 {
36     var $user = null;
37
38     function prepare($args)
39     {
40         parent::prepare($args);
41
42         $this->user = common_current_user();
43         common_log(LOG_INFO, "finishing prepare. user : ");
44         common_log(LOG_INFO, $this->user->nickname);
45         return true;
46     }
47
48     function handle($args)
49     {
50         parent::handle($args);
51         $this->showPage();
52     }
53
54     function title()
55     {
56         if (empty($this->user)) {
57             return _m('Hello');
58         } else {
59             return sprintf(_m('Hello, %s'), $this->user->nickname);
60         }
61     }
62
63
64     function showContent()
65     {
66         common_log(LOG_INFO, "getting to show content.\n");
67         if (empty($this->user)) {
68             // TODO: should just redirect to the login page.
69             $this->element('p', array(), 'You are not logged in');
70         } else {
71             common_log(LOG_INFO, 'fileroot : ' . $_SERVER['DOCUMENT_ROOT'] . '/file/');
72             $dir = opendir($_SERVER['DOCUMENT_ROOT'] . '/file/');
73             if ($dir === false) {
74                 $err = error_get_last();
75                 common_log(LOG_INFO, 'Error opening dir : ' . $err['message']);
76                 return;
77             }
78             $args = $this->returnToArgs();
79             foreach (array_keys($args) as $key) {
80                 common_log(LOG_INFO, $key . ' => ' . $args[$key]);
81                 if (is_array($args[$key])) {
82                     foreach (array_keys($args[$key]) as $skey) {
83                         common_log(LOG_INFO, '   ' . $skey . ' => ' . $args[$key][$skey]);
84                     }
85                 }
86             }
87             $pathparts = explode('/', $args[1]['nickname']);
88             $username = $pathparts[0];
89
90                         
91
92             $page = $_GET['pageid'];
93             if (!filter_var($page, FILTER_VALIDATE_INT)){
94                 $page = 1;
95             }
96    
97             if ($page > 1) { 
98                 $this->element('a', array('href' => 'photos?pageid=' . ($page-1)), 'Previous page');
99             }
100             $this->element('a', array('href' => 'photos?pageid=' . ($page+1) ), 'Next page');
101
102             $args = $this->returnToArgs(); 
103             $profile_nick = $args[1]['nickname']; //Nickname for the profile being looked at
104
105             //TODO choice of available albums by user.
106             //Currently based on fact that each user can only have one album.
107             error_log('profile nick:', 3, '/tmp/sean.log');
108             error_log($profile_nick, 3, '/tmp/sean.log');
109             $profile = Profile::staticGet('nickname', $profile_nick); 
110             //error_log(',profile_id:', 3, '/tmp/sean.log');
111             //error_log($profile->id, 3, '/tmp/sean.log');
112             $album = GNUSocialPhotoAlbum::staticGet('profile_id', $profile->id);
113             //error_log(',album_id:', 3, '/tmp/sean.log');
114             //error_log($album->album_id, 3, '/tmp/sean.log');
115                         $photos = GNUsocialPhoto::getGalleryPage($page, $album->album_id, 9);
116
117             $this->elementStart('ul', array('class' => 'photothumbs'));
118             foreach ($photos as $photo) {
119                 $this->elementStart('li');
120                 $this->elementStart('a', array('href' => $photo->uri));
121                 $this->element('img', array('src' => $photo->thumb_uri));
122                 $this->elementEnd('a');
123                 $this->elementEnd('li');
124             }
125             $this->elementEnd('ul');
126         }
127     }
128 }