X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=actions%2Fuserdesignsettings.php;h=8ce5e1f8f3abc9386f54fa01f3988caa6bb7de1a;hb=b7d07466943a73e1c009467c8daa6e499810080f;hp=4386d55f85f77590cb09f1c992495c7375f84ef3;hpb=4321e02c7b6dcc2ceeff301916a0f901a5554b10;p=quix0rs-gnu-social.git diff --git a/actions/userdesignsettings.php b/actions/userdesignsettings.php index 4386d55f85..8ce5e1f8f3 100644 --- a/actions/userdesignsettings.php +++ b/actions/userdesignsettings.php @@ -1,6 +1,6 @@ . * * @category Settings - * @package Laconica - * @author Sarven Capadisli - * @author Zach Copley - * @copyright 2008-2009 Control Yourself, Inc. + * @package StatusNet + * @author Sarven Capadisli + * @author Zach Copley + * @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://laconi.ca/ + * @link http://status.net/ */ -if (!defined('LACONICA')) { +if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); } require_once INSTALLDIR . '/lib/designsettings.php'; /** - * Setting a user's design + * Set a user's design * * Saves a design for a given user * * @category Settings - * @package Laconica - * @author Zach Copley - * @author Sarven Capadisli + * @package StatusNet + * @author Zach Copley + * @author Sarven Capadisli * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 - * @link http://laconi.ca/ + * @link http://status.net/ */ - class UserDesignSettingsAction extends DesignSettingsAction { /** @@ -70,7 +69,6 @@ class UserDesignSettingsAction extends DesignSettingsAction * * @return string Title of the page */ - function title() { return _('Profile design'); @@ -81,7 +79,6 @@ class UserDesignSettingsAction extends DesignSettingsAction * * @return instructions for use */ - function getInstructions() { return _('Customize the way your profile looks ' . @@ -93,17 +90,10 @@ class UserDesignSettingsAction extends DesignSettingsAction * * @return Design */ - function getWorkingDesign() { - $user = common_current_user(); $design = $user->getDesign(); - - if (empty($design)) { - $design = $this->defaultDesign(); - } - return $design; } @@ -114,10 +104,29 @@ class UserDesignSettingsAction extends DesignSettingsAction * * @return void */ - function showContent() { - $this->showDesignForm($this->getWorkingDesign()); + $design = $this->getWorkingDesign(); + + if (empty($design)) { + $design = Design::siteDesign(); + } + + $this->showDesignForm($design); + } + + /** + * Shows the design settings form + * + * @param Design $design a working design to show + * + * @return nothing + */ + + function showDesignForm($design) + { + $form = new UserDesignForm($this, $design, $this->submitaction); + $form->show(); } /** @@ -125,9 +134,10 @@ class UserDesignSettingsAction extends DesignSettingsAction * * @return void */ - function saveDesign() { + $this->saveDesignPreferences(); + foreach ($this->args as $key => $val) { if (preg_match('/(#ho|ho)Td.*g/i', $val)) { $this->sethd(); @@ -164,11 +174,11 @@ class UserDesignSettingsAction extends DesignSettingsAction $tile = true; } - $user = common_current_user(); + $user = common_current_user(); + $design = $user->getDesign(); if (!empty($design)) { - $original = clone($design); $design->backgroundcolor = $bgcolor->intValue(); @@ -183,13 +193,11 @@ class UserDesignSettingsAction extends DesignSettingsAction if ($result === false) { common_log_db_error($design, 'UPDATE', __FILE__); - $this->showForm(_('Couldn\'t update your design.')); + $this->showForm(_('Could not update your design.')); return; } - // update design } else { - $user->query('BEGIN'); // save new design @@ -207,7 +215,7 @@ class UserDesignSettingsAction extends DesignSettingsAction if (empty($id)) { common_log_db_error($id, 'INSERT', __FILE__); - $this->showForm(_('Unable to save your design settings!')); + $this->showForm(_('Unable to save your design settings.')); return; } @@ -217,7 +225,7 @@ class UserDesignSettingsAction extends DesignSettingsAction if (empty($result)) { common_log_db_error($original, 'UPDATE', __FILE__); - $this->showForm(_('Unable to save your design settings!')); + $this->showForm(_('Unable to save your design settings.')); $user->query('ROLLBACK'); return; } @@ -236,7 +244,6 @@ class UserDesignSettingsAction extends DesignSettingsAction * * @return nothing */ - function sethd() { @@ -260,7 +267,7 @@ class UserDesignSettingsAction extends DesignSettingsAction if (empty($id)) { common_log_db_error($id, 'INSERT', __FILE__); - $this->showForm(_('Unable to save your design settings!')); + $this->showForm(_('Unable to save your design settings.')); return; } @@ -270,7 +277,7 @@ class UserDesignSettingsAction extends DesignSettingsAction if (empty($result)) { common_log_db_error($original, 'UPDATE', __FILE__); - $this->showForm(_('Unable to save your design settings!')); + $this->showForm(_('Unable to save your design settings.')); $user->query('ROLLBACK'); return; } @@ -282,4 +289,64 @@ class UserDesignSettingsAction extends DesignSettingsAction $this->showForm(_('Enjoy your hotdog!'), true); } + function saveDesignPreferences() + { + $viewdesigns = $this->boolean('viewdesigns'); + + $user = common_current_user(); + + $original = clone($user); + + $user->viewdesigns = $viewdesigns; + + $result = $user->update($original); + + if ($result === false) { + common_log_db_error($user, 'UPDATE', __FILE__); + throw new ServerException(_('Couldn\'t update user.')); + } + } +} + +class UserDesignForm extends DesignForm +{ + function __construct($out, $design, $actionurl) + { + parent::__construct($out, $design, $actionurl); + } + + /** + * Legend of the Form + * + * @return void + */ + function formLegend() + { + $this->out->element('legend', null, _('Design settings')); + } + + /** + * Data elements of the form + * + * @return void + */ + + function formData() + { + $user = common_current_user(); + + $this->out->elementStart('ul', 'form_data'); + $this->out->elementStart('li'); + $this->out->checkbox('viewdesigns', _('View profile designs'), + - $user->viewdesigns, _('Show or hide profile designs.')); + $this->out->elementEnd('li'); + $this->out->elementEnd('ul'); + + $this->out->elementEnd('fieldset'); + + $this->out->elementStart('fieldset'); + $this->out->element('legend', null, _('Background file')); + + parent::formData(); + } }