]> git.mxchange.org Git - quix0rs-gnu-social.git/blob - plugins/GNUsocialPhotos/actions/photos.php
Added gallery links to previous / next pages.
[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             //TODO need to set album ID..
103                         $photos = GNUsocialPhoto::getGalleryPage($page, 0, 9);
104
105             $this->elementStart('ul', array('class' => 'photothumbs'));
106             foreach ($photos as $photo) {
107                 $this->elementStart('li');
108                 $this->elementStart('a', array('href' => $photo->uri));
109                 $this->element('img', array('src' => $photo->thumb_uri));
110                 $this->elementEnd('a');
111                 $this->elementEnd('li');
112             }
113             $this->elementEnd('ul');
114         }
115     }
116 }