* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
* @link http://status.net/
*/
-
class UserDesignSettingsAction extends DesignSettingsAction
{
/**
*
* @return string Title of the page
*/
-
function title()
{
+ // TRANS: Title for profile design page.
return _('Profile design');
}
*
* @return instructions for use
*/
-
function getInstructions()
{
+ // TRANS: Instructions for Profile design page.
return _('Customize the way your profile looks ' .
'with a background image and a colour palette of your choice.');
}
*
* @return Design
*/
-
function getWorkingDesign()
{
$user = common_current_user();
*
* @return void
*/
-
function showContent()
{
$design = $this->getWorkingDesign();
$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();
+ }
+
/**
* Save or update the user's design settings
*
* @return void
*/
-
function saveDesign()
{
+ $this->saveDesignPreferences();
+
foreach ($this->args as $key => $val) {
if (preg_match('/(#ho|ho)Td.*g/i', $val)) {
$this->sethd();
$tile = true;
}
- $user = common_current_user();
+ $user = common_current_user();
+
$design = $user->getDesign();
if (!empty($design)) {
-
$original = clone($design);
$design->backgroundcolor = $bgcolor->intValue();
if ($result === false) {
common_log_db_error($design, 'UPDATE', __FILE__);
- $this->showForm(_('Couldn\'t update your design.'));
+ // TRANS: Form validation error on Profile design page when updating design settings has failed.
+ $this->showForm(_('Could not update your design.'));
return;
}
-
// update design
} else {
-
$user->query('BEGIN');
// save new design
if (empty($id)) {
common_log_db_error($id, 'INSERT', __FILE__);
+ // TRANS: Form validation error on Profile design page when saving design settings has failed.
$this->showForm(_('Unable to save your design settings.'));
return;
}
if (empty($result)) {
common_log_db_error($original, 'UPDATE', __FILE__);
+ // TRANS: Form validation error on Profile design page when saving design settings has failed.
$this->showForm(_('Unable to save your design settings.'));
$user->query('ROLLBACK');
return;
$this->saveBackgroundImage($design);
+ // TRANS: Confirmation message on Profile design page when saving design settings has succeeded.
$this->showForm(_('Design preferences saved.'), true);
}
*
* @return nothing
*/
-
function sethd()
{
-
$user = common_current_user();
$design = $user->getDesign();
if (empty($id)) {
common_log_db_error($id, 'INSERT', __FILE__);
+ // TRANS: Form validation error on Profile design page when saving design settings has failed.
$this->showForm(_('Unable to save your design settings.'));
return;
}
if (empty($result)) {
common_log_db_error($original, 'UPDATE', __FILE__);
+ // TRANS: Form validation error on Profile design page when updating design settings has failed.
$this->showForm(_('Unable to save your design settings.'));
$user->query('ROLLBACK');
return;
$this->saveBackgroundImage($design);
+ // TRANS: Succes message on Profile design page when finding an easter egg.
$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__);
+ // TRANS: Server exception thrown on Profile design page when updating design settings fails.
+ throw new ServerException(_('Could not update user.'));
+ }
+ }
+}
+
+class UserDesignForm extends DesignForm
+{
+ function __construct($out, $design, $actionurl)
+ {
+ parent::__construct($out, $design, $actionurl);
+ }
+
+ /**
+ * Legend of the Form
+ *
+ * @return void
+ */
+ function formLegend()
+ {
+ // TRANS: Form legend on Profile design page.
+ $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');
+ // TRANS: Checkbox label on Profile design page.
+ $this->out->checkbox('viewdesigns', _('View profile designs'),
+ // TRANS: Title for checkbox on Profile design page.
+ - $user->viewdesigns, _('Show or hide profile designs.'));
+ $this->out->elementEnd('li');
+ $this->out->elementEnd('ul');
+
+ $this->out->elementEnd('fieldset');
+
+ $this->out->elementStart('fieldset');
+ // TRANS: Form legend on Profile design page for form to choose a background image.
+ $this->out->element('legend', null, _('Background file'));
+
+ parent::formData();
+ }
}