Вход Регистрация
Файл: concrete5.7.5.6/concrete/src/StyleCustomizer/Preset.php
Строк: 89
<?php
namespace ConcreteCoreStyleCustomizer;
use 
Less_Parser;
use 
Less_Tree_Call;
use 
ConcreteCoreStyleCustomizerStyleColorStyle;
class 
Preset {


    protected 
$filename;
    protected 
$name;
    const 
PRESET_RULE_NAME '@preset-name';
    const 
PRESET_RULE_ICON '@preset-icon';
    const 
PRESET_RULE_ICON_FUNCTION 'concrete-icon';
    protected 
$styleValueList;

    
/**
     * @return Preset
     */
    
public static function getFromFile($lessFile$urlroot) {
        
$o = new static();
        
$o->file $lessFile;
        
$o->urlroot $urlroot;
        
$o->filename basename($lessFile);
        
$o->handle substr($o->filename0strrpos($o->filename'.'));

        
$l = new Less_Parser();
        
$parser $l->parseFile($lessFilefalsetrue);
        
$rules $parser->rules;
        foreach(
$rules as $rule) {
            if (
$rule->name == static::PRESET_RULE_NAME) {
                
$o->name $rule->value->value[0]->value[0]->value;
            }
            if (
$rule->name == static::PRESET_RULE_ICON) {
                
$method $rule->value->value[0]->value[0];
                if (
$method instanceof Less_Tree_Call && $method->name == static::PRESET_RULE_ICON_FUNCTION) {
                    
$cv1 ColorStyle::parse($method->args[0]->value[0]);
                    
$cv2 ColorStyle::parse($method->args[1]->value[0]);
                    
$cv3 ColorStyle::parse($method->args[2]->value[0]);
                    
$o->color1 $cv1;
                    
$o->color2 $cv2;
                    
$o->color3 $cv3;
                }
            }
        }

        return 
$o;
    }

    
/**
     * Gets the style value list object for this preset.
     * @return ConcreteCoreStyleCustomizerStyleValueList
     */
    
public function getStyleValueList()
    {
        if (!isset(
$this->styleValueList)) {
            
$this->styleValueList ConcreteCoreStyleCustomizerStyleValueList::loadFromLessFile($this->file$this->urlroot);
        }
        return 
$this->styleValueList;
    }

    public function 
getPresetFilename()
    {
        return 
$this->filename;
    }

    public function 
getPresetName()
    {
        return 
$this->name;
    }

    
/** Returns the display name for this preset (localized and escaped accordingly to $format)
     * @param string $format = 'html'
     *   Escape the result in html format (if $format is 'html').
     *   If $format is 'text' or any other value, the display name won't be escaped.
     * @return string
     */
    
public function getPresetDisplayName($format 'html') {
        
$value tc('PresetName'$this->getPresetName());
        switch(
$format) {
            case 
'html':
                return 
h($value);
            case 
'text':
            default:
                return 
$value;
        }
    }

    public function 
isDefaultPreset()
    {
        return 
$this->filename == FILENAME_STYLE_CUSTOMIZER_DEFAULT_PRESET_NAME;
    }

    public function 
getPresetHandle()
    {
        return 
$this->handle;
    }

    public function 
getPresetColor1()
    {
        return 
$this->color1;
    }

    public function 
getPresetColor2()
    {
        return 
$this->color2;
    }

    public function 
getPresetColor3()
    {
        return 
$this->color3;
    }

    public function 
getPresetIconHTML()
    {
        
$html '<ul class="ccm-style-preset-icon">';
        
$html .= '<li style="background-color: ' $this->getPresetColor1()->toStyleString() . '"></li>';
        
$html .= '<li style="background-color: ' $this->getPresetColor2()->toStyleString() . '"></li>';
        
$html .= '<li style="background-color: ' $this->getPresetColor3()->toStyleString() . '"></li>';
        
$html .= '</ul>';
        return 
$html;
    }
}
Онлайн: 1
Реклама