File "shapes.class.php"
Full path: /home/kosmetik/public_html/wp-content/plugins/unlimited-elements-for-elementor/inc_php/framework/shapes.class.php
File
size: 8.9 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 UniteShapeManagerUC extends HtmlOutputBaseUC
{
private static $arrShapeDividersCache = array();
private static $arrShapesCache = array();
private function getShapesOutputByType($arrAddons, $getType)
{
$arrOutput = array();
foreach ($arrAddons as $addon) {
$alias = $addon->getAlias();
switch ($getType) {
case "picker":
$title = $addon->getTitle();
$arrOutput[$alias] = $title;
break;
case "short":
$title = $addon->getTitle();
$arrOutput[$title] = $alias;
break;
case "data":
$svgContent = $addon->getHtml();
$svgEncoded = base64_encode($svgContent);
$arrOutput[$alias] = $svgEncoded;
break;
case "bgurl":
$svgContent = $addon->getHtml();
$svgEncoded = UniteFunctionsUC::encodeSVGForBGUrl($svgContent);
$arrOutput[$alias] = $svgEncoded;
break;
case "svg":
$svgContent = $addon->getHtml();
$arrOutput[$alias] = $svgContent;
break;
}
}
return $arrOutput;
}
public function getArrShapeDividers($getType = null)
{
if (empty(self::$arrShapeDividersCache)) {
$objAddons = new UniteCreatorAddons();
$params = array();
$params["addontype"] = GlobalsUC::ADDON_TYPE_SHAPE_DEVIDER;
self::$arrShapeDividersCache = $objAddons->getArrAddons("", $params);
}
if (empty($getType)) {
return self::$arrShapeDividersCache;
}
$arrOutput = $this->getShapesOutputByType(self::$arrShapeDividersCache, $getType);
return $arrOutput;
}
public function getArrShapes($getType = null)
{
if (empty(self::$arrShapesCache)) {
$objAddons = new UniteCreatorAddons();
$params = array();
$params["addontype"] = GlobalsUC::ADDON_TYPE_SHAPES;
self::$arrShapesCache = $objAddons->getArrAddons("", $params);
}
if (empty($getType)) {
return self::$arrShapesCache;
}
$arrOutput = self::getShapesOutputByType(self::$arrShapesCache, $getType);
return $arrOutput;
}
private function getElementShapeDividerHtml($position, $settings, $elementID)
{
$enableKey = "enable_shape_devider_" . $position;
if (isset($settings[$enableKey])) {
$isEnable = UniteFunctionsUC::getVal($settings, "enable_shape_devider_" . $position);
$isEnable = UniteFunctionsUC::strToBool($isEnable);
if ($isEnable == false) {
return "";
}
}
$shapeType = UniteFunctionsUC::getVal($settings, "shape_devider_{$position}_type");
if (empty($shapeType)) {
return "";
}
$class = "uc-shape-devider-{$position}";
$selector = "#{$elementID} > .{$class}";
$shapeColor = UniteFunctionsUC::getVal($settings, "shape_devider_{$position}_color");
$isflip = UniteFunctionsUC::getVal($settings, "shape_devider_{$position}_flip");
$isflip = UniteFunctionsUC::strToBool($isflip);
$height = UniteFunctionsUC::getVal($settings, "shape_devider_{$position}_height");
$placement = UniteFunctionsUC::getVal($settings, "shape_devider_{$position}_placement");
$repeat = UniteFunctionsUC::getVal($settings, "shape_devider_{$position}_repeat");
$arrShapes = self::getArrShapeDividers("svg");
$shapeSVG = UniteFunctionsUC::getVal($arrShapes, $shapeType);
if (empty($shapeSVG)) {
return "";
}
if (!empty($shapeColor)) {
$shapeSVG = str_replace('g fill="#ffffff"', 'g fill="' . $shapeColor . '"', $shapeSVG);
}
$shapeContent = UniteFunctionsUC::encodeSVGForBGUrl($shapeSVG);
$arrCss = array();
$arrCss["background-image"] = "url('{$shapeContent}')";
$rotation = "";
if ($isflip == true) {
if ($position == "top") {
$arrCss["transform"] = "rotateY(180deg)";
} else {
$arrCss["transform"] = "rotateX(180deg) rotateY(180deg)";
}
}
$percentRepeat = 100;
if (is_numeric($repeat)) {
if ($repeat <= 0) {
$repeat = 1;
}
if ($repeat > 1) {
$percentRepeat = 100 / $repeat;
}
$decimal = $percentRepeat - (int) $percentRepeat;
if ($decimal > 0) {
$percentRepeat = number_format($percentRepeat, 2);
}
}
if (!empty($height)) {
$height = UniteFunctionsUC::normalizeSize($height);
$arrCss["height"] = $height;
$arrCss["background-size"] = $percentRepeat . "% " . $height;
}
$arrCssSizes = array();
foreach (GlobalsUC::$arrSizes as $size) {
$settingName = "shape_devider_{$position}_height_{$size}";
$heightSize = UniteFunctionsUC::getVal($settings, $settingName);
$arrCssSize = array();
if (empty($heightSize)) {
continue;
}
$heightSize = UniteFunctionsUC::normalizeSize($heightSize);
$arrCssSize["height"] = $heightSize;
$arrCssSize["background-size"] = $percentRepeat . "% " . $heightSize;
$cssSize = UniteFunctionsUC::arrStyleToStrStyle($arrCssSize, $selector);
$arrCssSizes[$size] = $cssSize;
}
if ($placement == "beneath") {
$arrCss["z-index"] = "0";
}
$css = UniteFunctionsUC::arrStyleToStrStyle($arrCss, $selector);
HelperUC::putInlineStyle(self::BR2 . $css);
if (!empty($arrCssSizes)) {
$cssMobileSize = HelperUC::getCssMobileSize($arrCssSizes);
HelperUC::putInlineStyle(self::BR2 . $cssMobileSize);
}
$html = "";
$class = esc_attr($class);
$html .= "<div class='uc-shape-devider {$class}'></div> \n";
return $html;
}
public function getShapeDividerNameFromSettings($settings, $position)
{
$enableKey = "enable_shape_devider_" . $position;
if (isset($settings[$enableKey])) {
$isEnable = $settings[$enableKey];
$isEnable = UniteFunctionsUC::strToBool($isEnable);
if ($isEnable == false) {
return null;
}
}
$shapeType = UniteFunctionsUC::getVal($settings, "shape_devider_{$position}_type");
if (empty($shapeType)) {
return null;
}
return $shapeType;
}
public function getElementShapeDividersHtml($settings, $elementID)
{
$html = "";
$html .= self::getElementShapeDividerHtml("top", $settings, $elementID);
$html .= self::getElementShapeDividerHtml("bottom", $settings, $elementID);
return $html;
}
public function outputCssShapes()
{
header("Content-type: text/css");
$arrShapes = self::getArrShapes("bgurl");
$css = "";
foreach ($arrShapes as $name => $urlShape) {
$css .= ".unite-shapecontent-{$name}{background-image:url({$urlShape})}" . self::BR2;
}
echo UniteProviderFunctionsUC::escCombinedHtml($css);
}
public function getJsonShapes()
{
try {
$arrShapes = $this->getArrShapes("picker");
} catch (Exception $e) {
$arrShapes = array();
}
$jsonShapes = json_encode($arrShapes);
return $jsonShapes;
}
public function getShapeSVGContent($shapeName)
{
try {
$addon = new UniteCreatorAddon();
$addon->initByAlias($shapeName, GlobalsUC::ADDON_TYPE_SHAPES);
$svgContent = $addon->getHtml();
return $svgContent;
} catch (Exception $e) {
return $shapeName . " not found";
}
}
public function getShapeBGContentBYAddonID($addonID)
{
$objAddon = new UniteCreatorAddon();
$objAddon->initByID($addonID);
$objAddonType = $objAddon->getObjAddonType();
if ($objAddonType->isSVG == false) {
UniteFunctionsUC::throwError("The addon is not svg");
}
$svgContent = $objAddon->getHtml();
$encodedContent = base64_encode($svgContent);
return $encodedContent;
}
public static function getShapeDividerBGContentByData($data)
{
$name = UniteFunctionsUC::getVal($data, "name");
$SVGcontent = $this->getShapeSVGContent($name);
$encodedContent = UniteFunctionsUC::encodeSVGForBGUrl($SVGcontent);
$response = array();
$response["content"] = $encodedContent;
return $response;
}
}