| 
									
										
										
										
											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
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-23 14:49:23 -05:00
										 |  |  | class SettingsAction extends Action | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2008-05-15 12:28:44 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-23 14:33:23 -05:00
										 |  |  |     function handle($args) | 
					
						
							|  |  |  |     { | 
					
						
							| 
									
										
										
										
											2008-06-23 18:36:41 -04:00
										 |  |  |         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()) { | 
					
						
							| 
									
										
										
										
											2008-12-23 14:19:07 -05:00
										 |  |  |             # Cookie theft means that automatic logins can't
 | 
					
						
							|  |  |  |             # change important settings or see private info, and
 | 
					
						
							|  |  |  |             # _all_ our settings are important
 | 
					
						
							| 
									
										
										
										
											2008-06-23 22:52:34 -04:00
										 |  |  |             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!
 | 
					
						
							| 
									
										
										
										
											2008-12-23 14:33:23 -05:00
										 |  |  |     function handle_post() | 
					
						
							|  |  |  |     { | 
					
						
							| 
									
										
										
										
											2008-06-23 18:36:41 -04:00
										 |  |  |         return false; | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2008-05-20 15:14:12 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-23 14:33:23 -05:00
										 |  |  |     function show_form($msg=null, $success=false) | 
					
						
							|  |  |  |     { | 
					
						
							| 
									
										
										
										
											2008-06-23 18:36:41 -04:00
										 |  |  |         return false; | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2008-05-17 08:20:45 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-23 14:33:23 -05:00
										 |  |  |     function message($msg, $success) | 
					
						
							|  |  |  |     { | 
					
						
							| 
									
										
										
										
											2008-06-23 18:36:41 -04:00
										 |  |  |         if ($msg) { | 
					
						
							|  |  |  |             common_element('div', ($success) ? 'success' : 'error', | 
					
						
							|  |  |  |                            $msg); | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2008-05-20 15:14:12 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-25 09:46:01 -05:00
										 |  |  |     function form_header($title, $msg=NULL, $success=false)  | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         common_show_header($title, | 
					
						
							|  |  |  |                            array($this, 'show_header'), | 
					
						
							|  |  |  |                            array($msg, $success), | 
					
						
							|  |  |  |                            array($this, 'show_top')); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     function show_header()  | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         common_element('link', array('rel' => 'stylesheet', | 
					
						
							|  |  |  |                                      'type' => 'text/css', | 
					
						
							|  |  |  |                                      'href' => common_path('js/jcrop/jquery.Jcrop.css?version='.LACONICA_VERSION), | 
					
						
							|  |  |  |                                      'media' => 'screen, projection, tv')); | 
					
						
							|  |  |  |         common_element('script', array('type' => 'text/javascript', | 
					
						
							|  |  |  |                                        'src' => common_path('js/jcrop/jquery.Jcrop.pack.js'))); | 
					
						
							|  |  |  |         common_element('script', array('type' => 'text/javascript', | 
					
						
							|  |  |  |                                        'src' => common_path('js/jcrop/jquery.Jcrop.go.js'))); | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2008-06-30 13:03:42 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-23 14:33:23 -05:00
										 |  |  |     function show_top($arr) | 
					
						
							|  |  |  |     { | 
					
						
							| 
									
										
										
										
											2008-12-23 14:19:07 -05:00
										 |  |  |         $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-30 13:03:42 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-23 14:33:23 -05:00
										 |  |  |     function settings_menu() | 
					
						
							|  |  |  |     { | 
					
						
							| 
									
										
										
										
											2008-06-23 18:36:41 -04:00
										 |  |  |         # action => array('prompt', 'title')
 | 
					
						
							| 
									
										
										
										
											2008-12-23 14:19:07 -05: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'), | 
					
						
							|  |  |  |                       _('Updates by instant messenger (IM)')), | 
					
						
							|  |  |  |                 'twittersettings' => | 
					
						
							|  |  |  |                 array(_('Twitter'), | 
					
						
							|  |  |  |                       _('Twitter integration options')), | 
					
						
							|  |  |  |                 'othersettings' => | 
					
						
							|  |  |  |                 array(_('Other'), | 
					
						
							|  |  |  |                       _('Other options'))); | 
					
						
							|  |  |  |          | 
					
						
							| 
									
										
										
										
											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-12-23 14:19:07 -05: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
										 |  |  | } |