| 
									
										
										
										
											2008-05-22 07:41:52 -04:00
										 |  |  | <?php | 
					
						
							|  |  |  | /* | 
					
						
							|  |  |  |  * Laconica - a distributed open-source microblogging tool | 
					
						
							|  |  |  |  * Copyright (C) 2008, Controlez-Vous, Inc. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * 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/>. | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | if (!defined('LACONICA')) { exit(1); } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | require_once(INSTALLDIR.'/lib/rssaction.php'); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | // Formatting of RSS handled by Rss10Action
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class AllrssAction extends Rss10Action { | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	var $user = NULL; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	function init() { | 
					
						
							|  |  |  | 		$nickname = $this->trimmed('nickname'); | 
					
						
							|  |  |  | 		$this->user = User::staticGet('nickname', $nickname); | 
					
						
							| 
									
										
										
										
											2008-07-08 05:51:13 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-05-22 07:41:52 -04:00
										 |  |  | 		if (!$this->user) { | 
					
						
							| 
									
										
										
										
											2008-07-13 01:37:48 -04:00
										 |  |  | 			common_user_error(_('No such user.')); | 
					
						
							| 
									
										
										
										
											2008-05-22 07:41:52 -04:00
										 |  |  | 			return false; | 
					
						
							|  |  |  | 		} else { | 
					
						
							|  |  |  | 			return true; | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 	} | 
					
						
							| 
									
										
										
										
											2008-07-08 05:51:13 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-05-22 07:41:52 -04:00
										 |  |  | 	function get_notices($limit=0) { | 
					
						
							| 
									
										
										
										
											2008-07-08 05:51:13 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-05-22 07:41:52 -04:00
										 |  |  | 		$user = $this->user; | 
					
						
							|  |  |  | 		$notices = array(); | 
					
						
							| 
									
										
										
										
											2008-07-08 05:51:13 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-05-22 07:41:52 -04:00
										 |  |  | 		$notice = DB_DataObject::factory('notice'); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-05-22 07:48:39 -04:00
										 |  |  | 		$notice->whereAdd('EXISTS (SELECT subscribed from subscription where subscriber = '.$user->id.' and subscribed = notice.profile_id)', 'OR'); | 
					
						
							| 
									
										
										
										
											2008-05-22 07:41:52 -04:00
										 |  |  | 		$notice->whereAdd('profile_id = ' . $user->id, 'OR'); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-07-13 02:50:09 -04:00
										 |  |  | 		$notice->orderBy('created DESC, notice.id DESC'); | 
					
						
							| 
									
										
										
										
											2008-05-22 07:41:52 -04:00
										 |  |  | 		if ($limit != 0) { | 
					
						
							|  |  |  | 			$notice->limit(0, $limit); | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 		$notice->find(); | 
					
						
							| 
									
										
										
										
											2008-07-08 05:51:13 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-05-22 07:41:52 -04:00
										 |  |  | 		while ($notice->fetch()) { | 
					
						
							|  |  |  | 			$notices[] = clone($notice); | 
					
						
							|  |  |  | 		} | 
					
						
							| 
									
										
										
										
											2008-07-08 05:51:13 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-05-22 07:41:52 -04:00
										 |  |  | 		return $notices; | 
					
						
							|  |  |  | 	} | 
					
						
							| 
									
										
										
										
											2008-07-08 05:51:13 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-05-22 07:41:52 -04:00
										 |  |  | 	function get_channel() { | 
					
						
							|  |  |  | 		$user = $this->user; | 
					
						
							|  |  |  | 		$c = array('url' => common_local_url('allrss', | 
					
						
							| 
									
										
										
										
											2008-07-08 05:45:31 -04:00
										 |  |  | 											 array('nickname' => | 
					
						
							| 
									
										
										
										
											2008-05-22 07:41:52 -04:00
										 |  |  | 												   $user->nickname)), | 
					
						
							| 
									
										
										
										
											2008-07-08 05:45:31 -04:00
										 |  |  | 				   'title' => sprintf(_('%s and friends'), $user->nickname), | 
					
						
							| 
									
										
										
										
											2008-05-22 07:41:52 -04:00
										 |  |  | 				   'link' => common_local_url('all', | 
					
						
							|  |  |  | 											 array('nickname' => | 
					
						
							|  |  |  | 												   $user->nickname)), | 
					
						
							| 
									
										
										
										
											2008-07-08 05:45:31 -04:00
										 |  |  | 				   'description' => sprintf(_('Feed for friends of %s'), $user->nickname)); | 
					
						
							| 
									
										
										
										
											2008-05-22 07:41:52 -04:00
										 |  |  | 		return $c; | 
					
						
							|  |  |  | 	} | 
					
						
							| 
									
										
										
										
											2008-07-08 05:51:13 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-05-22 07:41:52 -04:00
										 |  |  | 	function get_image() { | 
					
						
							|  |  |  | 		$user = $this->user; | 
					
						
							|  |  |  | 		$profile = $user->getProfile(); | 
					
						
							|  |  |  | 		$avatar = $profile->getAvatar(AVATAR_PROFILE_SIZE); | 
					
						
							|  |  |  | 		return ($avatar) ? $avatar->url : NULL; | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | } |