forked from GNUsocial/gnu-social
		
	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