403Webshell
Server IP : 85.158.181.41  /  Your IP : 216.73.217.12
Web Server : Apache
System : Linux cloud9-vm129 6.1.178+1-ph #ph SMP PREEMPT_DYNAMIC Wed Jul 29 09:00:54 UTC 2026 x86_64
User : moncbefd ( 1024)
PHP Version : 7.3.33
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /home/moncbefd/www.moneta.at/GXModules/Gambio/StyleEdit/Core/Components/Style/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /home/moncbefd/www.moneta.at/GXModules/Gambio/StyleEdit/Core/Components/Style/CssGenerator.php
<?php
/* --------------------------------------------------------------
  CssGenerator.php 2019-10-15
  Gambio GmbH
  http://www.gambio.de
  Copyright (c) 2019 Gambio GmbH
  Released under the GNU General Public License (Version 2)
  [http://www.gnu.org/licenses/gpl-2.0.html]
  --------------------------------------------------------------*/

namespace Gambio\StyleEdit\Core\Components\Style;

use Gambio\StyleEdit\Core\Components\BackgroundGroup\Entities\BackgroundGroupOption;
use Gambio\StyleEdit\Core\Components\BorderGroup\Entities\BorderGroupOption;
use Gambio\StyleEdit\Core\Components\FontGroup\Entities\FontGroupOption;
use Gambio\StyleEdit\Core\Components\MarginGroup\Entities\MarginGroupOption;
use Gambio\StyleEdit\Core\Components\PaddingGroup\Entities\PaddingGroupOption;
use Gambio\StyleEdit\Core\Components\Style\Exception\UnfinishedBuildException;
use Gambio\StyleEdit\Core\Components\Style\Traits\CssStyleTrait;

/**
 * Class CssGenerator
 */
class CssGenerator
{
    /**
     * @var string
     */
    protected $id;
    
    /**
     * @var BackgroundGroupOption
     */
    protected $background;
    
    /**
     * @var MarginGroupOption
     */
    protected $margin;
    
    /**
     * @var PaddingGroupOption
     */
    protected $padding;
    
    /**
     * @var BorderGroupOption
     */
    protected $border;
    
