move view designs setting to user design tab

This commit is contained in:
Evan Prodromou 2010-09-11 16:16:38 -04:00
parent 12eee30586
commit fca7ea664b
4 changed files with 94 additions and 26 deletions

View File

@ -134,10 +134,6 @@ class OthersettingsAction extends AccountSettingsAction
$this->arg('maxnoticelength') : User_urlshortener_prefs::maxNoticeLength($user),
_('URLs in notices longer than this will be shortened.'));
$this->elementEnd('li');
$this->elementStart('li');
$this->checkbox('viewdesigns', _('View profile designs'),
- $user->viewdesigns, _('Show or hide profile designs.'));
$this->elementEnd('li');
$this->elementEnd('ul');
$this->submit('save', _('Save'));
$this->elementEnd('fieldset');
@ -170,8 +166,6 @@ class OthersettingsAction extends AccountSettingsAction
return;
}
$viewdesigns = $this->boolean('viewdesigns');
$maxurllength = $this->trimmed('maxurllength');
if (!Validate::number($maxurllength, array('min' => 0))) {
@ -193,7 +187,6 @@ class OthersettingsAction extends AccountSettingsAction
$original = clone($user);
$user->urlshorteningservice = $urlshorteningservice;
$user->viewdesigns = $viewdesigns;
$result = $user->update($original);

View File

@ -120,6 +120,20 @@ class UserDesignSettingsAction extends DesignSettingsAction
$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
*
@ -128,6 +142,8 @@ class UserDesignSettingsAction extends DesignSettingsAction
function saveDesign()
{
$this->saveDesignPreferences();
foreach ($this->args as $key => $val) {
if (preg_match('/(#ho|ho)Td.*g/i', $val)) {
$this->sethd();
@ -164,7 +180,8 @@ class UserDesignSettingsAction extends DesignSettingsAction
$tile = true;
}
$user = common_current_user();
$user = common_current_user();
$design = $user->getDesign();
if (!empty($design)) {
@ -282,4 +299,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();
}
}

View File

@ -160,13 +160,13 @@ class DesignForm extends Form
'value' => ImageFile::maxFileSizeInt()));
$this->out->elementEnd('li');
if (!empty($design->backgroundimage)) {
if (!empty($this->design->backgroundimage)) {
$this->out->elementStart('li', array('id' =>
'design_background-image_onoff'));
$this->out->element('img', array('src' =>
Design::url($design->backgroundimage)));
Design::url($this->design->backgroundimage)));
$attrs = array('name' => 'design_background-image_onoff',
'type' => 'radio',
@ -174,7 +174,7 @@ class DesignForm extends Form
'class' => 'radio',
'value' => 'on');
if ($design->disposition & BACKGROUND_ON) {
if ($this->design->disposition & BACKGROUND_ON) {
$attrs['checked'] = 'checked';
}
@ -190,7 +190,7 @@ class DesignForm extends Form
'class' => 'radio',
'value' => 'off');
if ($design->disposition & BACKGROUND_OFF) {
if ($this->design->disposition & BACKGROUND_OFF) {
$attrs['checked'] = 'checked';
}
@ -205,7 +205,7 @@ class DesignForm extends Form
$this->out->elementStart('li');
$this->out->checkbox('design_background-image_repeat',
_('Tile background image'),
($design->disposition & BACKGROUND_TILE) ? true : false);
($this->design->disposition & BACKGROUND_TILE) ? true : false);
$this->out->elementEnd('li');
}
@ -218,7 +218,7 @@ class DesignForm extends Form
try {
$bgcolor = new WebColor($design->backgroundcolor);
$bgcolor = new WebColor($this->design->backgroundcolor);
$this->out->elementStart('li');
$this->out->element('label', array('for' => 'swatch-1'), _('Background'));
@ -231,7 +231,7 @@ class DesignForm extends Form
'value' => ''));
$this->out->elementEnd('li');
$ccolor = new WebColor($design->contentcolor);
$ccolor = new WebColor($this->design->contentcolor);
$this->out->elementStart('li');
$this->out->element('label', array('for' => 'swatch-2'), _('Content'));
@ -244,7 +244,7 @@ class DesignForm extends Form
'value' => ''));
$this->out->elementEnd('li');
$sbcolor = new WebColor($design->sidebarcolor);
$sbcolor = new WebColor($this->design->sidebarcolor);
$this->out->elementStart('li');
$this->out->element('label', array('for' => 'swatch-3'), _('Sidebar'));
@ -257,7 +257,7 @@ class DesignForm extends Form
'value' => ''));
$this->out->elementEnd('li');
$tcolor = new WebColor($design->textcolor);
$tcolor = new WebColor($this->design->textcolor);
$this->out->elementStart('li');
$this->out->element('label', array('for' => 'swatch-4'), _('Text'));
@ -270,7 +270,7 @@ class DesignForm extends Form
'value' => ''));
$this->out->elementEnd('li');
$lcolor = new WebColor($design->linkcolor);
$lcolor = new WebColor($this->design->linkcolor);
$this->out->elementStart('li');
$this->out->element('label', array('for' => 'swatch-5'), _('Links'));
@ -284,7 +284,7 @@ class DesignForm extends Form
$this->out->elementEnd('li');
} catch (WebColorException $e) {
common_log(LOG_ERR, 'Bad color values in design ID: ' .$design->id);
common_log(LOG_ERR, 'Bad color values in design ID: ' .$this->design->id);
}
$this->out->elementEnd('ul');

View File

@ -174,28 +174,26 @@ class DesignSettingsAction extends AccountSettingsAction
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
// it. -- Zach
if ($_FILES['design_background-image_file']['error'] ==
UPLOAD_ERR_OK) {
if (array_key_exists('design_background-image_file', $_FILES) &&
$_FILES['design_background-image_file']['error'] == UPLOAD_ERR_OK) {
$filepath = null;
try {
$imagefile =
ImageFile::fromUpload('design_background-image_file');
$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),
common_timestamp());
image_type_to_extension($imagefile->type),
common_timestamp());
$filepath = Design::path($filename);