forked from GNUsocial/gnu-social
let users set location prefs from profile form
This commit is contained in:
parent
39bdda9c7e
commit
e009f613d3
@ -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__);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user