From 76c0e3169b317137704ae094dec7bf955fe96a13 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Sat, 11 Sep 2010 16:22:03 -0400 Subject: move othersettings to urlsettings --- actions/othersettings.php | 229 ------------------------------------------ actions/urlsettings.php | 229 ++++++++++++++++++++++++++++++++++++++++++ lib/accountsettingsaction.php | 8 +- lib/router.php | 2 +- 4 files changed, 234 insertions(+), 234 deletions(-) delete mode 100644 actions/othersettings.php create mode 100644 actions/urlsettings.php diff --git a/actions/othersettings.php b/actions/othersettings.php deleted file mode 100644 index 3f2d8df6b..000000000 --- a/actions/othersettings.php +++ /dev/null @@ -1,229 +0,0 @@ -. - * - * @category Settings - * @package StatusNet - * @author Robin Millette - * @author Evan Prodromou - * @copyright 2008-2009 StatusNet, Inc. - * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 - * @link http://status.net/ - */ - -if (!defined('STATUSNET') && !defined('LACONICA')) { - exit(1); -} - -require_once INSTALLDIR.'/lib/accountsettingsaction.php'; - -/** - * Miscellaneous settings actions - * - * Currently this just manages URL shortening. - * - * @category Settings - * @package StatusNet - * @author Robin Millette - * @author Zach Copley - * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 - * @link http://status.net/ - */ - -class OthersettingsAction extends AccountSettingsAction -{ - /** - * Title of the page - * - * @return string Title of the page - */ - - function title() - { - return _('Other settings'); - } - - /** - * Instructions for use - * - * @return instructions for use - */ - - function getInstructions() - { - return _('Manage various other options.'); - } - - function showScripts() - { - parent::showScripts(); - $this->autofocus('urlshorteningservice'); - } - - /** - * Content area of the page - * - * Shows a form for uploading an avatar. - * - * @return void - */ - - function showContent() - { - $user = common_current_user(); - - $this->elementStart('form', array('method' => 'post', - 'id' => 'form_settings_other', - 'class' => 'form_settings', - 'action' => - common_local_url('othersettings'))); - $this->elementStart('fieldset'); - $this->hidden('token', common_session_token()); - $this->elementStart('ul', 'form_data'); - - $shorteners = array(_('[none]') => array('freeService' => false)); - - Event::handle('GetUrlShorteners', array(&$shorteners)); - - $services = array(); - foreach($shorteners as $name=>$value) - { - $services[$name]=$name; - if($value['freeService']){ - $services[$name].=_(' (free service)'); - } - } - if($services) - { - asort($services); - - $this->elementStart('li'); - $this->dropdown('urlshorteningservice', _('Shorten URLs with'), - $services, _('Automatic shortening service to use.'), - false, $user->urlshorteningservice); - $this->elementEnd('li'); - } - $this->elementStart('li'); - $this->input('maxurllength', - _('URL longer than'), - (!is_null($this->arg('maxurllength'))) ? - $this->arg('maxurllength') : User_urlshortener_prefs::maxUrlLength($user), - _('URLs longer than this will be shortened.')); - $this->elementEnd('li'); - $this->elementStart('li'); - $this->input('maxnoticelength', - _('Text longer than'), - (!is_null($this->arg('maxnoticelength'))) ? - $this->arg('maxnoticelength') : User_urlshortener_prefs::maxNoticeLength($user), - _('URLs in notices longer than this will be shortened.')); - $this->elementEnd('li'); - $this->elementEnd('ul'); - $this->submit('save', _('Save')); - $this->elementEnd('fieldset'); - $this->elementEnd('form'); - } - - /** - * Handle a post - * - * Saves the changes to url-shortening prefs and shows a success or failure - * message. - * - * @return void - */ - - function handlePost() - { - // CSRF protection - $token = $this->trimmed('token'); - if (!$token || $token != common_session_token()) { - $this->showForm(_('There was a problem with your session token. '. - 'Try again, please.')); - return; - } - - $urlshorteningservice = $this->trimmed('urlshorteningservice'); - - if (!is_null($urlshorteningservice) && strlen($urlshorteningservice) > 50) { - $this->showForm(_('URL shortening service is too long (max 50 chars).')); - return; - } - - $maxurllength = $this->trimmed('maxurllength'); - - if (!Validate::number($maxurllength, array('min' => 0))) { - throw new ClientException(_('Invalid number for max url length.')); - } - - $maxnoticelength = $this->trimmed('maxnoticelength'); - - if (!Validate::number($maxnoticelength, array('min' => 0))) { - throw new ClientException(_('Invalid number for max notice length.')); - } - - $user = common_current_user(); - - assert(!is_null($user)); // should already be checked - - $user->query('BEGIN'); - - $original = clone($user); - - $user->urlshorteningservice = $urlshorteningservice; - - $result = $user->update($original); - - if ($result === false) { - common_log_db_error($user, 'UPDATE', __FILE__); - $this->serverError(_('Couldn\'t update user.')); - return; - } - - $prefs = User_urlshortener_prefs::getPrefs($user); - $orig = null; - - if (empty($prefs)) { - $prefs = new User_urlshortener_prefs(); - - $prefs->user_id = $user->id; - $prefs->created = common_sql_now(); - } else { - $orig = clone($prefs); - } - - $prefs->urlshorteningservice = $urlshorteningservice; - $prefs->maxurllength = $maxurllength; - $prefs->maxnoticelength = $maxnoticelength; - - if (!empty($orig)) { - $result = $prefs->update($orig); - } else { - $result = $prefs->insert(); - } - - if (!$result) { - throw new ServerException(_('Error saving user URL shortening preferences.')); - } - - $user->query('COMMIT'); - - $this->showForm(_('Preferences saved.'), true); - } -} diff --git a/actions/urlsettings.php b/actions/urlsettings.php new file mode 100644 index 000000000..dd191a807 --- /dev/null +++ b/actions/urlsettings.php @@ -0,0 +1,229 @@ +. + * + * @category Settings + * @package StatusNet + * @author Robin Millette + * @author Evan Prodromou + * @copyright 2008-2009 StatusNet, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://status.net/ + */ + +if (!defined('STATUSNET') && !defined('LACONICA')) { + exit(1); +} + +require_once INSTALLDIR.'/lib/accountsettingsaction.php'; + +/** + * Miscellaneous settings actions + * + * Currently this just manages URL shortening. + * + * @category Settings + * @package StatusNet + * @author Robin Millette + * @author Zach Copley + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://status.net/ + */ + +class UrlsettingsAction extends AccountSettingsAction +{ + /** + * Title of the page + * + * @return string Title of the page + */ + + function title() + { + return _('URL settings'); + } + + /** + * Instructions for use + * + * @return instructions for use + */ + + function getInstructions() + { + return _('Manage various other options.'); + } + + function showScripts() + { + parent::showScripts(); + $this->autofocus('urlshorteningservice'); + } + + /** + * Content area of the page + * + * Shows a form for uploading an avatar. + * + * @return void + */ + + function showContent() + { + $user = common_current_user(); + + $this->elementStart('form', array('method' => 'post', + 'id' => 'form_settings_other', + 'class' => 'form_settings', + 'action' => + common_local_url('urlsettings'))); + $this->elementStart('fieldset'); + $this->hidden('token', common_session_token()); + $this->elementStart('ul', 'form_data'); + + $shorteners = array(_('[none]') => array('freeService' => false)); + + Event::handle('GetUrlShorteners', array(&$shorteners)); + + $services = array(); + foreach($shorteners as $name=>$value) + { + $services[$name]=$name; + if($value['freeService']){ + $services[$name].=_(' (free service)'); + } + } + if($services) + { + asort($services); + + $this->elementStart('li'); + $this->dropdown('urlshorteningservice', _('Shorten URLs with'), + $services, _('Automatic shortening service to use.'), + false, $user->urlshorteningservice); + $this->elementEnd('li'); + } + $this->elementStart('li'); + $this->input('maxurllength', + _('URL longer than'), + (!is_null($this->arg('maxurllength'))) ? + $this->arg('maxurllength') : User_urlshortener_prefs::maxUrlLength($user), + _('URLs longer than this will be shortened.')); + $this->elementEnd('li'); + $this->elementStart('li'); + $this->input('maxnoticelength', + _('Text longer than'), + (!is_null($this->arg('maxnoticelength'))) ? + $this->arg('maxnoticelength') : User_urlshortener_prefs::maxNoticeLength($user), + _('URLs in notices longer than this will be shortened.')); + $this->elementEnd('li'); + $this->elementEnd('ul'); + $this->submit('save', _('Save')); + $this->elementEnd('fieldset'); + $this->elementEnd('form'); + } + + /** + * Handle a post + * + * Saves the changes to url-shortening prefs and shows a success or failure + * message. + * + * @return void + */ + + function handlePost() + { + // CSRF protection + $token = $this->trimmed('token'); + if (!$token || $token != common_session_token()) { + $this->showForm(_('There was a problem with your session token. '. + 'Try again, please.')); + return; + } + + $urlshorteningservice = $this->trimmed('urlshorteningservice'); + + if (!is_null($urlshorteningservice) && strlen($urlshorteningservice) > 50) { + $this->showForm(_('URL shortening service is too long (max 50 chars).')); + return; + } + + $maxurllength = $this->trimmed('maxurllength'); + + if (!Validate::number($maxurllength, array('min' => 0))) { + throw new ClientException(_('Invalid number for max url length.')); + } + + $maxnoticelength = $this->trimmed('maxnoticelength'); + + if (!Validate::number($maxnoticelength, array('min' => 0))) { + throw new ClientException(_('Invalid number for max notice length.')); + } + + $user = common_current_user(); + + assert(!is_null($user)); // should already be checked + + $user->query('BEGIN'); + + $original = clone($user); + + $user->urlshorteningservice = $urlshorteningservice; + + $result = $user->update($original); + + if ($result === false) { + common_log_db_error($user, 'UPDATE', __FILE__); + $this->serverError(_('Couldn\'t update user.')); + return; + } + + $prefs = User_urlshortener_prefs::getPrefs($user); + $orig = null; + + if (empty($prefs)) { + $prefs = new User_urlshortener_prefs(); + + $prefs->user_id = $user->id; + $prefs->created = common_sql_now(); + } else { + $orig = clone($prefs); + } + + $prefs->urlshorteningservice = $urlshorteningservice; + $prefs->maxurllength = $maxurllength; + $prefs->maxnoticelength = $maxnoticelength; + + if (!empty($orig)) { + $result = $prefs->update($orig); + } else { + $result = $prefs->insert(); + } + + if (!$result) { + throw new ServerException(_('Error saving user URL shortening preferences.')); + } + + $user->query('COMMIT'); + + $this->showForm(_('Preferences saved.'), true); + } +} diff --git a/lib/accountsettingsaction.php b/lib/accountsettingsaction.php index 57740f8b8..819f749f7 100644 --- a/lib/accountsettingsaction.php +++ b/lib/accountsettingsaction.php @@ -139,12 +139,12 @@ class AccountSettingsNav extends Widget $this->showMenuItem('userdesignsettings',_('Design'),$title); Event::handle('EndAccountSettingsDesignMenuItem', array($this, &$menu)); } - if(Event::handle('StartAccountSettingsOtherMenuItem', array($this, &$menu))){ + if(Event::handle('StartAccountSettingsUrlMenuItem', array($this, &$menu))){ // TRANS: Link title attribute in user account settings menu. - $title = _('Other options'); + $title = _('URL shortener settings'); // TRANS: Link description in user account settings menu. - $this->showMenuItem('othersettings',_('Other'),$title); - Event::handle('EndAccountSettingsOtherMenuItem', array($this, &$menu)); + $this->showMenuItem('urlsettings',_('URL'),$title); + Event::handle('EndAccountSettingsUrlMenuItem', array($this, &$menu)); } Event::handle('EndAccountSettingsNav', array(&$this->action)); diff --git a/lib/router.php b/lib/router.php index 86dd116c8..30f6c8cdc 100644 --- a/lib/router.php +++ b/lib/router.php @@ -172,7 +172,7 @@ class Router // settings foreach (array('profile', 'avatar', 'password', 'im', 'oauthconnections', - 'oauthapps', 'email', 'sms', 'userdesign', 'other') as $s) { + 'oauthapps', 'email', 'sms', 'userdesign', 'url') as $s) { $m->connect('settings/'.$s, array('action' => $s.'settings')); } -- cgit v1.2.3-54-g00ecf