diff options
-rw-r--r-- | actions/groupdesignsettings.php | 31 | ||||
-rw-r--r-- | actions/userdesignsettings.php | 41 | ||||
-rw-r--r-- | lib/designsettings.php | 51 |
3 files changed, 99 insertions, 24 deletions
diff --git a/actions/groupdesignsettings.php b/actions/groupdesignsettings.php index 79c192ac4..df34ecb42 100644 --- a/actions/groupdesignsettings.php +++ b/actions/groupdesignsettings.php @@ -34,19 +34,37 @@ if (!defined('LACONICA')) { require_once INSTALLDIR . '/lib/designsettings.php'; +/** + * Setting a groups's design + * + * Saves a design for a given group + * + * @category Settings + * @package Laconica + * @author Zach Copley <zach@controlyourself.ca> + * @author Sarven Capadisli <csarven@controlyourself.ca> + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://laconi.ca/ + */ + class GroupDesignSettingsAction extends DesignSettingsAction { var $group = null; /** - * Prepare to run + * Sets the right action for the form, and passes request args into + * the base action + * + * @param array $args misc. arguments + * + * @return boolean true */ function prepare($args) { parent::prepare($args); - if (!common_config('inboxes','enabled')) { + if (!common_config('inboxes', 'enabled')) { $this->serverError(_('Inboxes must be enabled for groups to work')); return false; } @@ -57,7 +75,7 @@ class GroupDesignSettingsAction extends DesignSettingsAction } $nickname_arg = $this->trimmed('nickname'); - $nickname = common_canonical_nickname($nickname_arg); + $nickname = common_canonical_nickname($nickname_arg); // Permanent redirect on non-canonical nickname @@ -158,7 +176,8 @@ class GroupDesignSettingsAction extends DesignSettingsAction * @return Design */ - function getWorkingDesign() { + function getWorkingDesign() + { $design = null; @@ -273,9 +292,9 @@ class GroupDesignSettingsAction extends DesignSettingsAction return; } - $original = clone($this->group); + $original = clone($this->group); $this->group->design_id = $id; - $result = $this->group->update($original); + $result = $this->group->update($original); if (empty($result)) { common_log_db_error($original, 'UPDATE', __FILE__); diff --git a/actions/userdesignsettings.php b/actions/userdesignsettings.php index ec688d36d..4386d55f8 100644 --- a/actions/userdesignsettings.php +++ b/actions/userdesignsettings.php @@ -34,8 +34,29 @@ if (!defined('LACONICA')) { require_once INSTALLDIR . '/lib/designsettings.php'; +/** + * Setting a user's design + * + * Saves a design for a given user + * + * @category Settings + * @package Laconica + * @author Zach Copley <zach@controlyourself.ca> + * @author Sarven Capadisli <csarven@controlyourself.ca> + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://laconi.ca/ + */ + class UserDesignSettingsAction extends DesignSettingsAction { + /** + * Sets the right action for the form, and passes request args into + * the base action + * + * @param array $args misc. arguments + * + * @return boolean true + */ function prepare($args) { @@ -73,9 +94,10 @@ class UserDesignSettingsAction extends DesignSettingsAction * @return Design */ - function getWorkingDesign() { + function getWorkingDesign() + { - $user = common_current_user(); + $user = common_current_user(); $design = $user->getDesign(); if (empty($design)) { @@ -142,7 +164,7 @@ class UserDesignSettingsAction extends DesignSettingsAction $tile = true; } - $user = common_current_user(); + $user = common_current_user(); $design = $user->getDesign(); if (!empty($design)) { @@ -189,9 +211,9 @@ class UserDesignSettingsAction extends DesignSettingsAction return; } - $original = clone($user); + $original = clone($user); $user->design_id = $id; - $result = $user->update($original); + $result = $user->update($original); if (empty($result)) { common_log_db_error($original, 'UPDATE', __FILE__); @@ -215,9 +237,10 @@ class UserDesignSettingsAction extends DesignSettingsAction * @return nothing */ - function sethd() { + function sethd() + { - $user = common_current_user(); + $user = common_current_user(); $design = $user->getDesign(); $user->query('BEGIN'); @@ -241,9 +264,9 @@ class UserDesignSettingsAction extends DesignSettingsAction return; } - $original = clone($user); + $original = clone($user); $user->design_id = $id; - $result = $user->update($original); + $result = $user->update($original); if (empty($result)) { common_log_db_error($original, 'UPDATE', __FILE__); diff --git a/lib/designsettings.php b/lib/designsettings.php index 476621c07..fbffdb208 100644 --- a/lib/designsettings.php +++ b/lib/designsettings.php @@ -35,6 +35,20 @@ if (!defined('LACONICA')) { require_once INSTALLDIR . '/lib/accountsettingsaction.php'; require_once INSTALLDIR . '/lib/webcolor.php'; +/** + * Base class for setting a user or group design + * + * Shows the design setting form and also handles some things like saving + * background images, and fetching a default design + * + * @category Settings + * @package Laconica + * @author Zach Copley <zach@controlyourself.ca> + * @author Sarven Capadisli <csarven@controlyourself.ca> + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://laconi.ca/ + */ + class DesignSettingsAction extends AccountSettingsAction { @@ -63,6 +77,14 @@ class DesignSettingsAction extends AccountSettingsAction 'with a background image and a colour palette of your choice.'); } + /** + * Shows the design settings form + * + * @param Design $design a working design to show + * + * @return nothing + */ + function showDesignForm($design) { @@ -94,7 +116,8 @@ class DesignSettingsAction extends AccountSettingsAction if (!empty($design->backgroundimage)) { - $this->elementStart('li', array('id' => 'design_background-image_onoff')); + $this->elementStart('li', array('id' => + 'design_background-image_onoff')); $this->element('img', array('src' => Design::url($design->backgroundimage))); @@ -136,7 +159,7 @@ class DesignSettingsAction extends AccountSettingsAction $this->elementStart('li'); $this->checkbox('design_background-image_repeat', _('Tile background image'), - ($design->disposition & BACKGROUND_TILE) ? true : false ); + ($design->disposition & BACKGROUND_TILE) ? true : false); $this->elementEnd('li'); } @@ -362,10 +385,13 @@ class DesignSettingsAction extends AccountSettingsAction /** * Save the background image, if any, and set its disposition * + * @param Design $design a working design to attach the img to + * * @return nothing */ - function saveBackgroundImage($design) { + 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 @@ -378,12 +404,12 @@ class DesignSettingsAction extends AccountSettingsAction $filepath = null; try { - $imagefile = - ImageFile::fromUpload('design_background-image_file'); - } catch (Exception $e) { - $this->showForm($e->getMessage()); - return; - } + $imagefile = + ImageFile::fromUpload('design_background-image_file'); + } catch (Exception $e) { + $this->showForm($e->getMessage()); + return; + } $filename = Design::filename($design->id, image_type_to_extension($imagefile->type), @@ -393,7 +419,14 @@ class DesignSettingsAction extends AccountSettingsAction move_uploaded_file($imagefile->filepath, $filepath); + // delete any old backround img laying around + + if (isset($design->backgroundimage)) { + @unlink(Design::path($design->backgroundimage)); + } + $original = clone($design); + $design->backgroundimage = $filename; // default to on, no tile |