Update background image settings to use bitflags
This commit is contained in:
parent
ea5d46a94d
commit
76cbeff33c
@ -104,37 +104,52 @@ class DesignsettingsAction extends AccountSettingsAction
|
|||||||
'value' => ImageFile::maxFileSizeInt()));
|
'value' => ImageFile::maxFileSizeInt()));
|
||||||
$this->elementEnd('li');
|
$this->elementEnd('li');
|
||||||
|
|
||||||
$this->elementStart('li', array('id' => 'design_background-image_onoff'));
|
|
||||||
|
|
||||||
if (!empty($design->backgroundimage)) {
|
if (!empty($design->backgroundimage)) {
|
||||||
|
|
||||||
|
$this->elementStart('li', array('id' => 'design_background-image_onoff'));
|
||||||
|
|
||||||
$this->element('img', array('src' =>
|
$this->element('img', array('src' =>
|
||||||
Design::url($design->backgroundimage)));
|
Design::url($design->backgroundimage)));
|
||||||
}
|
|
||||||
|
|
||||||
$this->element('input', array('name' => 'design_background-image_onoff',
|
$attrs = array('name' => 'design_background-image_onoff',
|
||||||
'type' => 'radio',
|
'type' => 'radio',
|
||||||
'id' => 'design_background-image_on',
|
'id' => 'design_background-image_on',
|
||||||
'class' => 'radio',
|
'class' => 'radio',
|
||||||
'value' => 'true',
|
'value' => 'on');
|
||||||
'checked'=> 'checked'));
|
|
||||||
$this->element('label', array('for' => 'design_background-image_on',
|
if ($design->disposition & BACKGROUND_ON) {
|
||||||
'class' => 'radio'),
|
$attrs['checked'] = 'checked';
|
||||||
_('On'));
|
}
|
||||||
$this->element('input', array('name' => 'design_background-image_onoff',
|
|
||||||
'type' => 'radio',
|
$this->element('input', $attrs);
|
||||||
'id' => 'design_background-image_off',
|
|
||||||
'class' => 'radio',
|
$this->element('label', array('for' => 'design_background-image_on',
|
||||||
'value' => 'false'));
|
'class' => 'radio'),
|
||||||
$this->element('label', array('for' => 'design_background-image_off',
|
_('On'));
|
||||||
'class' => 'radio'),
|
|
||||||
_('Off'));
|
$attrs = array('name' => 'design_background-image_onoff',
|
||||||
$this->element('p', 'form_guide', _('Turn background image on or off.'));
|
'type' => 'radio',
|
||||||
$this->elementEnd('li');
|
'id' => 'design_background-image_off',
|
||||||
|
'class' => 'radio',
|
||||||
|
'value' => 'off');
|
||||||
|
|
||||||
|
if ($design->disposition & BACKGROUND_OFF) {
|
||||||
|
$attrs['checked'] = 'checked';
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->element('input', $attrs);
|
||||||
|
|
||||||
|
$this->element('label', array('for' => 'design_background-image_off',
|
||||||
|
'class' => 'radio'),
|
||||||
|
_('Off'));
|
||||||
|
$this->element('p', 'form_guide', _('Turn background image on or off.'));
|
||||||
|
$this->elementEnd('li');
|
||||||
|
}
|
||||||
|
|
||||||
$this->elementStart('li');
|
$this->elementStart('li');
|
||||||
$this->checkbox('design_background-image_repeat',
|
$this->checkbox('design_background-image_repeat',
|
||||||
_('Tile background image'),
|
_('Tile background image'),
|
||||||
$design->tile);
|
($design->disposition & BACKGROUND_TILE) ? true : false );
|
||||||
$this->elementEnd('li');
|
$this->elementEnd('li');
|
||||||
|
|
||||||
$this->elementEnd('ul');
|
$this->elementEnd('ul');
|
||||||
@ -159,7 +174,6 @@ class DesignsettingsAction extends AccountSettingsAction
|
|||||||
'value' => '#' . $bgcolor->hexValue()));
|
'value' => '#' . $bgcolor->hexValue()));
|
||||||
$this->elementEnd('li');
|
$this->elementEnd('li');
|
||||||
|
|
||||||
|
|
||||||
$ccolor = new WebColor($design->contentcolor);
|
$ccolor = new WebColor($design->contentcolor);
|
||||||
|
|
||||||
$this->elementStart('li');
|
$this->elementStart('li');
|
||||||
@ -346,7 +360,7 @@ class DesignsettingsAction extends AccountSettingsAction
|
|||||||
|
|
||||||
$design->backgroundimage = $defaults['backgroundimage'];
|
$design->backgroundimage = $defaults['backgroundimage'];
|
||||||
|
|
||||||
$deisng->tile = $defaults['tile'];
|
$deisng->disposition = $defaults['disposition'];
|
||||||
|
|
||||||
} catch (WebColorException $e) {
|
} catch (WebColorException $e) {
|
||||||
common_log(LOG_ERR, _('Bad default color settings: ' .
|
common_log(LOG_ERR, _('Bad default color settings: ' .
|
||||||
@ -377,7 +391,23 @@ class DesignsettingsAction extends AccountSettingsAction
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
$tile = $this->boolean('design_background-image_repeat');
|
$onoff = $this->arg('design_background-image_onoff');
|
||||||
|
|
||||||
|
$on = false;
|
||||||
|
$off = false;
|
||||||
|
$tile = false;
|
||||||
|
|
||||||
|
if ($onoff == 'on') {
|
||||||
|
$on = true;
|
||||||
|
} else {
|
||||||
|
$off = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
$repeat = $this->boolean('design_background-image_repeat');
|
||||||
|
|
||||||
|
if ($repeat) {
|
||||||
|
$tile = true;
|
||||||
|
}
|
||||||
|
|
||||||
$user = common_current_user();
|
$user = common_current_user();
|
||||||
$design = $user->getDesign();
|
$design = $user->getDesign();
|
||||||
@ -392,7 +422,8 @@ class DesignsettingsAction extends AccountSettingsAction
|
|||||||
$design->textcolor = $tcolor->intValue();
|
$design->textcolor = $tcolor->intValue();
|
||||||
$design->linkcolor = $lcolor->intValue();
|
$design->linkcolor = $lcolor->intValue();
|
||||||
$design->backgroundimage = $filepath;
|
$design->backgroundimage = $filepath;
|
||||||
$design->tile = $tile;
|
|
||||||
|
$design->setDisposition($on, $off, $tile);
|
||||||
|
|
||||||
$result = $design->update($original);
|
$result = $design->update($original);
|
||||||
|
|
||||||
@ -416,7 +447,8 @@ class DesignsettingsAction extends AccountSettingsAction
|
|||||||
$design->textcolor = $tcolor->intValue();
|
$design->textcolor = $tcolor->intValue();
|
||||||
$design->linkcolor = $lcolor->intValue();
|
$design->linkcolor = $lcolor->intValue();
|
||||||
$design->backgroundimage = $filepath;
|
$design->backgroundimage = $filepath;
|
||||||
$design->tile = $tile;
|
|
||||||
|
$design->setDisposition($on, $off, $tile);
|
||||||
|
|
||||||
$id = $design->insert();
|
$id = $design->insert();
|
||||||
|
|
||||||
@ -481,16 +513,4 @@ class DesignsettingsAction extends AccountSettingsAction
|
|||||||
$this->showForm(_('Design preferences saved.'), true);
|
$this->showForm(_('Design preferences saved.'), true);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Reset design settings to previous saved value if any, or
|
|
||||||
* the defaults
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
|
|
||||||
function resetDesign()
|
|
||||||
{
|
|
||||||
$this->showForm(_('Design preferences reset.'), true);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -21,6 +21,10 @@ if (!defined('LACONICA')) {
|
|||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
define('BACKGROUND_ON', 1);
|
||||||
|
define('BACKGROUND_OFF', 2);
|
||||||
|
define('BACKGROUND_TILE', 4);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Table Definition for design
|
* Table Definition for design
|
||||||
*/
|
*/
|
||||||
@ -41,7 +45,7 @@ class Design extends Memcached_DataObject
|
|||||||
public $textcolor; // int(4)
|
public $textcolor; // int(4)
|
||||||
public $linkcolor; // int(4)
|
public $linkcolor; // int(4)
|
||||||
public $backgroundimage; // varchar(255)
|
public $backgroundimage; // varchar(255)
|
||||||
public $tile; // tinyint(1)
|
public $disposition; // tinyint(1) default_1
|
||||||
|
|
||||||
/* Static get */
|
/* Static get */
|
||||||
function staticGet($k,$v=NULL) { return Memcached_DataObject::staticGet('Design',$k,$v); }
|
function staticGet($k,$v=NULL) { return Memcached_DataObject::staticGet('Design',$k,$v); }
|
||||||
@ -72,9 +76,11 @@ class Design extends Memcached_DataObject
|
|||||||
$css .= 'html body { color: #'. $tcolor->hexValue() . '} '. "\n";
|
$css .= 'html body { color: #'. $tcolor->hexValue() . '} '. "\n";
|
||||||
$css .= 'a { color: #' . $lcolor->hexValue() . '} ' . "\n";
|
$css .= 'a { color: #' . $lcolor->hexValue() . '} ' . "\n";
|
||||||
|
|
||||||
if (!empty($this->backgroundimage)) {
|
if (!empty($this->backgroundimage) &&
|
||||||
|
$this->disposition & BACKGROUND_ON) {
|
||||||
|
|
||||||
$repeat = ($this->tile) ? 'background-repeat:repeat;' :
|
$repeat = ($this->disposition & BACKGROUND_TILE) ?
|
||||||
|
'background-repeat:repeat;' :
|
||||||
'background-repeat:no-repeat;';
|
'background-repeat:no-repeat;';
|
||||||
|
|
||||||
$css .= 'body { background-image:url(' .
|
$css .= 'body { background-image:url(' .
|
||||||
@ -125,4 +131,25 @@ class Design extends Memcached_DataObject
|
|||||||
return 'http://'.$server.$path.$filename;
|
return 'http://'.$server.$path.$filename;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function setDisposition($on, $off, $tile)
|
||||||
|
{
|
||||||
|
if ($on) {
|
||||||
|
$this->disposition |= BACKGROUND_ON;
|
||||||
|
} else {
|
||||||
|
$this->disposition &= ~BACKGROUND_ON;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($off) {
|
||||||
|
$this->disposition |= BACKGROUND_OFF;
|
||||||
|
} else {
|
||||||
|
$this->disposition &= ~BACKGROUND_OFF;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($tile) {
|
||||||
|
$this->disposition |= BACKGROUND_TILE;
|
||||||
|
} else {
|
||||||
|
$this->disposition &= ~BACKGROUND_TILE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -46,7 +46,7 @@ sidebarcolor = 1
|
|||||||
textcolor = 1
|
textcolor = 1
|
||||||
linkcolor = 1
|
linkcolor = 1
|
||||||
backgroundimage = 2
|
backgroundimage = 2
|
||||||
tile = 17
|
disposition = 17
|
||||||
|
|
||||||
[design__keys]
|
[design__keys]
|
||||||
id = N
|
id = N
|
||||||
|
@ -496,7 +496,7 @@ create table design (
|
|||||||
textcolor integer comment 'text color',
|
textcolor integer comment 'text color',
|
||||||
linkcolor integer comment 'link color',
|
linkcolor integer comment 'link color',
|
||||||
backgroundimage varchar(255) comment 'background image, if any',
|
backgroundimage varchar(255) comment 'background image, if any',
|
||||||
tile tinyint default 0 comment 'tile background image'
|
disposition tinyint default 1 comment 'bit 1 = hide background image, bit 2 = display background image, bit 4 = tile background image'
|
||||||
) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin;
|
) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin;
|
||||||
|
|
||||||
create table group_block (
|
create table group_block (
|
||||||
|
@ -79,7 +79,7 @@ $config =
|
|||||||
'textcolor' => '#000000',
|
'textcolor' => '#000000',
|
||||||
'linkcolor' => '#002E6E',
|
'linkcolor' => '#002E6E',
|
||||||
'backgroundimage' => null,
|
'backgroundimage' => null,
|
||||||
'tile' => true),
|
'disposition' => 1),
|
||||||
'path' => $_path,
|
'path' => $_path,
|
||||||
'logfile' => null,
|
'logfile' => null,
|
||||||
'logo' => null,
|
'logo' => null,
|
||||||
|
Loading…
Reference in New Issue
Block a user