File "unitecreator_helperhtml.class.php"

Full path: /home/kosmetik/public_html/wp-content/plugins/unlimited-elements-for-elementor/inc_php/unitecreator_helperhtml.class.php
File size: 22.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 HelperHtmlUC extends UniteHelperBaseUC
{
    private static $isGlobalJSPut = false;
    private static $isPutBrowsersOnce = false;
    protected function z_____GETTERS______()
    {
    }
    public static function getHtmlLink($link, $text, $id = "", $class = "", $isNewWindow = false)
    {
        if (!empty($class)) {
            $class = " class='{$class}'";
        }
        if (!empty($id)) {
            $id = " id='{$id}'";
        }
        $htmlAdd = "";
        if ($isNewWindow == true) {
            $htmlAdd = ' target="_blank"';
        }
        $html = "<a href=\"{$link}\"" . $id . $class . $htmlAdd . ">{$text}</a>";
        return $html;
    }
    public static function getHTMLSelect($arr, $default = "", $htmlParams = "", $assoc = false, $addData = null, $addDataText = null)
    {
        $html = "<select {$htmlParams}>";
        if ($addData == "not_chosen") {
            $selected = "";
            $default = trim($default);
            if (empty($default)) {
                $selected = " selected='selected' ";
            }
            $itemText = $addDataText;
            if (empty($itemText)) {
                $itemText = "[" . esc_html__("not chosen", "unlimited-elements-for-elementor") . "]";
            }
            $html .= "<option {$selected} value=''>{$itemText}</option>";
        }
        foreach ($arr as $key => $item) {
            $selected = "";
            if ($assoc == false) {
                if ($item == $default) {
                    $selected = " selected='selected' ";
                }
            } else {
                if (trim($key) == trim($default)) {
                    $selected = " selected='selected' ";
                }
            }
            $addHtml = "";
            if (strpos($key, "html_select_sap") !== false) {
                $addHtml = " disabled";
            }
            if ($assoc == true) {
                $html .= "<option {$selected} value='{$key}' {$addHtml}>{$item}</option>";
            } else {
                $html .= "<option {$selected} value='{$item}' {$addHtml}>{$item}</option>";
            }
        }
        $html .= "</select>";
        return $html;
    }
    public static function getTableAddonsRow($addonID, $title)
    {
        $editLink = HelperUC::getViewUrl_EditAddon($addonID);
        $htmlTitle = htmlspecialchars($title);
        $html = "<tr>\n";
        $html .= "<td><a href='{$editLink}'>{$title}</a></td>\n";
        $html .= "\t<td>\n";
        $html .= " \t  <a href='{$editLink}' class='unite-button-secondary float_left mleft_15'>" . esc_html__("Edit", "unlimited-elements-for-elementor") . "</a>\n";
        $html .= "\t\t<a href='javascript:void(0)' data-addonid='{$addonID}' class='uc-button-delete unite-button-secondary float_left mleft_15'>" . esc_html__("Delete", "unlimited-elements-for-elementor") . "</a>";
        $html .= "\t\t<span class='loader_text uc-loader-delete mleft_10' style='display:none'>" . esc_html__("Deleting", "unlimited-elements-for-elementor") . "</span>";
        $html .= "\t\t<a href='javascript:void(0)' data-addonid='{$addonID}' class='uc-button-duplicate unite-button-secondary float_left mleft_15'>" . esc_html__("Duplicate", "unlimited-elements-for-elementor") . "</a>\n";
        $html .= "\t\t<span class='loader_text uc-loader-duplicate mleft_10' style='display:none'>" . esc_html__("Duplicating", "unlimited-elements-for-elementor") . "</span>";
        $html .= "\t\t<a href='javascript:void(0)' data-addonid='{$addonID}' data-title='{$htmlTitle}' class='uc-button-savelibrary unite-button-secondary float_left mleft_15'>" . esc_html__("Save To Library", "unlimited-elements-for-elementor") . "</a>\n";
        $html .= "\t\t<span class='loader_text uc-loader-save mleft_10' style='display:none'>" . esc_html__("Saving to library", "unlimited-elements-for-elementor") . "</span>";
        $html .= "\t</td>\n";
        $html .= "\t</tr>\n";
        return $html;
    }
    public static function getGlobalJsOutput()
    {
        if (self::$isGlobalJSPut == true) {
            return "";
        }
        self::$isGlobalJSPut = true;
        $jsArrayText = UniteFunctionsUC::phpArrayToJsArrayText(GlobalsUC::$arrClientSideText, "\t\t\t\t");
        $pathAssets = HelperUC::pathToRelative(GlobalsUC::$pathAssets, false);
        $pathAssets = urlencode($pathAssets);
        $objWebAPI = new UniteCreatorWebAPI();
        $isNeedCheckCatalog = $objWebAPI->isTimeToCheckCatalog();
        $arrGeneralSettings = array();
        $arrGeneralSettings["color_picker_type"] = HelperUC::getGeneralSetting("color_picker_type");
        $arrGeneralSettings = UniteProviderFunctionsUC::applyFilters(UniteCreatorFilters::FILTER_CLIENTSIDE_GENERAL_SETTINGS, $arrGeneralSettings);
        $strGeneralSettings = UniteFunctionsUC::jsonEncodeForClientSide($arrGeneralSettings);
        $js = "";
        $js .= self::TAB2 . 'var g_pluginNameUC = "' . GlobalsUC::PLUGIN_NAME . '";' . self::BR;
        $js .= self::TAB2 . 'var g_pathAssetsUC = decodeURIComponent("' . $pathAssets . '");' . self::BR;
        $js .= self::TAB2 . 'var g_urlAjaxActionsUC = "' . GlobalsUC::$url_ajax . '";' . self::BR;
        $js .= self::TAB2 . 'var g_urlViewBaseUC = "' . GlobalsUC::$url_component_admin . '";' . self::BR;
        $js .= self::TAB2 . 'var g_urlViewBaseNowindowUC = "' . GlobalsUC::$url_component_admin_nowindow . '";' . self::BR;
        $js .= self::TAB2 . 'var g_urlBaseUC = "' . GlobalsUC::$url_base . '";' . self::BR;
        $js .= self::TAB2 . 'var g_urlAssetsUC = "' . GlobalsUC::$url_assets . '";' . self::BR;
        $js .= self::TAB2 . 'var g_settingsObjUC = {};' . self::BR;
        $js .= self::TAB2 . 'var g_ucAdmin;' . self::BR;
        if (GlobalsUC::$is_admin_debug_mode == true) {
            $js .= self::TAB2 . 'var g_ucDebugMode=true;' . self::BR;
        }
        $js .= self::TAB2 . "var g_ucGeneralSettings = {$strGeneralSettings};" . self::BR;
        if (GlobalsUC::$enableWebCatalog == true) {
            if ($isNeedCheckCatalog) {
                $js .= self::TAB2 . 'var g_ucCheckCatalog = true;' . self::BR;
            }
            $js .= self::TAB2 . 'var g_ucCatalogAddonType="' . GlobalsUC::$defaultAddonType . '";' . self::BR;
        }
        $jsonFaIcons = UniteFontManagerUC::fa_getJsonIcons();
        $js .= self::TAB2 . 'var g_ucFaIcons = ' . $jsonFaIcons . ';' . self::BR;
        $objShapes = new UniteShapeManagerUC();
        $jsonShapes = $objShapes->getJsonShapes();
        $js .= self::TAB2 . 'var g_ucArrSvgShapes = ' . $jsonShapes . ';' . self::BR;
        if (method_exists("UniteProviderFunctionsUC", "getNonce")) {
            $js .= self::TAB2 . "var g_ucNonce='" . UniteProviderFunctionsUC::getNonce() . "';";
        }
        $js .= self::TAB2 . 'var g_uctext = {' . self::BR;
        $js .= self::TAB3 . $jsArrayText . self::BR;
        $js .= self::TAB2 . '};' . self::BR;
        return $js;
    }
    public static function getGlobalDebugDivs()
    {
        $html = "";
        $html .= self::TAB2 . '<div id="div_debug" class="unite-div-debug"></div>' . self::BR;
        $html .= self::TAB2 . '<div id="debug_line" style="display:none"></div>' . self::BR;
        $html .= self::TAB2 . '<div id="debug_side" style="display:none"></div>' . self::BR;
        $html .= self::TAB2 . '<div class="unite_error_message" id="error_message" style="display:none;"></div>' . self::BR;
        $html .= self::TAB2 . '<div class="unite_success_message" id="success_message" style="display:none;"></div>' . self::BR;
        return $html;
    }
    public static function getVersionText()
    {
        $filepath = GlobalsUC::$pathPlugin . "release_log.txt";
        $content = file_get_contents($filepath);
        return $content;
    }
    public static function getErrorMessageHtml($message, $trace = "")
    {
        $html = '<div class="unite-error-message">';
        $html .= '<div style="unite-error-message-inner">';
        $html .= $message;
        if (!empty($trace)) {
            $html .= '<div class="unite-error-message-trace">';
            $html .= "<pre>{$trace}</pre>";
            $html .= "</div>";
        }
        $html .= '</div></div>';
        return $html;
    }
    public static function getHtmlSettings($filename, $formID, $arrValues = array())
    {
        ob_start();
        $html = self::putHtmlSettings($filename, $formID, $arrValues);
        $html = ob_get_contents();
        ob_clean();
        ob_end_clean();
        return $html;
    }
    public static function getHtmlCustomScripts($arrScripts)
    {
        if (empty($arrScripts)) {
            return "";
        }
        if (is_array($arrScripts) == false) {
            UniteFunctionsUC::throwError("arrScripts should be array");
        }
        if (count($arrScripts) == 1 && empty($arrScripts[0])) {
            return "";
        }
        $html = "<script type='text/javascript'>" . self::BR;
        foreach ($arrScripts as $script) {
            $html .= $script . self::BR;
        }
        $html .= "</script>" . self::BR;
        return $html;
    }
    public static function getHtmlCustomStyles($arrStyles, $wrapInTag = true)
    {
        if (empty($arrStyles)) {
            return "";
        }
        $css = "";
        if (is_array($arrStyles) == false) {
            $css = $arrStyles;
        } else {
            if (count($arrStyles) == 1 && empty($arrStyles[0])) {
                return "";
            }
            foreach ($arrStyles as $style) {
                $css .= $style . self::BR;
            }
        }
        if ($wrapInTag == false) {
            return $css;
        }
        $html = "<style type='text/css'>" . self::BR;
        $html .= $css;
        $html .= "</style>" . self::BR;
        return $html;
    }
    public static function getHtmlCssInclude($url)
    {
        $html = "<link rel=\"stylesheet\" type=\"text/css\" href=\"{$url}\">";
        return $html;
    }
    public static function getHtmlJsInclude($url)
    {
        $html = "<script type=\"text/javascript\" src=\"{$url}\"></script>";
        return $html;
    }
    private static function getHtmlIncludes($type, $arrIncludes, $tab = null)
    {
        if (empty($arrIncludes)) {
            return "";
        }
        $html = "";
        foreach ($arrIncludes as $urlInclude) {
            if ($tab !== null) {
                $html .= $tab;
            }
            if ($type == "css") {
                $html .= self::getHtmlCssInclude($urlInclude) . self::BR;
            } else {
                $html .= self::getHtmlJsInclude($urlInclude) . self::BR;
            }
        }
        return $html;
    }
    public static function getHtmlCssIncludes($arrCssIncludes, $tab = null)
    {
        return self::getHtmlIncludes("css", $arrCssIncludes, $tab);
    }
    public static function getHtmlJsIncludes($arrJsIncludes, $tab = null)
    {
        return self::getHtmlIncludes("js", $arrJsIncludes, $tab);
    }
    protected function z_________PUTTERS_______()
    {
    }
    public static function putAddonTypesBrowserDialogs($filterType = null, $objLayoutType = null)
    {
        if (self::$isPutBrowsersOnce == true) {
            return false;
        }
        self::$isPutBrowsersOnce = true;
        $arrMultipleTypesRegular = null;
        if (!empty($objLayoutType) && !empty($objLayoutType->arrLayoutBrowserAddonTypes)) {
            $arrMultipleTypesRegular = $objLayoutType->arrLayoutBrowserAddonTypes;
        }
        if (!empty($filterType)) {
            if (is_array($arrTypes)) {
                $arrTypes = $filterType;
            } else {
                $arrTypes = array($filterType);
            }
        } else {
            $arrTypes = array(GlobalsUC::ADDON_TYPE_REGULAR_ADDON, GlobalsUC::ADDON_TYPE_SHAPE_DEVIDER, GlobalsUC::ADDON_TYPE_LAYOUT_SECTION, GlobalsUC::ADDON_TYPE_SHAPES, GlobalsUC::ADDON_TYPE_BGADDON);
        }
        foreach ($arrTypes as $addontype) {
            if ($addontype == GlobalsUC::ADDON_TYPE_REGULAR_ADDON && !empty($arrMultipleTypesRegular)) {
                $addontype = $arrMultipleTypesRegular;
            }
            $objBrowser = new UniteCreatorBrowser();
            $objBrowser->initAddonType($addontype);
            $objBrowser->putBrowser();
        }
    }
    public static function putGlobalsHtmlOutput()
    {
        if (self::$isGlobalJSPut == true) {
            return false;
        }
        ?>
			<script type="text/javascript">
				
				<?php 
        echo self::getGlobalJsOutput();
        ?>
				
			</script>
			
			<?php 
        echo self::getGlobalDebugDivs();
        if (method_exists("UniteProviderFunctionsUC", "putMasterHTML")) {
            UniteProviderFunctionsUC::putMasterHTML();
        }
        ?>			
			
			<?php 
    }
    public static function putDialogControlFieldsNotice()
    {
        ?>
				<div class="unite-inputs-sap"></div> 
			
				<div class="unite-inputs-label unite-italic">
					* <?php 
        esc_html_e("only dropdown and radio boolean field types are used for conditional inputs", "unlimited-elements-for-elementor");
        ?>.
				</div>
			
			<?php 
    }
    public static function putDialogActions($prefix, $buttonTitle, $loaderTitle, $successTitle, $buttonClass = "primary")
    {
        $prefix = esc_attr($prefix);
        ?>
				<div id="<?php 
        echo esc_attr($prefix);
        ?>_actions_wrapper" class="unite-dialog-actions">
					
					<a id="<?php 
        echo esc_attr($prefix);
        ?>_action" href="javascript:void(0)" class="unite-button-<?php 
        echo esc_attr($buttonClass);
        ?>"><?php 
        echo esc_html($buttonTitle);
        ?></a>
					<div id="<?php 
        echo esc_attr($prefix);
        ?>_loader" class="loader_text" style="display:none"><?php 
        echo esc_html($loaderTitle);
        ?></div>
					<div id="<?php 
        echo esc_attr($prefix);
        ?>_error" class="unite-dialog-error"  style="display:none"></div>
					<div id="<?php 
        echo esc_attr($prefix);
        ?>_success" class="unite-dialog-success" style="display:none"><?php 
        echo esc_html($successTitle);
        ?></div>
					
				</div>
			<?php 
    }
    public static function putPluginVersionHtml()
    {
        $objPlugins = new UniteCreatorPlugins();
        $arrPlugins = $objPlugins->getArrPlugins();
        if (empty($arrPlugins)) {
            return false;
        }
        foreach ($arrPlugins as $plugin) {
            $name = UniteFunctionsUC::getVal($plugin, "name");
            $title = UniteFunctionsUC::getVal($plugin, "title");
            $version = UniteFunctionsUC::getVal($plugin, "version");
            $silentMode = UniteFunctionsUC::getVal($plugin, "silent_mode");
            $silentMode = UniteFunctionsUC::strToBool($silentMode);
            if ($silentMode == true) {
                continue;
            }
            switch ($name) {
                case "create_addons":
                    $title = "Create addons plugin {$version}";
                    break;
                default:
                    $title = "{$title} {$version}";
                    break;
            }
            echo ", ";
            echo UniteProviderFunctionsUC::escCombinedHtml($title);
        }
    }
    public static function outputError(Error $e)
    {
        $message = $e->getMessage();
        $trace = $e->getTraceAsString();
        $line = $e->getLine();
        $file = $e->getFile();
        dmp("PHP Error Occured!!!");
        dmp("<b>{$message} </b>");
        dmp("in file: <b>{$file}</b> (line: <b>{$line}</b>)");
        dmp("trace: ");
        dmp($trace);
    }
    public static function outputException($e, $prefix = "", $forceTrace = false)
    {
        if (empty($prefix)) {
            $prefix = GlobalsUC::$currentPluginTitle . " Error: ";
        }
        $message = $prefix . $e->getMessage();
        $trace = $e->getTraceAsString();
        echo "<div style='color:darkred;'>";
        dmp($message);
        if (GlobalsUC::SHOW_TRACE == true || $forceTrace === true) {
            dmp($trace);
        } else {
            if ($e instanceof Error) {
                dmp($trace);
            }
        }
        echo "</div>";
    }
    public static function outputExceptionBox($e, $prefix = "")
    {
        $message = $e->getMessage();
        if (!empty($prefix)) {
            $message = $prefix . ":  " . $message;
        }
        $trace = "";
        $showTrace = GlobalsUC::SHOW_TRACE_FRONT;
        if (UniteProviderFunctionsUC::isAdmin() == true) {
            $showTrace = GlobalsUC::SHOW_TRACE;
        }
        if ($showTrace) {
            $trace = $e->getTraceAsString();
        }
        $html = self::getErrorMessageHtml($message, $trace);
        echo UniteProviderFunctionsUC::escCombinedHtml($html);
    }
    public static function getHiddenInputField($name, $value)
    {
        $value = htmlspecialchars($value);
        $name = esc_attr($name);
        $value = esc_attr($value);
        $html = '<input type="hidden" name="' . $name . '" value="' . $value . '">';
        return $html;
    }
    public static function putHtmlSettings($filename, $formID, $arrValues = array(), $pathSettings = null)
    {
        if ($pathSettings === null) {
            $pathSettings = GlobalsUC::$pathSettings;
        }
        $filepathSettings = $pathSettings . "{$filename}.xml";
        UniteFunctionsUC::validateFilepath($filepathSettings, "settings file - {$filename}.xml");
        $settings = new UniteSettingsAdvancedUC();
        $settings->loadXMLFile($filepathSettings);
        if (!empty($arrValues)) {
            $settings->setStoredValues($arrValues);
        }
        $output = new UniteSettingsOutputWideUC();
        $output->init($settings);
        $output->draw($formID);
    }
    public static function drawSettingsGetHtml($settings, $formName)
    {
        $output = new UniteSettingsOutputWideUC();
        $output->init($settings);
        ob_start();
        $output->draw($formName);
        $htmlSettings = ob_get_contents();
        ob_end_clean();
        return $htmlSettings;
    }
    public static function drawSettings($settings, $formName = null)
    {
        $output = new UniteSettingsOutputWideUC();
        $drawForm = false;
        if (!empty($formName)) {
            $drawForm = true;
        }
        $output->init($settings);
        $output->draw($formName, $drawForm);
    }
    public static function outputMemoryUsageLog()
    {
        $arrLog = HelperUC::getLastMemoryUsage();
        if (empty($arrLog)) {
            echo "no memory log found";
            return false;
        }
        $timestamp = $arrLog[0]["time"];
        $date = UniteFunctionsUC::timestamp2DateTime($timestamp);
        $urlPage = UniteFunctionsUC::getVal($arrLog[0], "current_page");
        ?>
			<div class="unite-title1">Last log from: <b><?php 
        echo esc_html($date);
        ?></b></div>
			<div>Page: <b><?php 
        echo esc_html($urlPage);
        ?></b></div>
			<br>
			
			<table class="unite-table">
				<tr>
					<th>
						Operation
					</th>
					<th>
						Usage
					</th>
					<th>
						Diff
					</th>
				</tr>
			
			<?php 
        foreach ($arrLog as $item) {
            $operation = $item["oper"];
            $usage = $item["usage"];
            $diff = $item["diff"];
            $usage = number_format($usage);
            $diff = number_format($diff);
            ?>
				<tr>
					<td>
						<?php 
            echo esc_html($operation);
            ?>
					</td>
					<td>
						<?php 
            echo esc_html($usage);
            ?>
					</td>
					<td>
						<?php 
            echo esc_html($diff);
            ?>
					</td>
				</tr>
				<?php 
        }
        ?>
			</table>
			<?php 
    }
    public static function putHtmlAdminNotices()
    {
        $arrNotices = HelperUC::getAdminNotices();
        if (empty($arrNotices)) {
            return false;
        }
        $html = "";
        foreach ($arrNotices as $notice) {
            $notice = esc_attr($notice);
            $html .= "\n<div class='unite-admin-notice'>{$notice}</div>\n";
        }
        echo UniteProviderFunctionsUC::escCombinedHtml($html);
    }
    public static function putFooterAdminNotices()
    {
        $arrNotices = HelperUC::getAdminNotices();
        if (empty($arrNotices)) {
            return false;
        }
        ?>
			<script>
				jQuery(document).ready(function(){
					var objHeader = jQuery(".unite_header_wrapper");
					if(objHeader){
						<?php 
        foreach ($arrNotices as $notice) {
            $notice = htmlspecialchars($notice);
            echo "objHeader.append(\"<div class=\\'unite-admin-notice\\'>{$notice}</div>\");";
        }
        ?>
					}
				});
			</script>
			<?php 
    }
    public static function putInternalAdminNotices()
    {
        $masterNotice = null;
        if (strpos(GlobalsUC::URL_API, "http://localhost") !== false) {
            $masterNotice = "Dear developer, Please remove local API url in globals";
        }
        if (empty($masterNotice)) {
            return false;
        }
        ?>
			
			<div class="unite-admin-notice">
				<?php 
        echo esc_html($masterNotice);
        ?>
			</div>
			<?php 
    }
    public static function wrapCssMobile($css, $isTablet = false)
    {
        if (empty($css)) {
            return $css;
        }
        if (is_string($isTablet)) {
            $isTablet = $isTablet == "tablet";
        }
        if ($isTablet == true) {
            $output = "@media (max-width:768px){{$css}}";
        } else {
            $output = "@media (max-width:480px){{$css}}";
        }
        return $output;
    }
    public static function getRatingArray($rating)
    {
        $arrRating = array();
        $empty = array("type" => "empty", "class" => "far fa-star");
        $full = array("type" => "full", "class" => "fas fa-star");
        $half = array("type" => "half", "class" => "fas fa-star-half-alt");
        for ($i = 1; $i <= 5; $i++) {
            $low = floor($rating);
            if ($rating == 0) {
                $arrRating[] = $empty;
                continue;
            }
            if ($rating < $i && $rating > $i - 1) {
                $arrRating[] = $half;
                continue;
            }
            if ($i <= $low) {
                $arrRating[] = $full;
                continue;
            }
            $arrRating[] = $empty;
        }
        return $arrRating;
    }
}