Вход Регистрация
Файл: concrete5.7.5.6/concrete/src/StyleCustomizer/Style/ValueList.php
Строк: 52
<?php
namespace ConcreteCoreStyleCustomizerStyle;
use 
ConcreteCoreStyleCustomizerStyleValueBasicValue;
use 
Less_Parser;
use 
Database;
use 
SymfonyComponentHttpFoundationParameterBag;

class 
ValueList {

    protected 
$values = array();
    protected 
$scvlID;

    public function 
getValues() {
        return 
$this->values;
    }

    public function 
getValueListID()
    {
        return 
$this->scvlID;
    }

    public static function 
loadFromRequest(ParameterBag $requestConcreteCoreStyleCustomizerStyleList $styles)
    {
        
$vl = new static();
        foreach(
$styles->getSets() as $set) {
            foreach(
$set->getStyles() as $style) {
                
$value $style->getValueFromRequest($request);
                if (
is_object($value)) {
                    
$vl->addValue($value);
                }
            }
        }

        if (
$request->has('preset-fonts-file')) {
            
$bv = new BasicValue('preset-fonts-file');
            
$bv->setValue($request->get('preset-fonts-file'));
            
$vl->addValue($bv);
        }
        return 
$vl;
    }

    public static function 
loadFromLessFile($file$urlroot false) {
        
$l = new Less_Parser();
        
$parser $l->parseFile($file$urlroottrue);
        
$vl = new static();
        
$rules $parser->rules;

        
// load required preset variables.
        
foreach($rules as $rule) {
            if (
preg_match('/@preset-fonts-file/i', isset($rule->name) ? $rule->name ''$matches)) {
                
$value $rule->value->value[0]->value[0]->value;
                
$bv = new BasicValue('preset-fonts-file');
                
$bv->setValue($value);
                
$vl->addValue($bv);
            }
        }

        foreach(array(
'ColorStyle''TypeStyle''ImageStyle''SizeStyle') as $type) {
            
$o '\Concrete\Core\StyleCustomizer\Style\' . $type;
            $values = call_user_func_array(array($o, '
getValuesFromVariables'), array($rules));
            $vl->addValues($values);
        }

        return $vl;
    }

    public static function getByID($scvlID)
    {
        $db = Database::get();
        $scvlID = $db->GetOne('
select scvlID from StyleCustomizerValueLists where scvlID = ?', array($scvlID));
        if ($scvlID) {
            $o = new static();
            $o->scvlID = $scvlID;
            $rows = $db->fetchAll('
select from StyleCustomizerValues where scvlID = ?', array($scvlID));
            foreach($rows as $row) {
                $o->addValue(unserialize($row['
value']));
            }
        }
        return $o;
    }

    public function save()
    {
        $db = Database::get();
        if (!isset($this->scvlID)) {
            $db->insert('
StyleCustomizerValueLists', array());
            $this->scvlID = $db->LastInsertId();
        } else {
            $db->delete('
StyleCustomizerValues', array('scvlID' => $this->scvlID));
        }

        foreach($this->values as $value) {
            $db->insert('
StyleCustomizerValues', array('value' => serialize($value), 'scvlID' => $this->scvlID));
        }
    }

    public function addValue(ConcreteCoreStyleCustomizerStyleValueValue $value)
    {
        $this->values[] = $value;
    }

    public function addValues($values) {
        foreach($values as $value) {
            $this->addValue($value);
        }
    }

}
Онлайн: 0
Реклама