File "unitecreator_operations.class.php"

Full path: /home/kosmetik/public_html/wp-content/plugins/unlimited-elements-for-elementor/inc_php/unitecreator_operations.class.php
File size: 17.19 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 UCOperations extends UniteElementsBaseUC
{
    private static $arrGeneralSettings = null;
    private static $arrLayoutsGeneralSettings = null;
    private static $arrCustomSettingsCache = array();
    private static $arrUrlThumbCache = array();
    const GENERAL_SETTINGS_OPTION = "unitecreator_general_settings";
    private function a_______GENERAL_SETTING________()
    {
    }
    public function getGeneralSettings()
    {
        if (self::$arrGeneralSettings === null) {
            $objSettings = $this->getGeneralSettingsObject();
            self::$arrGeneralSettings = $objSettings->getArrValues();
        }
        return self::$arrGeneralSettings;
    }
    public function getGeneralSettingsCustomObject($filepathSettings)
    {
        $arrValues = UniteProviderFunctionsUC::getOption(self::GENERAL_SETTINGS_OPTION);
        $objSettings = new UniteCreatorSettings();
        $objSettings->loadXMLFile($filepathSettings);
        if (!empty($arrValues)) {
            $objSettings->setStoredValues($arrValues);
        }
        return $arrValues;
    }
    private function getGeneralSettingsKey($key)
    {
        if ($key == self::GENERAL_SETTINGS_OPTION) {
            return $key;
        }
        if ($key == "general_settings") {
            return self::GENERAL_SETTINGS_OPTION;
        }
        $key = "unite_creator_" . $key;
        return $key;
    }
    public function getGeneralSettingsObject()
    {
        $filepathSettings = GlobalsUC::$pathSettings . "general_settings.xml";
        $objSettings = new UniteCreatorSettings();
        $objSettings->loadXMLFile($filepathSettings);
        $objSettings = UniteProviderFunctionsUC::applyFilters(UniteCreatorFilters::FILTER_MODIFY_GENERAL_SETTINGS, $objSettings);
        $arrValues = UniteProviderFunctionsUC::getOption(self::GENERAL_SETTINGS_OPTION);
        if (!empty($arrValues)) {
            $objSettings->setStoredValues($arrValues);
        }
        return $objSettings;
    }
    public function updateGeneralSettingsFromData($data, $isValidate = true, $settingsKey = self::GENERAL_SETTINGS_OPTION)
    {
        $arrValues = UniteFunctionsUC::getVal($data, "settings_values");
        if ($isValidate == true) {
            UniteProviderFunctionsUC::doAction(UniteCreatorFilters::ACTION_VALIDATE_GENERAL_SETTINGS, $arrValues, $settingsKey);
        }
        $arrCurrentSettings = UniteProviderFunctionsUC::getOption($settingsKey);
        if (empty($arrCurrentSettings)) {
            $arrCurrentSettings = array();
        }
        if (empty($arrValues)) {
            $arrValues = array();
        }
        $arrValues = array_merge($arrCurrentSettings, $arrValues);
        if (isset(self::$arrCustomSettingsCache[$settingsKey])) {
            unset(self::$arrCustomSettingsCache[$settingsKey]);
        }
        UniteProviderFunctionsUC::updateOption($settingsKey, $arrValues);
    }
    private function validateNoGeneralSettingsKeysInCustomSettings($arrValues)
    {
        if (is_array($arrValues) == false) {
            return false;
        }
        $arrSettings = $this->getGeneralSettings();
        if (is_array($arrSettings) == false) {
            return false;
        }
        $arrIntersect = array_intersect_key($arrSettings, $arrValues);
        if (empty($arrIntersect)) {
            return false;
        }
        $strIntersect = print_r($arrIntersect, true);
        UniteFunctionsUC::throwError("The custom settings should not contain general settings keys:" . $strIntersect);
    }
    public function updateUnlimitedElementsGeneralSettings($arrValues)
    {
        $key = "unlimited_elements_general_settings";
        $customSettingsKey = self::getGeneralSettingsKey($key);
        $data = array();
        $data["settings_values"] = $arrValues;
        $this->updateGeneralSettingsFromData($data, false, $customSettingsKey);
    }
    public function updateCustomSettingsFromData($data)
    {
        $arrValues = UniteFunctionsUC::getVal($data, "settings_values");
        $key = UniteFunctionsUC::getVal($data, "settings_key");
        if ($key == "general_settings") {
            $this->validateNoGeneralSettingsKeysInCustomSettings($arrValues);
            $this->updateGeneralSettingsFromData($data, false);
        } else {
            $customSettingsKey = self::getGeneralSettingsKey($key);
            $this->updateGeneralSettingsFromData($data, false, $customSettingsKey);
        }
    }
    public function getGeneralSettingsGoogleFonts()
    {
        $arrSettings = $this->getGeneralSettings();
        $arrFonts = array();
        $numFonts = 4;
        for ($i = 0; $i < $numFonts; $i++) {
            $fontName = UniteFunctionsUC::getVal($arrSettings, "google_font{$i}_name");
            $fontName = trim($fontName);
            if (empty($fontName)) {
                continue;
            }
            $fontLink = UniteFunctionsUC::getVal($arrSettings, "google_font{$i}_link");
            if (empty($fontLink)) {
                continue;
            }
            $fontLink = trim($fontLink);
            $fontLink = str_replace("https://fonts.googleapis.com/css?family=", "", $fontLink);
            $fontLink = str_replace("http://fonts.googleapis.com/css?family=", "", $fontLink);
            if (empty($fontLink)) {
                continue;
            }
            $arrFonts[$fontName] = $fontLink;
        }
        return $arrFonts;
    }
    private function a_________CUSTOM_SETTINGS___________()
    {
    }
    public function getCustomSettingsValues($customSettingsKey)
    {
        $settingsKey = self::getGeneralSettingsKey($customSettingsKey);
        $arrValues = UniteProviderFunctionsUC::getOption($settingsKey);
        return $arrValues;
    }
    public function getCustomSettingsObject($filepathSettings, $settingsKey)
    {
        $objSettings = new UniteCreatorSettings();
        $objSettings->loadXMLFile($filepathSettings);
        $arrValues = $this->getCustomSettingsValues($settingsKey);
        if (!empty($arrValues)) {
            $objSettings->setStoredValues($arrValues);
        }
        return $objSettings;
    }
    public function getCustomSettingsObjectValues($filepathSettings, $settingsKey)
    {
        if (isset(self::$arrCustomSettingsCache[$settingsKey])) {
            return self::$arrCustomSettingsCache[$settingsKey];
        }
        $objSettings = $this->getCustomSettingsObject($filepathSettings, $settingsKey);
        $arrValues = $objSettings->getArrValues();
        self::$arrCustomSettingsCache[$settingsKey] = $arrValues;
        return $arrValues;
    }
    private function a__________OTHER_FUNCTIONS___________()
    {
    }
    public function checkInstagramRenewToken()
    {
        try {
            $objServices = new UniteServicesUC();
            $objServices->includeInstagramAPI();
            $isRenewed = HelperInstaUC::checkRenewAccessToken_onceInAWhile();
        } catch (Exception $e) {
        }
    }
    public function getErrorMessageHtml($message, $trace = "")
    {
        $html = '<div class="unite-error-message">';
        $html .= '<div class="unite-error-message-inner">';
        $html .= $message;
        $html .= '</div>';
        if (!empty($trace)) {
            $html .= '<div class="unite-error-trace">';
            $html .= "<pre>{$trace}</pre>";
            $html .= "</div>";
        }
        $html .= '</div>';
        return $html;
    }
    public function putModuleErrorMessage($message, $trace = "")
    {
        echo self::getErrorMessageHtml($message, $trace);
    }
    protected function getThumbWidthFromSize($sizeName)
    {
        switch ($sizeName) {
            case GlobalsUC::THUMB_SIZE_NORMAL:
                $size = GlobalsUC::THUMB_WIDTH;
                break;
            case GlobalsUC::THUMB_SIZE_LARGE:
                $size = GlobalsUC::THUMB_WIDTH_LARGE;
                break;
            default:
                $size = GlobalsUC::THUMB_WIDTH;
                break;
        }
        return $size;
    }
    public function createThumbs($urlImage, $thumbSize = null)
    {
        if (empty($urlImage)) {
            UniteFunctionsUC::throwError("empty image url");
        }
        $thumbWidth = $this->getThumbWidthFromSize($thumbSize);
        $urlImage = HelperUC::URLtoRelative($urlImage);
        $info = HelperUC::getImageDetails($urlImage);
        $pathThumbs = $info["path_thumbs"];
        if (!is_dir($pathThumbs)) {
            @mkdir($pathThumbs);
        }
        if (!is_dir($pathThumbs)) {
            UniteFunctionsUC::throwError("Can't make thumb folder: {$pathThumbs}. Please check php and folder permissions");
        }
        $filepathImage = $info["filepath"];
        $filenameThumb = $this->imageView->makeThumb($filepathImage, $pathThumbs, $thumbWidth);
        $urlThumb = "";
        if (!empty($filenameThumb)) {
            $urlThumbs = $info["url_dir_thumbs"];
            $urlThumb = $urlThumbs . $filenameThumb;
        }
        return $urlThumb;
    }
    public function getThumbURLFromImageUrl($urlImage, $imageID = null, $thumbSize = null)
    {
        try {
            $imageID = trim($imageID);
            if (is_numeric($urlImage)) {
                $imageID = $urlImage;
            }
            if (!empty($imageID)) {
                $urlThumb = UniteProviderFunctionsUC::getThumbUrlFromImageID($imageID, $thumbSize);
            } else {
                $urlThumb = $urlImage;
            }
            if (empty($urlThumb)) {
                return "";
            }
            $urlThumb = HelperUC::URLtoFull($urlThumb);
            return $urlThumb;
        } catch (Exception $e) {
            return "";
        }
        return "";
    }
    private function getParamTitle()
    {
        $arr = array();
        $arr["type"] = "uc_textfield";
        $arr["title"] = "Title";
        $arr["name"] = "title";
        $arr["description"] = "";
        $arr["default_value"] = "";
        $arr["limited_edit"] = true;
        return $arr;
    }
    public function checkAddParamTitle($params)
    {
        if (empty($params)) {
            $paramTitle = $this->getParamTitle();
            $params[] = $paramTitle;
            return $params;
        }
        foreach ($params as $param) {
            $name = UniteFunctionsUC::getVal($param, "name");
            if ($name == "title") {
                return $params;
            }
        }
        $paramTitle = $this->getParamTitle();
        array_unshift($params, $paramTitle);
        return $params;
    }
    public function getAddonBulkDialogFromData($data)
    {
        require_once GlobalsUC::$pathViewsObjects . "addon_view.class.php";
        $objAddonView = new UniteCreatorAddonView(false);
        $response = $objAddonView->getBulkDialogContents($data);
        return $response;
    }
    private function a____________DATE____________()
    {
    }
    public function getDateRangeString($startTimeStamp, $endTimeStamp, $pattern = null)
    {
        $displayDate = "";
        $startDate = getDate($startTimeStamp);
        $endDate = getDate($endTimeStamp);
        if ($startDate["year"] . $startDate["mon"] . $startDate["mday"] == $endDate["year"] . $endDate["mon"] . $endDate["mday"]) {
            $displayDate = date('j M Y', $endTimeStamp);
            return $displayDate;
        }
        if ($startDate["year"] != $endDate["year"]) {
            $displayDate = date('j M Y', $startTimeStamp) . " - " . date('j M Y', $endTimeStamp);
            return $displayDate;
        }
        if ($startDate["mon"] == $endDate["mon"]) {
            $displayDate = date('j', $startTimeStamp) . "-" . date('j M Y', $endTimeStamp);
        }
        $displayDate = date('j M', $startTimeStamp) . " - " . date('j M Y', $endTimeStamp);
        return $displayDate;
    }
    private function a____________SCREENSHOTS____________()
    {
    }
    private function saveScreenshot_layout_getFilepath($objLayout, $ext)
    {
        $pathImage = $objLayout->getPreviewImageFilepath();
        if ($pathImage) {
            $isGenerated = UniteFunctionsUC::isPathUnderBase($pathImage, GlobalsUC::$path_images_screenshots);
            $info = pathinfo($pathImage);
            $extExisting = UniteFunctionsUC::getVal($info, "extension");
            if ($extExisting == $ext && $isGenerated == true) {
                return $pathImage;
            }
        }
        $title = $objLayout->getTitle();
        $type = $objLayout->getLayoutType();
        $filename = "layout_" . HelperUC::convertTitleToHandle($title);
        if (!empty($type)) {
            $filename .= "_" . $type;
        }
        $addition = "";
        $counter = 1;
        do {
            $filepath = GlobalsUC::$path_images_screenshots . $filename . $addition . "." . $ext;
            $isExists = file_exists($filepath);
            $counter++;
            $addition = "_" . $counter;
        } while ($isExists == true);
        return $filepath;
    }
    private function saveScreenshot_layout($layoutID, $screenshotData, $ext)
    {
        $objLayout = new UniteCreatorLayout();
        $objLayout->initByID($layoutID);
        UniteFunctionsUC::checkCreateDir(GlobalsUC::$path_images_screenshots);
        $filepath = $this->saveScreenshot_layout_getFilepath($objLayout, $ext);
        $pathExistingImage = $objLayout->getPreviewImageFilepath();
        $isGenerated = UniteFunctionsUC::isPathUnderBase($pathExistingImage, GlobalsUC::$path_images_screenshots);
        if ($isGenerated == true && $pathExistingImage != $filepath && file_exists($pathExistingImage)) {
            @unlink($pathExistingImage);
        }
        UniteFunctionsUC::writeFile($screenshotData, $filepath);
        if (file_exists($filepath) == false) {
            UniteFunctionsUC::throwError("The screenshot could not be created");
        }
        $urlScreenshot = HelperUC::pathToRelativeUrl($filepath);
        $objLayout->updateParam("preview_image", $urlScreenshot);
        $objLayout->updateParam("page_image", "");
        $urlScreenshotFull = HelperUC::URLtoFull($urlScreenshot);
        return $urlScreenshotFull;
    }
    public function saveScreenshotFromData($data)
    {
        try {
            $source = UniteFunctionsUC::getVal($data, "source");
            $layoutID = UniteFunctionsUC::getVal($data, "layoutid");
            $screenshotData = UniteFunctionsUC::getVal($data, "screenshot_data");
            $ext = UniteFunctionsUC::getVal($data, "ext");
            UniteFunctionsUC::validateNotEmpty($layoutID, "layoutID");
            switch ($ext) {
                case "jpg":
                    $screenshotData = $this->imageView->convertJPGDataToJPG($screenshotData);
                    break;
                case "png":
                    $screenshotData = $this->imageView->convertPngDataToPng($screenshotData);
                    break;
                default:
                    UniteFunctionsUC::throwError("wrong extension");
                    break;
            }
            switch ($source) {
                case "layout":
                    $urlScreenshot = $this->saveScreenshot_layout($layoutID, $screenshotData, $ext);
                    break;
                case "addon":
                    dmp("save addon screenshot");
                    break;
                default:
                    UniteFunctionsUC::throwError("wrong save source");
                    break;
            }
        } catch (Exception $e) {
            $errorMessage = $e->getMessage();
            $output = array();
            $output["error_message"] = $errorMessage;
            return $errorMessage;
        }
        $output = array();
        $output["url_screenshot"] = $urlScreenshot;
        $output["layoutid"] = $layoutID;
        return $output;
    }
    public function getPostListForSelectFromData($data, $addNotSelected = false)
    {
        dmp("getPostListForSelect: function for overide");
        exit;
    }
    private function getPostAttributesFromData_getPostAdditions($data)
    {
        $arrAdditions = array();
        $enableCustomFields = UniteFunctionsUC::getVal($data, "enable_custom_fields");
        $enableCustomFields = UniteFunctionsUC::strToBool($enableCustomFields);
        $enableCategory = UniteFunctionsUC::getVal($data, "enable_category");
        $enableCategory = UniteFunctionsUC::strToBool($enableCategory);
        $enableWoo = UniteFunctionsUC::getVal($data, "enable_woo");
        $enableWoo = UniteFunctionsUC::strToBool($enableWoo);
        if ($enableCustomFields == true) {
            $arrAdditions[] = GlobalsProviderUC::POST_ADDITION_CUSTOMFIELDS;
        }
        if ($enableCategory == true) {
            $arrAdditions[] = GlobalsProviderUC::POST_ADDITION_CATEGORY;
        }
        if ($enableWoo == true) {
            $arrAdditions[] = GlobalsProviderUC::POST_ADDITION_WOO;
        }
        return $arrAdditions;
    }
    public function getPostAttributesFromData($data)
    {
        $postID = UniteFunctionsUC::getVal($data, "postid");
        require_once GlobalsUC::$pathViewsObjects . "addon_view.class.php";
        require_once GlobalsUC::$pathProvider . "views/addon.php";
        $objAddonView = new UniteCreatorAddonViewProvider();
        $arrPostAdditions = $this->getPostAttributesFromData_getPostAdditions($data);
        $arrParams = $objAddonView->getChildParams_post($postID, $arrPostAdditions);
        $response = array();
        $response["child_params_post"] = $arrParams;
        return $response;
    }
}