Вход Регистрация
Файл: concrete5.7.5.6/concrete/src/StyleCustomizer/Style/TypeStyle.php
Строк: 158
<?php
namespace ConcreteCoreStyleCustomizerStyle;

use 
ConcreteCoreStyleCustomizerStyleValueTypeValue;
use 
ConcreteCoreStyleCustomizerStyleValueColorValue;
use 
ConcreteCoreStyleCustomizerStyleColorStyle;
use 
ConcreteCoreStyleCustomizerStyleValueSizeValue;
use 
ConcreteCoreStyleCustomizerStyleSizeStyle;

use 
Core;

class 
TypeStyle extends Style {

    public function 
render($style false)
    {
        
$fh Core::make('helper/form/font');
        
$args = array();
        if (
is_object($style)) {
            
$args['fontFamily'] = $style->getFontFamily();
            
$color $style->getColor();
            if (
is_object($color)) {
                
$args['color'] = $color->toStyleString();
            }
            
$args['fontWeight'] = $style->getFontWeight();
            if (
$style->getFontStyle() != -1) {
                
$args['italic'] = $style->getFontStyle() == 'italic' true false;
            }
            if (
$style->getTextDecoration() != -1) {
                
$args['underline'] = $style->getTextDecoration() == 'underline' true false;
            }
            if (
$style->getTextTransform() != -1) {
                
$args['uppercase'] = $style->getTextTransform() == 'uppercase' true false;
            }
            
$fontSize $style->getFontSize();
            if (
is_object($fontSize)) {
                
$args['fontSizeValue'] = $fontSize->getSize();
                
$args['fontSizeUnit'] = $fontSize->getUnit();
            }
            
$letterSpacing $style->getLetterSpacing();
            if (
is_object($letterSpacing)) {
                
$args['letterSpacingValue'] = $letterSpacing->getSize();
                
$args['letterSpacingUnit'] = $letterSpacing->getUnit();
            }
            
$lineHeight $style->getLineHeight();
            if (
is_object($lineHeight)) {
                
$args['lineHeightValue'] = $lineHeight->getSize();
                
$args['lineHeightUnit'] = $lineHeight->getUnit();
            }

        }
        print 
$fh->output($this->getVariable(), $args, array());
    }

    public function 
getValueFromRequest(SymfonyComponentHttpFoundationParameterBag $request)
    {
        
$type $request->get($this->getVariable());
        
$tv = new TypeValue($this->getVariable());
        if (
$type['font-family']) {
            
$tv->setFontFamily($type['font-family']);
        }
        if (
$type['font-weight']) {
            
$tv->setFontWeight($type['font-weight']);
        }
        if (
$type['italic']) {
            
$tv->setFontStyle('italic');
        } else if (isset(
$type['italic'])) {
            
$tv->setFontStyle('none');
        }

        if (
$type['underline']) {
            
$tv->setTextDecoration('underline');
        } else if (isset(
$type['underline'])) {
            
$tv->setTextDecoration('none');
        }

        if (
$type['uppercase']) {
            
$tv->setTextTransform('uppercase');
        } else if (isset(
$type['uppercase'])) {
            
$tv->setTextTransform('none');
        }

        if (
$type['color']) {
            
$cv = new PrimalColorParser($type['color']);
            
$result $cv->getResult();
            
$alpha false;
            if (
$result->alpha && $result->alpha 1) {
                
$alpha $result->alpha;
            }
            
$cvv = new ColorValue();
            
$cvv->setRed($result->red);
            
$cvv->setGreen($result->green);
            
$cvv->setBlue($result->blue);
            
$cvv->setAlpha($alpha);
            
$tv->setColor($cvv);
        }

        if (
$type['font-size']) {
            
$sv = new SizeValue();
            
$sv->setSize($type['font-size']['size']);
            if (
$type['font-size']['unit']) {
                
$sv->setUnit($type['font-size']['unit']);
            }
            
$tv->setFontSize($sv);
        }

        if (
$type['letter-spacing']) {
            
$sv = new SizeValue();
            
$sv->setSize($type['letter-spacing']['size']);
            if (
$type['letter-spacing']['unit']) {
                
$sv->setUnit($type['letter-spacing']['unit']);
            }
            
$tv->setLetterSpacing($sv);
        }

        if (
$type['line-height']) {
            
$sv = new SizeValue();
            
$sv->setSize($type['line-height']['size']);
            if (
$type['line-height']['unit']) {
                
$sv->setUnit($type['line-height']['unit']);
            }
            
$tv->setLineHeight($sv);
        }

        return 
$tv;
    }

    public function 
getValuesFromVariables($rules = array())
    {
        
$values = array();

        foreach(
$rules as $rule) {
            
$ruleName=  isset($rule->name) ? $rule->name '';
            if (
preg_match('/@(.+)-type-font-family/i'$ruleName$matches)) {
                if (!isset(
$values[$matches[1]])) {
                    
$values[$matches[1]] = new TypeValue($matches[1]);
                }
                
$value $rule->value->value[0]->value[0]->value;
                
$values[$matches[1]]->setFontFamily($value);
            }
            if (
preg_match('/@(.+)-type-font-weight/i'$ruleName$matches)) {
                if (!isset(
$values[$matches[1]])) {
                    
$values[$matches[1]] = new TypeValue($matches[1]);
                }
                
$value $rule->value->value[0]->value[0]->value;
                
$values[$matches[1]]->setFontWeight($value);
            }
            if (
preg_match('/@(.+)-type-text-decoration/i'$ruleName$matches)) {
                if (!isset(
$values[$matches[1]])) {
                    
$values[$matches[1]] = new TypeValue($matches[1]);
                }
                
$value $rule->value->value[0]->value[0]->value;
                
$values[$matches[1]]->setTextDecoration($value);
            }

            if (
preg_match('/@(.+)-type-text-transform/i'$ruleName$matches)) {
                if (!isset(
$values[$matches[1]])) {
                    
$values[$matches[1]] = new TypeValue($matches[1]);
                }
                
$value $rule->value->value[0]->value[0]->value;
                
$values[$matches[1]]->setTextTransform($value);
            }
            if (
preg_match('/@(.+)-type-font-style/i'$ruleName$matches)) {
                if (!isset(
$values[$matches[1]])) {
                    
$values[$matches[1]] = new TypeValue($matches[1]);
                }
                
$value $rule->value->value[0]->value[0]->value;
                
$values[$matches[1]]->setFontStyle($value);
            }
            if (
preg_match('/@(.+)-type-color/i'$ruleName$matches)) {
                if (!isset(
$values[$matches[1]])) {
                    
$values[$matches[1]] = new TypeValue($matches[1]);
                }
                
$value $rule->value->value[0]->value[0];
                
$cv ColorStyle::parse($value);
                if (
$cv instanceof ColorValue) {
                    
$values[$matches[1]]->setColor($cv);
                }
            }

            if (
preg_match('/@(.+)-type-font-size/i'$ruleName$matches)) {
                if (!isset(
$values[$matches[1]])) {
                    
$values[$matches[1]] = new TypeValue($matches[1]);
                }
                
$value $rule->value->value[0]->value[0];
                
$sv SizeStyle::parse($value);
                if (
$sv instanceof SizeValue) {
                    
$values[$matches[1]]->setFontSize($sv);
                }
            }

            if (
preg_match('/@(.+)-type-letter-spacing/i'$ruleName$matches)) {
                if (!isset(
$values[$matches[1]])) {
                    
$values[$matches[1]] = new TypeValue($matches[1]);
                }
                
$value $rule->value->value[0]->value[0];
                
$sv SizeStyle::parse($value);
                if (
$sv instanceof SizeValue) {
                    
$values[$matches[1]]->setLetterSpacing($sv);
                }
            }

            if (
preg_match('/@(.+)-type-line-height/i'$ruleName$matches)) {
                if (!isset(
$values[$matches[1]])) {
                    
$values[$matches[1]] = new TypeValue($matches[1]);
                }
                
$value $rule->value->value[0]->value[0];
                
$sv SizeStyle::parse($value);
                if (
$sv instanceof SizeValue) {
                    
$values[$matches[1]]->setLineHeight($sv);
                }
            }
        }

        return 
$values;
    }


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