| 
									
										
										
										
											2009-01-22 17:06:06 +01:00
										 |  |  | <?php | 
					
						
							|  |  |  | /** | 
					
						
							| 
									
										
										
										
											2009-08-25 18:14:12 -04:00
										 |  |  |  * StatusNet - the distributed open-source microblogging tool | 
					
						
							| 
									
										
										
										
											2009-08-25 18:12:20 -04:00
										 |  |  |  * Copyright (C) 2008, 2009, StatusNet, Inc. | 
					
						
							| 
									
										
										
										
											2009-01-22 17:06:06 +01:00
										 |  |  |  * | 
					
						
							|  |  |  |  * This program is free software: you can redistribute it and/or modify | 
					
						
							|  |  |  |  * it under the terms of the GNU Affero General Public License as published by | 
					
						
							|  |  |  |  * the Free Software Foundation, either version 3 of the License, or | 
					
						
							|  |  |  |  * (at your option) any later version. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * This program is distributed in the hope that it will be useful, | 
					
						
							|  |  |  |  * but WITHOUT ANY WARRANTY; without even the implied warranty of | 
					
						
							|  |  |  |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
					
						
							|  |  |  |  * GNU Affero General Public License for more details. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * You should have received a copy of the GNU Affero General Public License | 
					
						
							|  |  |  |  * along with this program.  If not, see <http://www.gnu.org/licenses/>. | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-06-05 21:50:00 +02:00
										 |  |  | if (!defined('GNUSOCIAL')) { exit(1); } | 
					
						
							| 
									
										
										
										
											2009-01-22 17:06:06 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | // 10x8
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | define('AVATARS_PER_PAGE', 80); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-04-01 19:46:40 +02:00
										 |  |  | // @todo FIXME: Class documentation missing.
 | 
					
						
							| 
									
										
										
										
											2011-04-14 15:50:45 -04:00
										 |  |  | class GalleryAction extends ProfileAction | 
					
						
							| 
									
										
										
										
											2009-01-22 17:06:06 +01:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2014-05-12 22:41:05 +02:00
										 |  |  |     protected function handle() | 
					
						
							| 
									
										
										
										
											2009-01-22 17:06:06 +01:00
										 |  |  |     { | 
					
						
							| 
									
										
										
										
											2014-05-12 22:41:05 +02:00
										 |  |  |         // Post from the tag dropdown; redirect to a GET
 | 
					
						
							|  |  |  |         if ($this->isPost()) { | 
					
						
							|  |  |  |             common_redirect($this->selfUrl(), 303); | 
					
						
							| 
									
										
										
										
											2009-01-22 17:06:06 +01:00
										 |  |  |         } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-05-12 22:41:05 +02:00
										 |  |  |         parent::handle(); | 
					
						
							| 
									
										
										
										
											2009-01-22 17:06:06 +01:00
										 |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     function showContent() | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         $this->showTagsDropdown(); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     function showTagsDropdown() | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         $tag = $this->trimmed('tag'); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         $tags = $this->getAllTags(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         $content = array(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         foreach ($tags as $t) { | 
					
						
							|  |  |  |             $content[$t] = $t; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |         if ($tags) { | 
					
						
							| 
									
										
										
										
											2011-04-08 17:10:36 +05:30
										 |  |  |             $this->elementStart('dl', array('id' => 'filter_tags')); | 
					
						
							|  |  |  |             $this->element('dt', null, _('Tags')); | 
					
						
							|  |  |  |             $this->elementStart('dd'); | 
					
						
							| 
									
										
										
										
											2009-01-22 17:06:06 +01:00
										 |  |  |             $this->elementStart('ul'); | 
					
						
							|  |  |  |             $this->elementStart('li', array('id' => 'filter_tags_all', | 
					
						
							|  |  |  |                                              'class' => 'child_1')); | 
					
						
							|  |  |  |             $this->element('a', | 
					
						
							|  |  |  |                            array('href' => | 
					
						
							|  |  |  |                                  common_local_url($this->trimmed('action'), | 
					
						
							|  |  |  |                                                   array('nickname' => | 
					
						
							| 
									
										
										
										
											2014-05-12 22:41:05 +02:00
										 |  |  |                                                         $this->target->getNickname()))), | 
					
						
							| 
									
										
										
										
											2011-04-01 19:46:40 +02:00
										 |  |  |                            // TRANS: List element on gallery action page to show all tags.
 | 
					
						
							|  |  |  |                            _m('TAGS','All')); | 
					
						
							| 
									
										
										
										
											2009-01-22 17:06:06 +01:00
										 |  |  |             $this->elementEnd('li'); | 
					
						
							|  |  |  |             $this->elementStart('li', array('id'=>'filter_tags_item')); | 
					
						
							|  |  |  |             $this->elementStart('form', array('name' => 'bytag', | 
					
						
							| 
									
										
										
										
											2009-09-04 15:59:27 +00:00
										 |  |  |                                                'id' => 'form_filter_bytag', | 
					
						
							| 
									
										
										
										
											2014-05-12 22:41:05 +02:00
										 |  |  |                                               'action' => common_path('?action=' . $this->getActionName()), | 
					
						
							| 
									
										
										
										
											2009-01-22 17:06:06 +01:00
										 |  |  |                                                'method' => 'post')); | 
					
						
							| 
									
										
										
										
											2009-09-04 15:59:27 +00:00
										 |  |  |             $this->elementStart('fieldset'); | 
					
						
							| 
									
										
										
										
											2011-04-01 19:46:40 +02:00
										 |  |  |             // TRANS: Fieldset legend on gallery action page.
 | 
					
						
							| 
									
										
										
										
											2009-09-04 15:59:27 +00:00
										 |  |  |             $this->element('legend', null, _('Select tag to filter')); | 
					
						
							| 
									
										
										
										
											2011-04-01 19:46:40 +02:00
										 |  |  |             // TRANS: Dropdown field label on gallery action page for a list containing tags.
 | 
					
						
							| 
									
										
										
										
											2009-01-22 17:06:06 +01:00
										 |  |  |             $this->dropdown('tag', _('Tag'), $content, | 
					
						
							| 
									
										
										
										
											2011-04-01 19:46:40 +02:00
										 |  |  |                             // TRANS: Dropdown field title on gallery action page for a list containing tags.
 | 
					
						
							|  |  |  |                             _('Choose a tag to narrow list.'), false, $tag); | 
					
						
							| 
									
										
										
										
											2014-05-12 22:41:05 +02:00
										 |  |  |             $this->hidden('nickname', $this->target->getNickname()); | 
					
						
							| 
									
										
										
										
											2011-04-01 19:46:40 +02:00
										 |  |  |             // TRANS: Submit button text on gallery action page.
 | 
					
						
							|  |  |  |             $this->submit('submit', _m('BUTTON','Go')); | 
					
						
							| 
									
										
										
										
											2009-09-04 15:59:27 +00:00
										 |  |  |             $this->elementEnd('fieldset'); | 
					
						
							| 
									
										
										
										
											2009-01-22 17:06:06 +01:00
										 |  |  |             $this->elementEnd('form'); | 
					
						
							|  |  |  |             $this->elementEnd('li'); | 
					
						
							|  |  |  |             $this->elementEnd('ul'); | 
					
						
							| 
									
										
										
										
											2011-04-08 17:10:36 +05:30
										 |  |  |             $this->elementEnd('dd'); | 
					
						
							|  |  |  |             $this->elementEnd('dl'); | 
					
						
							| 
									
										
										
										
											2009-01-22 17:06:06 +01:00
										 |  |  |         } | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     // Get list of tags we tagged other users with
 | 
					
						
							|  |  |  |     function getTags($lst, $usr) | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         $profile_tag = new Notice_tag(); | 
					
						
							|  |  |  |         $profile_tag->query('SELECT DISTINCT(tag) ' . | 
					
						
							|  |  |  |                             'FROM profile_tag, subscription ' . | 
					
						
							| 
									
										
										
										
											2014-05-12 22:41:05 +02:00
										 |  |  |                             'WHERE tagger = ' . $this->target->id . ' ' . | 
					
						
							|  |  |  |                             'AND ' . $usr . ' = ' . $this->target->id . ' ' . | 
					
						
							| 
									
										
										
										
											2009-01-22 17:06:06 +01:00
										 |  |  |                             'AND ' . $lst . ' = tagged ' . | 
					
						
							|  |  |  |                             'AND tagger != tagged'); | 
					
						
							|  |  |  |         $tags = array(); | 
					
						
							|  |  |  |         while ($profile_tag->fetch()) { | 
					
						
							|  |  |  |             $tags[] = $profile_tag->tag; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |         $profile_tag->free(); | 
					
						
							|  |  |  |         return $tags; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     function getAllTags() | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         return array(); | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2011-03-14 11:10:07 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  |     function showProfileBlock() | 
					
						
							|  |  |  |     { | 
					
						
							| 
									
										
										
										
											2014-05-12 22:41:05 +02:00
										 |  |  |         $block = new AccountProfileBlock($this, $this->target); | 
					
						
							| 
									
										
										
										
											2011-03-14 11:10:07 -05:00
										 |  |  |         $block->show(); | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2009-04-24 20:28:39 +00:00
										 |  |  | } |