X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=lib%2Fdesignsettings.php;h=d7da0b77d8cf3ca2811e1c35c8ce0d05c7d3c7b9;hb=1fdc72f5956f00c736f7761aead4abd8da192eda;hp=820d534f23eadc4d9ecb60d8a3d54e7067c6611e;hpb=9235c1437e542d2b565d2d2d36fe2b7561e4d5f7;p=quix0rs-gnu-social.git diff --git a/lib/designsettings.php b/lib/designsettings.php index 820d534f23..d7da0b77d8 100644 --- a/lib/designsettings.php +++ b/lib/designsettings.php @@ -48,10 +48,8 @@ require_once INSTALLDIR . '/lib/webcolor.php'; * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ - class DesignSettingsAction extends AccountSettingsAction { - var $submitaction = null; /** @@ -59,9 +57,9 @@ class DesignSettingsAction extends AccountSettingsAction * * @return string Title of the page */ - function title() { + // TRANS: Page title for profile design page. return _('Profile design'); } @@ -70,9 +68,9 @@ class DesignSettingsAction extends AccountSettingsAction * * @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.'); } @@ -84,10 +82,8 @@ class DesignSettingsAction extends AccountSettingsAction * * @return nothing */ - function showDesignForm($design) { - $this->elementStart('form', array('method' => 'post', 'enctype' => 'multipart/form-data', 'id' => 'form_settings_design', @@ -98,24 +94,27 @@ class DesignSettingsAction extends AccountSettingsAction $this->elementStart('fieldset', array('id' => 'settings_design_background-image')); + // TRANS: Fieldset legend on profile design page. $this->element('legend', null, _('Change background image')); $this->elementStart('ul', 'form_data'); $this->elementStart('li'); + $this->element('input', array('name' => 'MAX_FILE_SIZE', + 'type' => 'hidden', + 'id' => 'MAX_FILE_SIZE', + 'value' => ImageFile::maxFileSizeInt())); $this->element('label', array('for' => 'design_background-image_file'), + // TRANS: Label in form on profile design page. + // TRANS: Field contains file name on user's computer that could be that user's custom profile background image. _('Upload file')); $this->element('input', array('name' => 'design_background-image_file', 'type' => 'file', 'id' => 'design_background-image_file')); + // TRANS: Instructions for form on profile design page. $this->element('p', 'form_guide', _('You can upload your personal ' . - 'background image. The maximum file size is 2Mb.')); - $this->element('input', array('name' => 'MAX_FILE_SIZE', - 'type' => 'hidden', - 'id' => 'MAX_FILE_SIZE', - 'value' => ImageFile::maxFileSizeInt())); + 'background image. The maximum file size is 2MB.')); $this->elementEnd('li'); if (!empty($design->backgroundimage)) { - $this->elementStart('li', array('id' => 'design_background-image_onoff')); @@ -136,7 +135,8 @@ class DesignSettingsAction extends AccountSettingsAction $this->element('label', array('for' => 'design_background-image_on', 'class' => 'radio'), - _('On')); + // TRANS: Radio button on profile design page that will enable use of the uploaded profile image. + _m('RADIO','On')); $attrs = array('name' => 'design_background-image_onoff', 'type' => 'radio', @@ -152,12 +152,16 @@ class DesignSettingsAction extends AccountSettingsAction $this->element('label', array('for' => 'design_background-image_off', 'class' => 'radio'), - _('Off')); + // TRANS: Radio button on profile design page that will disable use of the uploaded profile image. + _m('RADIO','Off')); + // TRANS: Form guide for a set of radio buttons on the profile design page that will enable or disable + // TRANS: use of the uploaded profile image. $this->element('p', 'form_guide', _('Turn background image on or off.')); $this->elementEnd('li'); $this->elementStart('li'); $this->checkbox('design_background-image_repeat', + // TRANS: Checkbox label on profile design page that will cause the profile image to be tiled. _('Tile background image'), ($design->disposition & BACKGROUND_TILE) ? true : false); $this->elementEnd('li'); @@ -167,14 +171,15 @@ class DesignSettingsAction extends AccountSettingsAction $this->elementEnd('fieldset'); $this->elementStart('fieldset', array('id' => 'settings_design_color')); + // TRANS: Fieldset legend on profile design page to change profile page colours. $this->element('legend', null, _('Change colours')); $this->elementStart('ul', 'form_data'); try { - $bgcolor = new WebColor($design->backgroundcolor); $this->elementStart('li'); + // TRANS: Label on profile design page for setting a profile page background colour. $this->element('label', array('for' => 'swatch-1'), _('Background')); $this->element('input', array('name' => 'design_background', 'type' => 'text', @@ -188,6 +193,7 @@ class DesignSettingsAction extends AccountSettingsAction $ccolor = new WebColor($design->contentcolor); $this->elementStart('li'); + // TRANS: Label on profile design page for setting a profile page content colour. $this->element('label', array('for' => 'swatch-2'), _('Content')); $this->element('input', array('name' => 'design_content', 'type' => 'text', @@ -201,6 +207,7 @@ class DesignSettingsAction extends AccountSettingsAction $sbcolor = new WebColor($design->sidebarcolor); $this->elementStart('li'); + // TRANS: Label on profile design page for setting a profile page sidebar colour. $this->element('label', array('for' => 'swatch-3'), _('Sidebar')); $this->element('input', array('name' => 'design_sidebar', 'type' => 'text', @@ -214,6 +221,7 @@ class DesignSettingsAction extends AccountSettingsAction $tcolor = new WebColor($design->textcolor); $this->elementStart('li'); + // TRANS: Label on profile design page for setting a profile page text colour. $this->element('label', array('for' => 'swatch-4'), _('Text')); $this->element('input', array('name' => 'design_text', 'type' => 'text', @@ -227,6 +235,7 @@ class DesignSettingsAction extends AccountSettingsAction $lcolor = new WebColor($design->linkcolor); $this->elementStart('li'); + // TRANS: Label on profile design page for setting a profile page links colour. $this->element('label', array('for' => 'swatch-5'), _('Links')); $this->element('input', array('name' => 'design_links', 'type' => 'text', @@ -244,16 +253,22 @@ class DesignSettingsAction extends AccountSettingsAction $this->elementEnd('ul'); $this->elementEnd('fieldset'); + // TRANS: Button text on profile design page to immediately reset all colour settings to default. $this->submit('defaults', _('Use defaults'), 'submit form_action-default', + // TRANS: Title for button on profile design page to reset all colour settings to default. 'defaults', _('Restore default designs')); $this->element('input', array('id' => 'settings_design_reset', 'type' => 'reset', - 'value' => 'Reset', + // TRANS: Button text on profile design page to reset all colour settings to default without saving. + 'value' => _m('BUTTON','Reset'), 'class' => 'submit form_action-primary', + // TRANS: Title for button on profile design page to reset all colour settings to default without saving. 'title' => _('Reset back to default'))); - $this->submit('save', _('Save'), 'submit form_action-secondary', + // TRANS: Button text on profile design page to save settings. + $this->submit('save', _m('BUTTON','Save'), 'submit form_action-secondary', + // TRANS: Title for button on profile design page to save settings. 'save', _('Save design')); $this->elementEnd('fieldset'); @@ -268,20 +283,24 @@ class DesignSettingsAction extends AccountSettingsAction * * @return void */ - function handlePost() { - // XXX: Robin's workaround for a bug in PHP where $_POST - // and $_FILE are empty in the case that the uploaded - // file is bigger than PHP is configured to handle. - if ($_SERVER['REQUEST_METHOD'] == 'POST') { - if (empty($_POST) && $_SERVER['CONTENT_LENGTH']) { - $msg = _('The server was unable to handle that much POST ' . - 'data (%s bytes) due to its current configuration.'); + // Workaround for PHP returning empty $_POST and $_FILES when POST + // length > post_max_size in php.ini + + if (empty($_FILES) + && empty($_POST) + && ($_SERVER['CONTENT_LENGTH'] > 0) + ) { + // TRANS: Form validation error in design settings form. POST should remain untranslated. + $msg = _m('The server was unable to handle that much POST data (%s byte) due to its current configuration.', + 'The server was unable to handle that much POST data (%s bytes) due to its current configuration.', + intval($_SERVER['CONTENT_LENGTH'])); $this->showForm(sprintf($msg, $_SERVER['CONTENT_LENGTH'])); + return; } } @@ -298,6 +317,7 @@ class DesignSettingsAction extends AccountSettingsAction } else if ($this->arg('defaults')) { $this->restoreDefaults(); } else { + // TRANS: Unknown form validation error in design settings form. $this->showForm(_('Unexpected form submission.')); } } @@ -307,11 +327,10 @@ class DesignSettingsAction extends AccountSettingsAction * * @return void */ - function showStylesheets() { parent::showStylesheets(); - $this->cssLink('css/farbtastic.css','base','screen, projection, tv'); + $this->cssLink('js/farbtastic/farbtastic.css',null,'screen, projection, tv'); } /** @@ -319,60 +338,16 @@ class DesignSettingsAction extends AccountSettingsAction * * @return void */ - function showScripts() { parent::showScripts(); - $this->script('js/farbtastic/farbtastic.js'); - $this->script('js/userdesign.go.js'); + $this->script('farbtastic/farbtastic.js'); + $this->script('userdesign.go.js'); $this->autofocus('design_background-image_file'); } - /** - * Get a default design - * - * @return Design design - */ - - function defaultDesign() - { - $defaults = common_config('site', 'design'); - - $design = new Design(); - - try { - - $color = new WebColor(); - - $color->parseColor($defaults['backgroundcolor']); - $design->backgroundcolor = $color->intValue(); - - $color->parseColor($defaults['contentcolor']); - $design->contentcolor = $color->intValue(); - - $color->parseColor($defaults['sidebarcolor']); - $design->sidebarcolor = $color->intValue(); - - $color->parseColor($defaults['textcolor']); - $design->textcolor = $color->intValue(); - - $color->parseColor($defaults['linkcolor']); - $design->linkcolor = $color->intValue(); - - $design->backgroundimage = $defaults['backgroundimage']; - - $design->disposition = $defaults['disposition']; - - } catch (WebColorException $e) { - common_log(LOG_ERR, _('Bad default color settings: ' . - $e->getMessage())); - } - - return $design; - } - /** * Save the background image, if any, and set its disposition * @@ -380,10 +355,8 @@ class DesignSettingsAction extends AccountSettingsAction * * @return nothing */ - function saveBackgroundImage($design) { - // Now that we have a Design ID we can add a file to the design. // XXX: This is an additional DB hit, but figured having the image // associated with the Design rather than the User was worth @@ -428,6 +401,7 @@ class DesignSettingsAction extends AccountSettingsAction if ($result === false) { common_log_db_error($design, 'UPDATE', __FILE__); + // TRANS: Error message displayed if design settings could not be saved. $this->showForm(_('Couldn\'t update your design.')); return; } @@ -439,30 +413,23 @@ class DesignSettingsAction extends AccountSettingsAction * * @return nothing */ - function restoreDefaults() { - $design = $this->getWorkingDesign(); - $default = $this->defaultDesign(); - $original = clone($design); - - $design->backgroundcolor = $default->backgroundcolor; - $design->contentcolor = $default->contentcolor; - $design->sidebarcolor = $default->sidebarcolor; - $design->textcolor = $default->textcolor; - $design->linkcolor = $default->linkcolor; + $design = $this->getWorkingDesign(); - $design->setDisposition(false, true, false); + if (!empty($design)) { - $result = $design->update($original); + $result = $design->delete(); - if ($result === false) { - common_log_db_error($design, 'UPDATE', __FILE__); - $this->showForm(_('Couldn\'t update your design.')); - return; + if ($result === false) { + common_log_db_error($design, 'DELETE', __FILE__); + // TRANS: Error message displayed if design settings could not be saved after clicking "Use defaults". + $this->showForm(_('Couldn\'t update your design.')); + return; + } } + // TRANS: Success message displayed if design settings were saved after clicking "Use defaults". $this->showForm(_('Design defaults restored.'), true); } - }