    /**
     * @var FontGroupOption
     */
    protected $font;
    
    
    /**
     * CssGenerator constructor.
     *
     * @param string $id
     */
    protected function __construct(string $id)
    {
        $this->id = $id;
    }
    
    
    public static function create(string $id): CssGenerator
    {
        return new static($id);
    }
    
    
    /**
     * @return string
     */
    public function __toString()
    {
        $styling = '';
        
        if (isset($this->background)) {
            
            $styling .= $this->getBackgroundStyle($this->background);
        }
        
        if (isset($this->margin)) {
            
            $styling .= $this->getMarginStyle($this->margin);
        }
        
        if (isset($this->padding)) {
            
            $styling .= $this->getPaddingStyle($this->padding);
        }
        
        if (isset($this->border)) {
            
            $styling .= $this->getBorderStyle($this->border);
        }
        
        if (isset($this->font)) {
            
            $styling .= $this->getFontStyle($this->font);
        }
        
        if ($styling === '') {
            
            return '';
        }
        
        $style = '<style>' . PHP_EOL . "\t#{$this->id} {";
        
        foreach (explode(PHP_EOL, $styling) as $css) {
            
            if ($css === '') {
                
                continue;
            }
            
            $style .= PHP_EOL . "\t\t$css";
        }
        
        return $style . PHP_EOL . "\t}" . PHP_EOL . '</style>';
    }
    
    
    /**
     * @param BackgroundGroupOption $background
     *
     * @return string
     */
    protected function getBackgroundStyle(BackgroundGroupOption $background): string
    {
        $style = '';
        
        if ($background->gradient()->enabled()->value()) {
            
            $gradientColor1 = $background->gradient()->color1()->value();
            $gradientColor2 = $background->gradient()->color2()->value();
            $gradientType   = $background->gradient()->gradientType()->value();
            $gradientAngle  = $background->gradient()->angle()->value();
            
            $style .= "background: $gradientColor1;" . PHP_EOL;
            $style .= "background: -moz-$gradientType-gradient($gradientAngle, $gradientColor1 0%, $gradientColor2 100%);"
                      . PHP_EOL;
            $style .= "background: -webkit-$gradientType-gradient($gradientAngle, $gradientColor1 0%,$gradientColor2 100%);"
                      . PHP_EOL;
            $style .= "background: $gradientType-gradient($gradientAngle, $gradientColor1 0%,$gradientColor2 100%);"
                      . PHP_EOL;
        } else {
            $style .= 'background-color: ' . $background->color()->value() . ';' . PHP_EOL;
        }
        
        if ($background->image()->enabled()->value()) {
            
            $style .= 'background-image: url(\'' . $background->image()->url()->value() . "');" . PHP_EOL;
            $style .= 'background-position: ' . $background->image()->position()->value() . ';' . PHP_EOL;
            $style .= 'background-repeat: ' . $background->image()->repeat()->value() . ';' . PHP_EOL;
            $style .= 'background-size: ' . $background->image()->size()->value() . ';' . PHP_EOL;
            $style .= 'background-attachment: ' . $background->image()->attachment()->value() . ';';
        }
        
        return $style . PHP_EOL;
    }
    
    
    /**
     * @param MarginGroupOption $margin
     *
     * @return string
     */
    protected function getMarginStyle(MarginGroupOption $margin): string
    {
        return 'margin: ' . $margin->marginTop()->value() . ' ' . $margin->marginRight()->value() . ' '
               . $margin->marginBottom()->value() . ' ' . $margin->marginLeft()->value() . ';' . PHP_EOL;
    }
    
    
    /**
     * @param PaddingGroupOption $padding
     *
     * @return string
     */
    protected function getPaddingStyle(PaddingGroupOption $padding): string
    {
        return 'padding: ' . $padding->paddingTop()->value() . ' ' . $padding->paddingRight()->value() . ' '
               . $padding->paddingBottom()->value() . ' ' . $padding->paddingLeft()->value() . ';' . PHP_EOL;
    }
    
    
    /**
     * @param BorderGroupOption $border
     *
     * @return string
     */
    protected function getBorderStyle(BorderGroupOption $border): string
    {
        $style = '';
        
        $style .= 'border-top-width: ' . $border->top()->value() . ';' . PHP_EOL;
        $style .= 'border-right-width: ' . $border->right()->value() . ';' . PHP_EOL;
        $style .= 'border-bottom-width: ' . $border->bottom()->value() . ';' . PHP_EOL;
        $style .= 'border-left-width: ' . $border->left()->value() . ';' . PHP_EOL;
        $style .= 'border-style: ' . $border->style()->value() . ';' . PHP_EOL;
        $style .= 'border-color: ' . $border->color()->value() . ';';
        
        return $style;
    }
    
    
    /**
     * @param FontGroupOption $font
     *
     * @return string
     */
    protected function getFontStyle(FontGroupOption $font): string
    {
        $style = '';
        $style .= 'font-family: ' . $font->family()->value() . ';' . PHP_EOL;
        $style .= 'font-size: ' . $font->size()->value() . ';' . PHP_EOL;
        $style .= 'font-style: ' . $font->style()->value() . ';' . PHP_EOL;
        $style .= 'text-align: ' . $font->textAlign()->value() . ';' . PHP_EOL;
        $style .= 'color: ' . $font->color()->value() . ';' . PHP_EOL;
        
        if ($font->textDecorationUnderline()->value()) {
            
            $style .= PHP_EOL . 'text-decoration: underline;';
        }
        
        if ($font->textTransformUppercase()->value()) {
            
            $style .= PHP_EOL . 'text-transform: uppercase;';
        }
        
        return $style;
    }
    
    
    /**
     * @param BackgroundGroupOption $background
     *
     * @return CssGenerator
     */
    public function setBackground(BackgroundGroupOption $background): CssGenerator
    {
        $this->background = $background;
        
        return $this;
    }
    
    
    /**
     * @param MarginGroupOption $margin
     *
     * @return CssGenerator
     */
    public function setMargin(MarginGroupOption $margin): CssGenerator
    {
        $this->margin = $margin;
        
        return $this;
    }
    
    
    /**
     * @param PaddingGroupOption $padding
     *
     * @return CssGenerator
     */
    public function setPadding(PaddingGroupOption $padding): CssGenerator
    {
        $this->padding = $padding;
        
        return $this;
    }
    
    
    /**
     * @param BorderGroupOption $border
     *
     * @return CssGenerator
     */
    public function setBorder(BorderGroupOption $border): CssGenerator
    {
        $this->border = $border;
        
        return $this;
    }
    
    
    /**
     * @param FontGroupOption $font
     *
     * @return CssGenerator
     */
    public function setFont(FontGroupOption $font): CssGenerator
    {
        $this->font = $font;
        
        return $this;
    }
}

Youez - 2016 - github.com/yon3zu
LinuXploit