63 lines
1.3 KiB
PHP
63 lines
1.3 KiB
PHP
<?php
|
|
|
|
|
|
namespace Nextend\Framework\Style;
|
|
|
|
|
|
use Nextend\Framework\Misc\Base64;
|
|
use Nextend\Framework\Model\Section;
|
|
|
|
class StyleParser {
|
|
|
|
/**
|
|
* @param $data
|
|
*
|
|
* @return string
|
|
*/
|
|
public static function parse($data) {
|
|
if (empty($data)) {
|
|
return '';
|
|
} else if (is_numeric($data)) {
|
|
/**
|
|
* Linked style
|
|
*/
|
|
|
|
$style = Section::getById($data, 'style');
|
|
|
|
if (!$style) {
|
|
/**
|
|
* Linked style not exists anymore
|
|
*/
|
|
return '';
|
|
}
|
|
|
|
|
|
if (is_string($style['value'])) {
|
|
/**
|
|
* Old format when value stored as Base64
|
|
*/
|
|
$decoded = $style['value'];
|
|
if ($decoded[0] != '{') {
|
|
$decoded = Base64::decode($decoded);
|
|
}
|
|
|
|
return $decoded;
|
|
}
|
|
|
|
/**
|
|
* Value stored as array
|
|
*/
|
|
$value = json_encode($style['value']);
|
|
if ($value == false) {
|
|
return '';
|
|
}
|
|
|
|
return $value;
|
|
} else if ($data[0] != '{') {
|
|
return Base64::decode($data);
|
|
}
|
|
|
|
return $data;
|
|
}
|
|
|
|
} |