KOK - MANAGER
Edit File: unitecreator_library.class.php
<?php /** * @package Unlimited Elements * @author unlimited-elements.com * @copyright (C) 2021 Unlimited Elements, All Rights Reserved. * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html * */ if ( ! defined( 'ABSPATH' ) ) exit; class UniteCreatorLibraryWork{ private static $arrLibrary; /** * construct the library, load library array */ public function __construct(){ if(empty(self::$arrLibrary)) $this->loadLibrary(); } /** * check if condition ok */ private function isConditionOK($condition, $handle = null){ switch($condition){ case "fa5": case "fa4": $faVersion = "fa5"; if($faVersion == $condition) return(true); else return(false); break; } return(false); } /** * get platform include by handle * function for override */ protected function getUrlPlatformInclude($handle){ return(null); } /** * get includes (js or css) from object */ private function loadLibrary_getIncludes($xmlIncludes){ $objIncludes = $xmlIncludes->include; if(!@count($objIncludes)) $objIncludes = array($objIncludes); $arrIncludes = array(); foreach($objIncludes as $objInclude){ $attribs = $objInclude->attributes(); $handle = (string)UniteFunctionsUC::getVal($attribs, "handle"); $local = (string)UniteFunctionsUC::getVal($attribs, "local"); $remote = (string)UniteFunctionsUC::getVal($attribs, "remote"); $condition = (string)UniteFunctionsUC::getVal($attribs, "condition"); if(empty($local) && empty($remote)) UniteFunctionsUC::throwError("Include: $handle must have some url"); if(!empty($local)){ $local = trim($local); $urlInclude = GlobalsUC::$url_assets_libraries.$local; }else if(!empty($remote)){ $urlInclude = $remote; } $urlPlatformInclude = $this->getUrlPlatformInclude($handle); if(!empty($urlPlatformInclude)) $urlInclude = $urlPlatformInclude; //include with condition if(!empty($condition)){ $isCondition = $this->isConditionOK($condition, $handle); if($isCondition == true) $arrIncludes[$handle] = $urlInclude; continue; } //just include $arrIncludes[$handle] = $urlInclude; } return($arrIncludes); } /** * load library from xml file */ private function loadLibrary(){ $filepathLibrary = GlobalsUC::$pathSettings."library.xml"; UniteFunctionsUC::validateFilepath($filepathLibrary); $arrLibrary = array(); $obj = UniteFunctionsUC::loadXMLFile($filepathLibrary); $items = $obj->item; if(!@count($obj->item)){ $items = array($items); } foreach($items as $objItem){ $attribs = $objItem->attributes(); $name = (string)UniteFunctionsUC::getVal($attribs, "name"); $arrItem = array(); $arrItem["name"] = $name; $arrItem["title"] = (string)UniteFunctionsUC::getVal($attribs, "title"); UniteFunctionsUC::validateNotEmpty($name, "item name"); UniteFunctionsUC::validateNotEmpty($arrItem["title"], "item title"); //get js includes $arrJsIncludes = array(); if(isset($objItem->js)) $arrJsIncludes = $this->loadLibrary_getIncludes($objItem->js); $arrCssIncludes = array(); if(isset($objItem->css)) $arrCssIncludes = $this->loadLibrary_getIncludes($objItem->css); $arrItem["includes_js"] = $arrJsIncludes; $arrItem["includes_css"] = $arrCssIncludes; $arrLibrary[$name] = $arrItem; } self::$arrLibrary = $arrLibrary; } /** * function for override, process provide library * return true if library found and processed, and false if not */ public function processProviderLibrary($name){ return(false); } /** * output urls in array of js and css separately */ public function getLibraryIncludes($name){ $urlBase = GlobalsUC::$url_assets_libraries; $arrJs = array(); $arrCss = array(); $output = array("js"=>array(),"css"=>array()); if(!isset(self::$arrLibrary[$name])) return($output); $arrItem = self::$arrLibrary[$name]; $output["js"] = $arrItem["includes_js"]; $output["css"] = $arrItem["includes_css"]; return($output); } /** * get library array */ public function getArrLibrary(){ return(self::$arrLibrary); } }