File "base_output.class.php"

Full path: /home/kosmetik/public_html/wp-content/plugins/unlimited-elements-for-elementor/inc_php/framework/base_output.class.php
File size: 6.11 B
MIME-type: text/x-php
Charset: utf-8

Download   Open   Edit   Advanced Editor   Back

<?php

defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
class UniteOutputBaseUC
{
    protected $arrParams;
    protected $arrOriginalParams;
    protected $skipJsOptions = array();
    const TYPE_NUMBER = "number";
    const TYPE_BOOLEAN = "boolean";
    const TYPE_OBJECT = "object";
    const TYPE_SIZE = "size";
    const VALIDATE_EXISTS = "validate";
    const VALIDATE_NUMERIC = "numeric";
    const VALIDATE_SIZE = "size";
    const FORCE_NUMERIC = "force_numeric";
    const FORCE_BOOLEAN = "force_boolean";
    const FORCE_SIZE = "force_size";
    protected function addSkipJsOption($name)
    {
        $this->skipJsOptions[$name] = true;
    }
    protected function isParamExists($name)
    {
        $exists = array_key_exists($name, $this->arrParams);
        return $exists;
    }
    protected function getParam($name, $validateMode = null)
    {
        if (is_array($this->arrParams) == false) {
            $this->arrParams = array();
        }
        if (array_key_exists($name, $this->arrParams)) {
            $arrParams = $this->arrParams;
            $value = $this->arrParams[$name];
        } else {
            if (is_array($this->arrOriginalParams) == false) {
                $this->arrOriginalParams = array();
            }
            $arrParams = $this->arrOriginalParams;
            $value = UniteFunctionsUC::getVal($this->arrOriginalParams, $name);
        }
        switch ($validateMode) {
            case self::VALIDATE_EXISTS:
                if (array_key_exists($name, $arrParams) == false) {
                    UniteFunctionsUC::throwError("The param: {$name} don't exists");
                }
                break;
            case self::VALIDATE_NUMERIC:
                if (is_numeric($value) == false) {
                    UniteFunctionsUC::throwError("The param: {$name} is not numeric");
                }
                break;
            case self::VALIDATE_SIZE:
                if (strpos($value, "%") === false && is_numeric($value) == false) {
                    UniteFunctionsUC::throwError("The param: {$name} is not size");
                }
                break;
            case self::FORCE_SIZE:
                $isPercent = strpos($value, "%") !== false;
                if ($isPercent == false && is_numeric($value) == false) {
                    UniteFunctionsUC::throwError("The param: {$name} is not size");
                }
                if ($isPercent == false) {
                    $value .= "px";
                }
                break;
            case self::FORCE_NUMERIC:
                $value = floatval($value);
                $value = (double) $value;
                break;
            case self::FORCE_BOOLEAN:
                $value = UniteFunctionsUC::strToBool($value);
                break;
        }
        return $value;
    }
    protected function renameOption($keySource, $keyDest)
    {
        if (array_key_exists($keySource, $this->arrParams)) {
            $this->arrParams[$keyDest] = $this->arrParams[$keySource];
            unset($this->arrParams[$keySource]);
        }
    }
    protected function buildJsParam($paramName, $validate = null, $type = null)
    {
        $output = array("name" => $paramName, "validate" => $validate, "type" => $type);
        return $output;
    }
    protected function buildJsParams()
    {
        $arrJsParams = $this->getArrJsOptions();
        $jsOutput = "";
        $counter = 0;
        $tabs = "\t\t\t\t\t\t\t\t";
        foreach ($arrJsParams as $arrParam) {
            $name = $arrParam["name"];
            $validate = $arrParam["validate"];
            $type = $arrParam["type"];
            if (array_key_exists($name, $this->skipJsOptions) == true) {
                continue;
            }
            if ($this->isParamExists($name)) {
                $value = $this->getParam($name, $validate);
                $putInBrackets = false;
                switch ($type) {
                    case self::TYPE_NUMBER:
                    case self::TYPE_BOOLEAN:
                    case self::TYPE_OBJECT:
                        break;
                    case self::TYPE_SIZE:
                        if (strpos($value, "%") !== 0) {
                            $putInBrackets = true;
                        }
                        break;
                    default:
                        $putInBrackets = true;
                        break;
                }
                if ($putInBrackets == true) {
                    $value = str_replace('"', '\\"', $value);
                    $value = '"' . $value . '"';
                }
                if ($counter > 0) {
                    $jsOutput .= ",\n" . $tabs;
                }
                $jsOutput .= "{$name}:{$value}";
                $counter++;
            }
        }
        $jsOutput .= "\n";
        return $jsOutput;
    }
    protected function getPositionString()
    {
        $position = $this->getParam("position");
        $wrapperStyle = "";
        switch ($position) {
            case "default":
                break;
            case "center":
            default:
                $wrapperStyle .= "margin:0px auto;";
                break;
            case "left":
                $wrapperStyle .= "float:left;";
                break;
            case "right":
                $wrapperStyle .= "float:right;";
                break;
        }
        if ($position != "center") {
            $marginLeft = $this->getParam("margin_left", self::FORCE_NUMERIC);
            $marginRight = $this->getParam("margin_right", self::FORCE_NUMERIC);
            if ($marginLeft != 0) {
                $wrapperStyle .= "margin-left:{$marginLeft}px;";
            }
            if ($marginRight != 0) {
                $wrapperStyle .= "margin-right:{$marginRight}px;";
            }
        }
        $marginTop = $this->getParam("margin_top", self::FORCE_NUMERIC);
        $marginBottom = $this->getParam("margin_bottom", self::FORCE_NUMERIC);
        if ($marginTop != 0) {
            $wrapperStyle .= "margin-top:{$marginTop}px;";
        }
        if ($marginBottom != 0) {
            $wrapperStyle .= "margin-bottom:{$marginBottom}px;";
        }
        return $wrapperStyle;
    }
}