let users set location prefs from profile form
This commit is contained in:
		@@ -133,11 +133,13 @@ class ProfilesettingsAction extends AccountSettingsAction
 | 
				
			|||||||
                         ($this->arg('location')) ? $this->arg('location') : $profile->location,
 | 
					                         ($this->arg('location')) ? $this->arg('location') : $profile->location,
 | 
				
			||||||
                         _('Where you are, like "City, State (or Region), Country"'));
 | 
					                         _('Where you are, like "City, State (or Region), Country"'));
 | 
				
			||||||
            $this->elementEnd('li');
 | 
					            $this->elementEnd('li');
 | 
				
			||||||
            $this->elementStart('li');
 | 
					            if (common_config('location', 'share') == 'user') {
 | 
				
			||||||
            $this->checkbox('sharelocation', _('Share my current location when posting notices'),
 | 
					                $this->elementStart('li');
 | 
				
			||||||
                            ($this->arg('sharelocation')) ?
 | 
					                $this->checkbox('sharelocation', _('Share my current location when posting notices'),
 | 
				
			||||||
                            $this->arg('sharelocation') : $user->shareLocation());
 | 
					                                ($this->arg('sharelocation')) ?
 | 
				
			||||||
            $this->elementEnd('li');
 | 
					                                $this->arg('sharelocation') : $user->shareLocation());
 | 
				
			||||||
 | 
					                $this->elementEnd('li');
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
            Event::handle('EndProfileFormData', array($this));
 | 
					            Event::handle('EndProfileFormData', array($this));
 | 
				
			||||||
            $this->elementStart('li');
 | 
					            $this->elementStart('li');
 | 
				
			||||||
            $this->input('tags', _('Tags'),
 | 
					            $this->input('tags', _('Tags'),
 | 
				
			||||||
@@ -323,6 +325,37 @@ class ProfilesettingsAction extends AccountSettingsAction
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
            $profile->profileurl = common_profile_url($nickname);
 | 
					            $profile->profileurl = common_profile_url($nickname);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            if (common_config('location', 'share') == 'user') {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                $exists = false;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                $prefs = User_location_prefs::staticGet('user_id', $user->id);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                if (empty($prefs)) {
 | 
				
			||||||
 | 
					                    $prefs = new User_location_prefs();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    $prefs->user_id = $user->id;
 | 
				
			||||||
 | 
					                    $prefs->created = common_sql_now();
 | 
				
			||||||
 | 
					                } else {
 | 
				
			||||||
 | 
					                    $exists = true;
 | 
				
			||||||
 | 
					                    $orig = clone($prefs);
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                $prefs->share_location = $this->boolean('sharelocation');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                if ($exists) {
 | 
				
			||||||
 | 
					                    $result = $prefs->update($orig);
 | 
				
			||||||
 | 
					                } else {
 | 
				
			||||||
 | 
					                    $result = $prefs->insert();
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                if ($result === false) {
 | 
				
			||||||
 | 
					                    common_log_db_error($prefs, ($exists) ? 'UPDATE' : 'INSERT', __FILE__);
 | 
				
			||||||
 | 
					                    $this->serverError(_('Couldn\'t save location prefs.'));
 | 
				
			||||||
 | 
					                    return;
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            common_debug('Old profile: ' . common_log_objstring($orig_profile), __FILE__);
 | 
					            common_debug('Old profile: ' . common_log_objstring($orig_profile), __FILE__);
 | 
				
			||||||
            common_debug('New profile: ' . common_log_objstring($profile), __FILE__);
 | 
					            common_debug('New profile: ' . common_log_objstring($profile), __FILE__);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user