| 
									
										
										
										
											2008-05-14 10:54:36 -04:00
										 |  |  | <?php | 
					
						
							| 
									
										
										
										
											2008-05-20 15:14:12 -04:00
										 |  |  | /* | 
					
						
							| 
									
										
										
										
											2008-05-14 15:26:48 -04:00
										 |  |  |  * Laconica - a distributed open-source microblogging tool | 
					
						
							|  |  |  |  * Copyright (C) 2008, Controlez-Vous, Inc. | 
					
						
							| 
									
										
										
										
											2008-05-20 15:14:12 -04:00
										 |  |  |  * | 
					
						
							| 
									
										
										
										
											2008-05-14 15:26:48 -04: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. | 
					
						
							| 
									
										
										
										
											2008-05-20 15:14:12 -04:00
										 |  |  |  * | 
					
						
							| 
									
										
										
										
											2008-05-14 15:26:48 -04:00
										 |  |  |  * 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. | 
					
						
							| 
									
										
										
										
											2008-05-20 15:14:12 -04:00
										 |  |  |  * | 
					
						
							| 
									
										
										
										
											2008-05-14 15:26:48 -04:00
										 |  |  |  * 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/>. | 
					
						
							|  |  |  |  */ | 
					
						
							| 
									
										
										
										
											2008-05-20 15:14:12 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-05-17 11:47:01 -04:00
										 |  |  | if (!defined('LACONICA')) { exit(1); } | 
					
						
							| 
									
										
										
										
											2008-05-14 10:54:36 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | class SettingsAction extends Action { | 
					
						
							| 
									
										
										
										
											2008-05-15 12:28:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-06-23 18:36:41 -04:00
										 |  |  |     function handle($args) { | 
					
						
							|  |  |  |         parent::handle($args); | 
					
						
							|  |  |  |         if (!common_logged_in()) { | 
					
						
							| 
									
										
										
										
											2008-07-08 05:45:31 -04:00
										 |  |  |             common_user_error(_('Not logged in.')); | 
					
						
							| 
									
										
										
										
											2008-06-23 18:36:41 -04:00
										 |  |  |             return; | 
					
						
							| 
									
										
										
										
											2008-06-23 22:52:34 -04:00
										 |  |  |         } else if (!common_is_real_login()) { | 
					
						
							|  |  |  |         	# Cookie theft means that automatic logins can't
 | 
					
						
							|  |  |  |         	# change important settings or see private info, and
 | 
					
						
							|  |  |  |         	# _all_ our settings are important
 | 
					
						
							|  |  |  |             common_set_returnto($this->self_url()); | 
					
						
							|  |  |  |             common_redirect(common_local_url('login')); | 
					
						
							| 
									
										
										
										
											2008-06-23 18:36:41 -04:00
										 |  |  |         } else if ($_SERVER['REQUEST_METHOD'] == 'POST') { | 
					
						
							|  |  |  |             $this->handle_post(); | 
					
						
							|  |  |  |         } else { | 
					
						
							|  |  |  |             $this->show_form(); | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2008-05-15 12:28:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-06-23 18:36:41 -04:00
										 |  |  |     # override!
 | 
					
						
							|  |  |  |     function handle_post() { | 
					
						
							|  |  |  |         return false; | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2008-05-20 15:14:12 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-06-23 18:36:41 -04:00
										 |  |  |     function show_form($msg=NULL, $success=false) { | 
					
						
							|  |  |  |         return false; | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2008-05-17 08:20:45 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-06-23 18:36:41 -04:00
										 |  |  |     function message($msg, $success) { | 
					
						
							|  |  |  |         if ($msg) { | 
					
						
							|  |  |  |             common_element('div', ($success) ? 'success' : 'error', | 
					
						
							|  |  |  |                            $msg); | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2008-05-20 15:14:12 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-06-30 13:03:42 -04:00
										 |  |  | 	function form_header($title, $msg=NULL, $success=false) { | 
					
						
							|  |  |  | 		common_show_header($title, | 
					
						
							|  |  |  | 		                   NULL, | 
					
						
							|  |  |  | 		                   array($msg, $success), | 
					
						
							|  |  |  | 						   array($this, 'show_top')); | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	function show_top($arr) { | 
					
						
							|  |  |  | 		$msg = $arr[0]; | 
					
						
							|  |  |  | 		$success = $arr[1]; | 
					
						
							|  |  |  | 		if ($msg) { | 
					
						
							|  |  |  | 			$this->message($msg, $success); | 
					
						
							|  |  |  | 		} else { | 
					
						
							|  |  |  | 			$inst = $this->get_instructions(); | 
					
						
							|  |  |  | 			$output = common_markup_to_html($inst); | 
					
						
							|  |  |  | 			common_element_start('div', 'instructions'); | 
					
						
							|  |  |  | 			common_raw($output); | 
					
						
							|  |  |  | 			common_element_end('div'); | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 		$this->settings_menu(); | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-06-23 18:36:41 -04:00
										 |  |  |     function settings_menu() { | 
					
						
							|  |  |  |         # action => array('prompt', 'title')
 | 
					
						
							| 
									
										
										
										
											2008-08-17 11:02:44 -04:00
										 |  |  | 		$menu = | 
					
						
							|  |  |  | 		  array('profilesettings' => | 
					
						
							|  |  |  | 				array(_('Profile'), | 
					
						
							|  |  |  | 					  _('Change your profile settings')), | 
					
						
							|  |  |  | 				'emailsettings' => | 
					
						
							|  |  |  | 				array(_('Email'), | 
					
						
							|  |  |  | 					  _('Change email handling')), | 
					
						
							|  |  |  | 				'openidsettings' => | 
					
						
							|  |  |  | 				array(_('OpenID'), | 
					
						
							|  |  |  | 					  _('Add or remove OpenIDs')), | 
					
						
							|  |  |  | 				'smssettings' => | 
					
						
							|  |  |  | 				array(_('SMS'), | 
					
						
							|  |  |  | 					  _('Updates by SMS')), | 
					
						
							|  |  |  | 				'imsettings' => | 
					
						
							|  |  |  | 				array(_('IM'), | 
					
						
							| 
									
										
										
										
											2008-08-21 23:41:57 -04:00
										 |  |  | 					  _('Updates by instant messenger (IM)')), | 
					
						
							|  |  |  | 				'twittersettings' => | 
					
						
							|  |  |  | 				array(_('Twitter'), | 
					
						
							| 
									
										
										
										
											2008-11-06 15:59:26 -05:00
										 |  |  | 					  _('Twitter integration options')), | 
					
						
							|  |  |  | 				'othersettings' => | 
					
						
							|  |  |  | 				array(_('Other'), | 
					
						
							|  |  |  | 					  _('Other options'))); | 
					
						
							| 
									
										
										
										
											2008-08-17 11:02:44 -04:00
										 |  |  | 		 | 
					
						
							| 
									
										
										
										
											2008-07-08 05:45:31 -04:00
										 |  |  |         $action = $this->trimmed('action'); | 
					
						
							|  |  |  |         common_element_start('ul', array('id' => 'nav_views')); | 
					
						
							|  |  |  |         foreach ($menu as $menuaction => $menudesc) { | 
					
						
							| 
									
										
										
										
											2008-09-22 17:40:03 -04:00
										 |  |  | 			if ($menuaction == 'imsettings' && | 
					
						
							|  |  |  | 				!common_config('xmpp', 'enabled')) { | 
					
						
							|  |  |  | 				continue; | 
					
						
							|  |  |  | 			} | 
					
						
							| 
									
										
										
										
											2008-07-08 05:45:31 -04:00
										 |  |  |             common_menu_item(common_local_url($menuaction), | 
					
						
							| 
									
										
										
										
											2008-08-17 11:02:44 -04:00
										 |  |  |                     $menudesc[0], | 
					
						
							|  |  |  |                     $menudesc[1], | 
					
						
							| 
									
										
										
										
											2008-07-08 05:45:31 -04:00
										 |  |  |                     $action == $menuaction); | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |         common_element_end('ul'); | 
					
						
							| 
									
										
										
										
											2008-06-23 18:36:41 -04:00
										 |  |  |     } | 
					
						
							| 
									
										
										
										
											2008-05-15 12:28:44 -04:00
										 |  |  | } |