landing-klikaset/wp-content/plugins/unlimited-elements-for-elem.../views/objects/addon_view.class.php

2140 lines
60 KiB
PHP
Raw Normal View History

2024-05-06 11:04:37 +07:00
<?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
* */
defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access');
require_once 'addon_view_childparams.class.php';
if(GlobalsUC::$isProVersion){
require_once GlobalsUC::$pathPro."childparams_pro.class.php";
}
class UniteCreatorAddonView{
protected $objAddon;
protected $settingsItemOutput, $settingsJSOutput, $objAddonType, $addonType;
protected $showToolbar = true, $showHeader = true;
protected $addonLocation;
//show defenitions
protected $putAllTabs = true, $arrTabsToPut = array();
protected $isSVG = false, $showContstantVars = true, $showPreviewSettings = true;
protected $showAddonDefaluts = true, $showTestAddon = true;
protected $showTestAddonNew = false; //hide me
protected $textSingle, $textPlural, $tabHtmlTitle = null;
protected $htmlEditorMode = null, $arrCustomConstants = null;
protected $urlViewBack = null;
protected $showSmallIconOption = null;
protected $addonOptions;
protected $arrSkipPanelParams = array(); //attributes that don't show in right panel
protected $objChildParams = null;
protected $hasAttributesCats = true;
private function z______INIT_______(){}
/**
* constructor
*/
public function __construct(){
if(GlobalsUC::$isProVersion)
$this->objChildParams = new UniteCreatorChildParamsPro();
else
$this->objChildParams = new UniteCreatorAddonViewChildParams();
}
/**
*
* init skip panel params
*/
public function initSkipPanelParams(){
$this->arrSkipPanelParams = array();
$this->arrSkipPanelParams[UniteCreatorDialogParam::PARAM_TYPOGRAPHY] = true;
$this->arrSkipPanelParams[UniteCreatorDialogParam::PARAM_MARGINS] = true;
$this->arrSkipPanelParams[UniteCreatorDialogParam::PARAM_PADDING] = true;
$this->arrSkipPanelParams[UniteCreatorDialogParam::PARAM_BACKGROUND] = true;
$this->arrSkipPanelParams[UniteCreatorDialogParam::PARAM_BORDER] = true;
}
/**
* run view
*/
public function runView($isPutHtml = true){
$this->init();
$this->putHtml();
if($isPutHtml == false)
return(false);
}
/**
* validate init settings
*/
private function validateInitSettings(){
if($this->putAllTabs == false && empty($this->arrTabsToPut))
UniteFunctionsUC::throwError("if all tabs setting turned off should be some tabs in arrTabsToPut array");
}
/**
* get settings item output
*/
private function initSettingsItem(){
$options = $this->objAddon->getOptions();
//items editor - settings
$settingsItem = new UniteCreatorSettings();
$settingsItem->addRadioBoolean("enable_items", esc_html__("Enable Items", "unlimited-elements-for-elementor"), false);
$params = array();
$params["placeholder"] = __("Default is 'Items'","unlimited-elements-for-elementor");
$params["class"] = "alias";
$settingsItem->addTextBox("items_section_title", "", "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;".esc_html__("Section Label", "unlimited-elements-for-elementor"), $params);
$settingsItem->addControl("enable_items", "items_section_title", "show", "true");
//heading
$params = array();
$params["class"] = "alias";
$settingsItem->addTextBox("items_section_heading", "", "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;".esc_html__("Section Heading", "unlimited-elements-for-elementor"), $params);
$settingsItem->addControl("enable_items", "items_section_heading", "show", "true");
//title field
$params["placeholder"] = "Default is: {{{title}}}";
$settingsItem->addTextBox("items_title_field", "", "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;".esc_html__("Title Field", "unlimited-elements-for-elementor"), $params);
$settingsItem->addControl("enable_items", "items_title_field", "show", "true");
$settingsItem->setStoredValues($options);
$this->settingsItemOutput = new UniteSettingsOutputInlineUC();
$this->settingsItemOutput->init($settingsItem);
$this->settingsItemOutput->setAddCss("[wrapperid] .unite_table_settings_wide th{width:100px;}");
}
/**
* get settings item output
*/
private function initSettingsJS(){
$options = $this->objAddon->getOptions();
//items editor - settings
$settingsJS = new UniteCreatorSettings();
$settingsJS->addCheckbox("js_as_module", false, UniteSettingsUC::PARAM_NOTEXT, __("load as module", "unlimited-elements-for-elementor"));
$settingsJS->setStoredValues($options);
$this->settingsJSOutput = new UniteSettingsOutputInlineUC();
$this->settingsJSOutput->init($settingsJS);
}
/**
* init svg addon type
*/
private function initByAddonType_svg(){
$this->putAllTabs = false;
$this->arrTabsToPut["html"] = true;
$this->isSVG = true;
}
/**
* init by addon type generally
*/
private function initByAddonType_general(){
if($this->objAddonType->typeName == GlobalsUC::ADDON_TYPE_BGADDON)
$this->hasAttributesCats = false;
if($this->objAddonType->addonView_htmlTabOnly == true){
$this->putAllTabs = false;
$this->arrTabsToPut["html"] = true;
}
if($this->objAddonType->addonView_showConstantVars == false)
$this->showContstantVars = false;
if($this->objAddonType->addonView_showPreviewSettings == false)
$this->showPreviewSettings = false;
if($this->objAddonType->addonView_showAddonDefaults == false)
$this->showAddonDefaluts = false;
if($this->objAddonType->addonView_showTestAddon == false)
$this->showTestAddon = false;
if(!empty($this->objAddonType->addonView_tabHtmlTitle))
$this->tabHtmlTitle = $this->objAddonType->addonView_tabHtmlTitle;
if(!empty($this->objAddonType->addonView_htmlEditorMode))
$this->htmlEditorMode = $this->objAddonType->addonView_htmlEditorMode;
if(!empty($this->objAddonType->addonView_arrCustomConstants))
$this->arrCustomConstants = $this->objAddonType->addonView_arrCustomConstants;
if(!empty($this->objAddonType->addonView_urlBack))
$this->urlViewBack = $this->objAddonType->addonView_urlBack;
$this->showSmallIconOption = $this->objAddonType->addonView_showSmallIconOption;
}
/**
* init by addon type
*/
private function initByAddonType(){
$this->textSingle = $this->objAddonType->textSingle;
$this->textPlural = $this->objAddonType->textPlural;
if($this->objAddonType->isSVG){
$this->initByAddonType_svg();
return(false);
}
$this->initByAddonType_general();
}
/**
* init the view
*/
private function init(){
$addonID = UniteFunctionsUC::getGetVar("id","",UniteFunctionsUC::SANITIZE_ID);
if(empty($addonID))
UniteFunctionsUC::throwError("Widget ID not given");
$this->objAddon = new UniteCreatorAddon();
$this->objAddon->setOperationType(UniteCreatorAddon::OPERATION_EDIT);
$this->objAddon->initByID($addonID);
$this->addonType = $this->objAddon->getType();
$this->objAddonType = $this->objAddon->getObjAddonType();
$this->addonOptions = $this->objAddon->getOptions();
UniteCreatorAdmin::setAdminGlobalsByAddonType($this->objAddonType, $this->objAddon);
$this->initByAddonType();
$this->initSettingsItem();
$this->initSettingsJS();
$this->validateInitSettings();
$this->initSkipPanelParams();
}
private function z________PUT_HTML______(){}
/**
* get header title
*/
protected function getHeaderTitle(){
$title = $this->objAddon->getTitle(true);
$addonID = $this->objAddon->getID();
$headerTitle = esc_html__("Edit ","unlimited-elements-for-elementor").$this->textSingle;
$headerTitle .= " - " . $title;
return($headerTitle);
}
/**
* put top html
*/
private function putHtml_top(){
$headerTitle = $this->getHeaderTitle();
require HelperUC::getPathTemplate("header");
}
/**
* modify general settings by svg type
*/
private function modifyGeneralSettings_SVG($generalSettings){
$generalSettings->hideSetting("show_small_icon");
$generalSettings->hideSetting("text_preview");
return($generalSettings);
}
/**
* modify general settings by svg type
*/
private function modifyGeneralSettings_general($generalSettings){
//hide preview settings
if($this->showPreviewSettings == false){
$generalSettings->hideSetting("show_small_icon");
$generalSettings->hideSetting("text_preview");
$generalSettings->hideSetting("preview_size");
$generalSettings->hideSetting("preview_bgcol");
}
if($this->showSmallIconOption == false){
$generalSettings->hideSetting("show_small_icon");
}
return($generalSettings);
}
/**
* init general settings from file
*/
private function initGeneralSettings(){
$filepathAddonSettings = GlobalsUC::$pathSettings."addon_fields.php";
require $filepathAddonSettings;
if($this->isSVG)
$generalSettings = $this->modifyGeneralSettings_SVG($generalSettings);
else
$generalSettings = $this->modifyGeneralSettings_general($generalSettings);
return($generalSettings);
}
/**
* put general settings tab html
*/
private function putHtml_generalSettings(){
$addonID = $this->objAddon->getID();
$title = $this->objAddon->getTitle(true);
$name = $this->objAddon->getNameByType();
$catTitle = $this->objAddon->getCatTitle();
$generalSettings = $this->initGeneralSettings();
//set options from addon
$arrOptions = $this->objAddon->getOptions();
$generalSettings->setStoredValues($arrOptions);
$settingsOutput = new UniteSettingsOutputWideUC();
$settingsOutput->init($generalSettings);
$addonTypeTitle = $this->objAddonType->textShowType;
?>
<div class="uc-edit-addon-col uc-col-first">
<span id="addon_id" data-addonid="<?php echo esc_attr($addonID)?>" style="display:none"></span>
<?php echo $this->textSingle.esc_html__(" Title", "unlimited-elements-for-elementor"); ?>:
<div class="vert_sap5"></div>
<input type="text" id="text_addon_title" value="<?php echo esc_attr($title)?>" class="unite-input-regular">
<!-- NAME -->
<div class="vert_sap15"></div>
<?php echo $this->textSingle.esc_html__(" Name", "unlimited-elements-for-elementor"); ?>:
<div class="vert_sap5"></div>
<input type="text" id="text_addon_name" value="<?php echo esc_attr($name)?>" class="unite-input-regular">
<!-- TYPE -->
<div class="vert_sap20"></div>
<?php esc_html_e("Widget Type", "unlimited-elements-for-elementor");?>: <b> <?php echo esc_html($addonTypeTitle)?> </b>
<?php if(!empty($catTitle)):?>
<div class="vert_sap10"></div>
<?php esc_html_e("Category", "unlimited-elements-for-elementor");?>:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<b> <?php echo $catTitle?> </b>
<?php endif?>
<?php UniteProviderFunctionsUC::doAction(UniteCreatorFilters::ACTION_EDIT_ADDON_ADDSETTINGS, $arrOptions)?>
</div>
<div class="uc-edit-addon-col uc-col-second">
<?php
$settingsOutput->draw("uc_general_settings", true);
?>
</div>
<div class="unite-clear"></div>
<div class="vert_sap15"></div>
<?php
}
/**
* if put tab
*/
private function isPutTab($tabName){
if($this->putAllTabs == true)
return(true);
if(isset($this->arrTabsToPut[$tabName]))
return(true);
return(false);
}
/**
* if put changelog tab
*/
private function isPutChangelogTab(){
$isChangelogEnabled = HelperProviderUC::isAddonChangelogEnabled();
return $isChangelogEnabled === true;
}
/**
* if put revisions tab
*/
private function isPutRevisionsTab(){
$isRevisionsEnabled = HelperProviderUC::isAddonRevisionsEnabled();
return $isRevisionsEnabled === true;
}
/**
* put tabs html
*/
private function putHtml_tabs(){
$isPut_general = true; //always put general tab
$isPut_html = $this->isPutTab("html");
$isPut_attr = $this->isPutTab("attr");
$isPut_itemattr = $this->isPutTab("itemattr");
$isPut_css = $this->isPutTab("css");
$isPut_js = $this->isPutTab("js");
$isPut_includes = $this->isPutTab("includes");
$isPut_assets = $this->isPutTab("assets");
$isPut_changelog = $this->isPutChangelogTab();
$isPut_revisions = $this->isPutRevisionsTab();
$htmlTabTitle = esc_html__("HTML", "unlimited-elements-for-elementor");
if($this->isSVG == true)
$htmlTabTitle = esc_html__("SVG Content","unlimited-elements-for-elementor");
else{
if(!empty($this->tabHtmlTitle))
$htmlTabTitle = $this->tabHtmlTitle;
}
?>
<div id="uc_tabs" class="uc-tabs uc-tabs-disabled" data-inittab="uc_tablink_general">
<?php if($isPut_general):?>
<a id="uc_tablink_general" href="javascript:void(0)" data-contentid="uc_tab_general">
<?php esc_html_e("General", "unlimited-elements-for-elementor")?>
</a>
<?php endif?>
<?php if($isPut_attr):?>
<a id="uc_tablink_attr" href="javascript:void(0)" data-contentid="uc_tab_attr">
<?php esc_html_e("Attributes", "unlimited-elements-for-elementor")?>
</a>
<?php endif?>
<?php if($isPut_itemattr):?>
<a id="uc_tablink_itemattr" href="javascript:void(0)" data-contentid="uc_tab_itemattr">
<?php esc_html_e("Item Attributes", "unlimited-elements-for-elementor")?>
</a>
<?php endif?>
<?php if($isPut_html):?>
<a id="uc_tablink_html" href="javascript:void(0)" data-contentid="uc_tab_html">
<?php echo esc_html($htmlTabTitle)?>
</a>
<?php endif?>
<?php if($isPut_css):?>
<a id="uc_tablink_css" href="javascript:void(0)" data-contentid="uc_tab_css">
<?php esc_html_e("CSS", "unlimited-elements-for-elementor")?>
</a>
<?php endif?>
<?php if($isPut_js):?>
<a id="uc_tablink_js" href="javascript:void(0)" data-contentid="uc_tab_js">
<?php esc_html_e("Javascript", "unlimited-elements-for-elementor")?>
</a>
<?php endif?>
<?php if($isPut_includes):?>
<a id="uc_tablink_includes" href="javascript:void(0)" data-contentid="uc_tab_includes">
<?php esc_html_e("js/css Includes", "unlimited-elements-for-elementor")?>
</a>
<?php endif?>
<?php if($isPut_assets):?>
<a id="uc_tablink_assets" href="javascript:void(0)" data-contentid="uc_tab_assets">
<?php esc_html_e("Assets", "unlimited-elements-for-elementor")?>
</a>
<?php endif?>
<?php if($isPut_changelog): ?>
<a id="uc_tablink_changelog" href="javascript:void(0)" data-contentid="uc_tab_changelog">
<?php esc_html_e("Changelog", "unlimited-elements-for-elementor") ?>
</a>
<?php endif?>
<?php if($isPut_revisions): ?>
<a id="uc_tablink_revisions" href="javascript:void(0)" data-contentid="uc_tab_revisions">
<?php esc_html_e("Revisions", "unlimited-elements-for-elementor") ?>
</a>
<?php endif?>
</div>
<div class="unite-clear"></div>
<?php
}
/**
* put item for library include
*/
private function putIncludeLibraryItem($title, $name, $arrIncludes){
$htmlChecked = "";
if(in_array($name, $arrIncludes) == true)
$htmlChecked = "checked='checked'";
?>
<li>
<input type="checkbox" id="check_include_<?php echo esc_attr($name)?>" data-include="<?php echo esc_attr($name)?>" <?php echo UniteProviderFunctionsUC::escAddParam($htmlChecked)?>>
<label for="check_include_<?php echo esc_attr($name)?>">
<?php echo esc_html($title)?>
</label>
</li>
<?php
}
/**
* put library includes
*/
private function putHtml_LibraryIncludes($arrJsLibIncludes){
$objLibrary = new UniteCreatorLibrary();
$arrLibrary = $objLibrary->getArrLibrary();
foreach($arrLibrary as $item){
$name = $item["name"];
$title = $item["title"];
$this->putIncludeLibraryItem($title, $name, $arrJsLibIncludes);
}
}
/**
* put includes assets browser
*/
private function putHtml_Includes_assetsBrowser(){
$objAssets = new UniteCreatorAssetsWork();
$objAssets->initByKey("includes", $this->objAddon);
$pathAssets = $this->objAddon->getPathAssetsFull();
$objAssets->putHTML($pathAssets);
}
/**
* put includes html
*/
private function putHtml_Includes(){
$arrJsLibIncludes = $this->objAddon->getJSLibIncludes();
$arrJsIncludes = $this->objAddon->getJSIncludes();
$arrCssIncludes = $this->objAddon->getCSSIncludes();
$dataJs = UniteFunctionsUC::jsonEncodeForHtmlData($arrJsIncludes, "init");
$dataCss = UniteFunctionsUC::jsonEncodeForHtmlData($arrCssIncludes, "init");
?>
<table id="uc_table_includes" class="unite_table_items">
<thead>
<tr>
<th class="uc-table-includes-left">
<b>
<?php esc_html_e("Choose From Browser", "unlimited-elements-for-elementor")?>
</b>
</th>
<th class="uc-table-includes-right">
<b>
<?php esc_html_e("JS / Css Includes", "unlimited-elements-for-elementor")?>
</b>
</th>
</tr>
</thead>
<tbody>
<tr>
<td valign="top">
<?php $this->putHtml_Includes_assetsBrowser(); ?>
</td>
<td valign="top">
<ul id="uc-js-libraries" class="unite-list-hor">
<li class="pright_10">
<span class="unite-title2"><?php esc_html_e("Libraries", "unlimited-elements-for-elementor")?>:</span> </b>
</li>
<?php $this->putHtml_LibraryIncludes($arrJsLibIncludes)?>
</ul>
<div class="unite-clear"></div>
<div id="uc_includes_wrapper">
<div class="unite-title2">Js Includes:</div>
<ul id="uc-js-includes" class="uc-js-includes" data-type="js" <?php echo UniteProviderFunctionsUC::escAddParam($dataJs)?>></ul>
<div class="unite-title2">Css Includes:</div>
<ul id="uc-css-includes" class="uc-css-includes" data-type="css" <?php echo UniteProviderFunctionsUC::escAddParam($dataCss)?>></ul>
</div>
</td>
</tr>
</tbody>
</table>
<div id="uc_dialog_unclude_settings" title="<?php esc_html_e("Include Settings")?>" class="unite-inputs" style="display:none">
<div class="unite-dialog-inside">
<?php esc_html_e("Include When:", "unlimited-elements-for-elementor")?>
<span class="hor_sap"></span>
<select id="uc_dialog_include_attr"></select>
<span id="uc_dialog_include_value_container" style="display:none">
<span class="hor_sap5"></span>
<?php esc_html_e("equals", "unlimited-elements-for-elementor")?>
<span class="hor_sap5"></span>
<select id="uc_dialog_include_values" multiple class="uc-dialog-include-settings__values"></select>
</span>
<?php HelperHtmlUC::putDialogControlFieldsNotice() ?>
<div class="vert_sap20"></div>
<label class="unite-inputs-label">
<?php _e("Handle")?>
</label>
<input type="text" name="include_handle" class="unite-input-alias">
<i>* <?php _e("leave empty for auto", "unlimited-elements-for-elementor")?></i>
<div class="vert_sap10"></div>
<div class="uc-dialog-includes-js">
<label>
<input id="uc_dialog_include_after_elementor_frontend" type="checkbox" name="include_after_elementor_frontend">
&nbsp;
<?php _e("Include after elementor-frontend.js", "unlimited-elements-for-elementor")?>
</label>
<div class="vert_sap10"></div>
<label>
<input id="uc_dialog_include_as_module" type="checkbox" name="include_as_module">
&nbsp;
<?php _e("Include as ES6 module", "unlimited-elements-for-elementor")?>
</label>
</div>
</div>
</div>
<?php
}
/**
* put assets tab html
*/
private function putHtml_assetsTab(){
$path = $this->objAddon->getPathAssets();
$pathAbsolute = $this->objAddon->getPathAssetsFull();
$textNotSet = esc_html__("[not set]", "unlimited-elements-for-elementor");
$unsetAddHtml = "style='display:none'";
$htmlPath = $textNotSet;
$dataPath = "";
if(!empty($path)){
$unsetAddHtml = "";
$htmlPath = htmlspecialchars($path);
$dataPath = $htmlPath;
}
?>
<div class="uc-assets-folder-wrapper">
<span class="uc-assets-folder-label"><?php echo $this->textSingle.esc_html__(" Assets Path: ", "unlimited-elements-for-elementor")?></span>
<span id="uc_assets_path" class="uc-assets-folder-folder" data-path="<?php echo esc_attr($dataPath)?>" data-textnotset="<?php echo esc_attr($textNotSet)?>"><?php echo esc_html($htmlPath)?></span>
<a id="uc_button_set_assets_folder" href="javascript:void(0)" class="unite-button-secondary"><?php esc_html_e("Set", "unlimited-elements-for-elementor")?></a>
<a id="uc_button_set_assets_unset" href="javascript:void(0)" class="unite-button-secondary" <?php echo UniteProviderFunctionsUC::escAddParam($unsetAddHtml)?>><?php esc_html_e("Unset", "unlimited-elements-for-elementor")?></a>
</div>
<?php
$objAssets = new UniteCreatorAssetsWork();
$objAssets->initByKey("assets_manager", $this->objAddon);
$objAssets->putHTML($pathAbsolute);
}
/**
* put changelog tab html
*/
private function putHtml_changelogTab(){
$changelog = new UniteCreatorAddonChangelog();
$types = $changelog->getTypes();
?>
<div class="uc-changelogs-wrapper">
<div class="uc-changelogs-form">
<div class="uc-changelogs-form-error">
<div class="uc-changelogs-form-error-title"></div>
<div class="uc-changelogs-form-error-content"></div>
</div>
<div class="uc-changelogs-form-editing">
<div class="uc-changelogs-form-editing-title">
<?php esc_html_e("Editing:", "unlimited-elements-for-elementor"); ?>
</div>
<div class="uc-changelogs-form-editing-content"></div>
</div>
<input type="hidden" name="id" />
<select name="type">
<option value="" selected disabled>
<?php esc_html_e("Select type", "unlimited-elements-for-elementor"); ?>
</option>
<?php foreach($types as $value => $label): ?>
<option value="<?php esc_attr_e($value); ?>"><?php esc_html_e($label); ?></option>
<?php endforeach; ?>
</select>
<textarea name="text" placeholder="<?php esc_attr_e("Enter text", "unlimited-elements-for-elementor"); ?>"></textarea>
<div class="uc-changelogs-form-actions">
<button class="uc-changelogs-form-clear unite-button-secondary">
<?php esc_html_e("Clear", "unlimited-elements-for-elementor"); ?>
</button>
<button
id="uc-changelogs-form-submit"
class="uc-changelogs-form-submit unite-button-primary"
data-text-default="<?php esc_attr_e("Save", "unlimited-elements-for-elementor"); ?>"
data-text-loading="<?php esc_attr_e("Saving...", "unlimited-elements-for-elementor"); ?>"
>
<?php esc_html_e("Save", "unlimited-elements-for-elementor"); ?>
</button>
</div>
</div>
<div class="uc-changelogs-loader">
<?php esc_html_e("Loading...", "unlimited-elements-for-elementor"); ?>
</div>
<div class="uc-changelogs-content"></div>
</div>
<?php
}
/**
* put revisions tab html
*/
private function putHtml_revisionsTab(){
?>
<div class="uc-revisions-wrapper">
<div class="uc-revisions-loader">
<?php esc_html_e("Loading...", "unlimited-elements-for-elementor"); ?>
</div>
<div class="uc-revisions-content"></div>
</div>
<?php
}
/**
* put expand link
*/
private function putLinkExpand($textareaID = ""){
?>
<a class="uc-tabcontent-link-expand" href="javascript:void(0)" data-forid="<?php echo $textareaID?>"><?php esc_html_e("expand", "unlimited-elements-for-elementor");?></a>
<?php
}
/**
* put html js left content
*/
private function putHTML_jsLeftContent(){
$this->settingsJSOutput->draw("uc_form_js_options");
}
/**
* put html tab content
*/
private function putHtml_tabTableRow($textareaID, $title, $areaHtml, $paramsPanelID, $addVariableID = null, $isItemsRelated = false, $params = array()){
$rowClass = "";
$rowAddHtml = "";
$paramsPanelClassAdd = " uc-params-panel-main";
if($isItemsRelated == true){
$rowClass = "uc-items-related";
$hasItems = $this->objAddon->isHasItems();
if($hasItems == false)
$rowAddHtml = "style='display:none'";
$paramsPanelClassAdd = "";
}
$isExpanded = UniteFunctionsUC::getVal($params, "expanded");
$isExpanded = UniteFunctionsUC::strToBool($isExpanded);
$mode = UniteFunctionsUC::getVal($params, "mode");
$areaAddParams = "";
if(!empty($mode))
$areaAddParams = " data-mode='{$mode}'";
if($isExpanded == true)
$rowClass .= " uc-row-expanded";
if(!empty($rowClass)){
$rowClass = esc_attr($rowClass);
$rowClass = "class='$rowClass'";
}
$styleRight = "";
if($this->isSVG == true)
$styleRight = 'style="display:none;"';
?>
<tr <?php echo UniteProviderFunctionsUC::escAddParam($rowClass)?> <?php echo UniteProviderFunctionsUC::escAddParam($rowAddHtml)?>>
<td class="uc-tabcontent-cell-left">
<div class="uc-editor-title"><?php echo esc_html($title)?></div>
<textarea id="<?php echo esc_attr($textareaID)?>" class="area_addon <?php echo esc_attr($textareaID)?>" <?php echo UniteProviderFunctionsUC::escAddParam($areaAddParams)?>><?php echo esc_html($areaHtml)?></textarea>
<?php if($isExpanded == false)
$this->putLinkExpand($textareaID)?>
<?php
switch($textareaID){
case "area_addon_js":
$this->putHTML_jsLeftContent();
break;
}
?>
</td>
<td class="uc-tabcontent-cell-right" <?php echo UniteProviderFunctionsUC::escAddParam($styleRight)?>>
<?php if($isItemsRelated == true):?>
<div class="uc-params-panel-filters">
<a href="javascript:void(0)" class="uc-filter-active" data-filter="item" onfocus="this.blur()"><?php esc_html_e("Item", "unlimited-elements-for-elementor")?></a>
<a href="javascript:void(0)" data-filter="main" onfocus="this.blur()"><?php esc_html_e("Main", "unlimited-elements-for-elementor")?></a>
</div>
<?php endif?>
<div id="<?php echo esc_attr($paramsPanelID)?>" class="uc-params-panel<?php echo esc_attr($paramsPanelClassAdd)?>"></div>
<?php if(!empty($addVariableID)):?>
<a id="<?php echo esc_attr($addVariableID)?>" type="button" href="javascript:void(0)" class="unite-button-secondary mleft_20"><?php esc_html_e("Add Variable", "unlimited-elements-for-elementor")?></a>
<?php endif?>
</td>
</tr>
<?php
}
/**
* put tab table sap
*/
private function putHtml_tabTableSap($isItemsRelated = false){
$rowClass = "";
if($isItemsRelated == true)
$rowClass = "class='uc-items-related'";
?>
<tr <?php echo UniteProviderFunctionsUC::escAddParam($rowClass)?>>
<td colspan="2"><div class="vert_sap10"></div></td>
</tr>
<?php
}
/**
* put overwiew tab html
*/
private function putHtml_overviewTab(){
$title = $this->objAddon->getTitle();
$name = $this->objAddon->getName();
$description = $this->objAddon->getDescription();
$link = $this->objAddon->getOption("link_resource");
if(!empty($link))
$link = HelperHtmlUC::getHtmlLink($link, $link, "uc_overview_link","",true);
$addonIcon = $this->objAddon->getUrlIcon();
?>
<div class="uc-tab-overview">
<div class="uc-section-inline"><?php esc_html_e("Widget Title", "unlimited-elements-for-elementor")?>: <span id="uc_overview_title" class="unite-bold"><?php echo esc_html($title)?></span></div>
<div class="uc-section-inline"><?php esc_html_e("Widget Name", "unlimited-elements-for-elementor")?>: <span id="uc_overview_name" class="unite-bold"><?php echo esc_html($name)?></span></div>
<div class="uc-section">
<div class="uc-section-title"><?php esc_html_e("Widget Description", "unlimited-elements-for-elementor")?>:</div>
<div id="uc_overview_description" class="uc-section-content uc-desc-wrapper">
<?php echo esc_html($description)?>
</div>
<div class="unite-clear"></div>
</div>
<div class="uc-section-inline"><?php esc_html_e("Link to resource", "unlimited-elements-for-elementor")?>: <?php echo esc_html($link)?></div>
<div class="uc-section">
<div class="uc-section-title uc-title-icon"><?php esc_html_e("Widget Icon", "unlimited-elements-for-elementor")?>:</div>
<div id="uc_overview_icon" class="uc-section-content uc-addon-icon-small" style="background-image:url('<?php echo UniteProviderFunctionsUC::escAddParam($addonIcon)?>')"></div>
</div>
</div>
<?php
}
/**
* put powered by twig html
*/
private function putHTMLPoweredByTwig(){
?>
<div class="uc-edit-addon-poweredby">
<?php _e("Powered by Twig Template Engine. ", "unlimited-elements-for-elementor")?>
<a href="<?php echo GlobalsUC::LINK_TWIG?>" target="_blank"><?php _e("show documentation", "unlimited-elements-for-elementor")?></a>.
<?php _e("To show code examples in right panel ")?>
<a href="javascript:void(0)" class="uc-link-code-examples" ><?php _e("click here", "unlimited-elements-for-elementor")?></a>.
</div>
<?php
}
/**
* put tabs content
*/
private function putHtml_content(){
$css = $this->objAddon->getCss(true);
$cssItem = $this->objAddon->getCssItem(true);
$html = $this->objAddon->getHtml(true);
$htmlItem = $this->objAddon->getHtmlItem(true);
$htmlItem2 = $this->objAddon->getHtmlItem2(true);
$js = $this->objAddon->getJs(true);
$hasItems = $this->objAddon->isHasItems();
$params = $this->objAddon->getParams();
$paramsItems = $this->objAddon->getParamsItems();
$paramsEditorItems = new UniteCreatorParamsEditor();
if($hasItems == false)
$paramsEditorItems->setHiddenAtStart();
$paramsEditorItems->init("items");
?>
<div id="uc_tab_contents" class="uc-tabs-content-wrapper uc-addon-props">
<!-- General -->
<div id="uc_tab_general" class="uc-tab-content" style="display:none">
<?php
try{
$this->putHtml_generalSettings();
}catch(Exception $e){
HelperHtmlUC::outputException($e);
}
?>
</div>
<!-- Attributes -->
<div id="uc_tab_attr" class="uc-tab-content" style="display:none">
<?php
$paramsEditorMain = new UniteCreatorParamsEditor();
$paramsEditorMain->init("main", $this->hasAttributesCats);
$paramsEditorMain->outputHtmlTable();
?>
</div>
<!-- Item Attributes -->
<div id="uc_tab_itemattr" class="uc-tab-content uc-tab-itemattr" style="display:none">
<?php
$this->settingsItemOutput->draw("uc_form_edit_addon");
$paramsEditorItems->outputHtmlTable();
?>
</div>
<!-- HTML -->
<div id="uc_tab_html" class="uc-tab-content" style="display:none">
<table class="uc-tabcontent-table">
<?php
//------------- put html row
$textareaID = "area_addon_html";
$rowTitle = $this->textSingle.esc_html__(" HTML","unlimited-elements-for-elementor");
if($this->isSVG == true)
$rowTitle = esc_html__("SVG Content","unlimited-elements-for-elementor");
if(!empty($this->tabHtmlTitle))
$rowTitle = $this->tabHtmlTitle.esc_html__(" Content","unlimited-elements-for-elementor");
$areaHtml = $html;
$paramsPanelID = "uc_params_panel_main";
$addVariableID = "uc_params_panel_main_addvar";
$params = array();
if(!empty($this->htmlEditorMode))
$params["mode"] = $this->htmlEditorMode;
$params["expanded"] = true;
$this->putHtml_tabTableRow($textareaID, $rowTitle, $areaHtml, $paramsPanelID, $addVariableID, false, $params);
//------------- put html item row
$this->putHtml_tabTableSap(true);
$textareaID = "area_addon_html_item";
$rowTitle = esc_html__("Item HTML","unlimited-elements-for-elementor");
$areaHtml = $htmlItem;
$paramsPanelID = "uc_params_panel_item";
$addVariableID = "uc_params_panel_item_addvar";
$isItemsRelated = true;
$this->putHtml_tabTableRow($textareaID, $rowTitle, $areaHtml, $paramsPanelID, $addVariableID, $isItemsRelated);
$this->putHtml_tabTableSap(true);
//------------- put html item row 2
$textareaID = "area_addon_html_item2";
$rowTitle = esc_html__("Item HTML 2","unlimited-elements-for-elementor");
$areaHtml = $htmlItem2;
$paramsPanelID = "uc_params_panel_item2";
$addVariableID = "uc_params_panel_item_addvar2";
$isItemsRelated = true;
$this->putHtml_tabTableRow($textareaID, $rowTitle, $areaHtml, $paramsPanelID, $addVariableID, $isItemsRelated);
?>
</table>
<?php $this->putHTMLPoweredByTwig() ?>
</div>
<!-- CSS -->
<div id="uc_tab_css" class="uc-tab-content" style="display:none">
<table class="uc-tabcontent-table">
<?php
//--------- css addon --------
$textareaID = "area_addon_css";
$rowTitle = $this->textSingle.esc_html__(" CSS","unlimited-elements-for-elementor");
$areaHtml = $css;
$paramsPanelID = "uc_params_panel_css";
$this->putHtml_tabTableRow($textareaID, $rowTitle, $areaHtml, $paramsPanelID, null);
//--------- css item --------
$textareaID = "area_addon_css_item";
$rowTitle = esc_html__("Item CSS","unlimited-elements-for-elementor");
$areaHtml = $cssItem;
$paramsPanelID = "uc_params_panel_css_item";
$this->putHtml_tabTableRow($textareaID, $rowTitle, $areaHtml, $paramsPanelID, null, true);
?>
</table>
<?php $this->putHTMLPoweredByTwig() ?>
</div>
<!-- JS -->
<div id="uc_tab_js" class="uc-tab-content" style="display:none">
<table class="uc-tabcontent-table">
<?php
$textareaID = "area_addon_js";
$rowTitle = $this->textSingle.esc_html__(" Javascript","unlimited-elements-for-elementor");
$areaHtml = $js;
$paramsPanelID = "uc_params_panel_js";
$params = array();
$params["expanded"] = true;
$this->putHtml_tabTableRow($textareaID, $rowTitle, $areaHtml, $paramsPanelID, null, false, $params);
?>
</table>
<?php $this->putHTMLPoweredByTwig() ?>
</div>
<!-- INCLUDES -->
<div id="uc_tab_includes" class="uc-tab-content" style="display:none">
<?php $this->putHtml_Includes()?>
</div>
<!-- ASSETS -->
<div id="uc_tab_assets" class="uc-tab-content" style="display:none">
<?php $this->putHtml_assetsTab() ?>
</div>
<!-- CHANGELOG -->
<div id="uc_tab_changelog" class="uc-tab-content" style="display:none">
<?php $this->putHtml_changelogTab() ?>
</div>
<!-- REVISIONS -->
<div id="uc_tab_revisions" class="uc-tab-content" style="display:none">
<?php $this->putHtml_revisionsTab() ?>
</div>
</div>
<!-- END TABS -->
<?php
}
/**
* put action buttons html
*/
private function putHtml_actionButtons(){
$addonID = $this->objAddon->getID();
$addonType = $this->objAddon->getType();
$urlTestAddon = HelperUC::getViewUrl_TestAddon($addonID);
$urlTestAddonNew = HelperUC::getViewUrl("testaddonnew", "id=$addonID");
$urlPreviewAddon = HelperUC::getViewUrl_TestAddon($addonID,"preview=1");
$urlAddonDefaults = helperuc::getViewUrl_AddonDefaults($addonID);
$textPreviewAddon = esc_html__("Preview ","unlimited-elements-for-elementor").$this->textSingle;
$textTestAddon = esc_html__("Test ","unlimited-elements-for-elementor").$this->textSingle;
$textTestAddonNew = esc_html__("Test ","unlimited-elements-for-elementor").$this->textSingle . " - New";
$textBack = esc_html__("Back To ","unlimited-elements-for-elementor").$this->textPlural.esc_html__(" List","unlimited-elements-for-elementor");
$textDefaults = $this->textSingle.esc_html__(" Defaults","unlimited-elements-for-elementor");
$textExport = esc_html__("Export ", "unlimited-elements-for-elementor").$this->textSingle;
$isExistsInCatalog = $this->objAddon->isExistsInCatalog();
$urlBack = HelperUC::getViewUrl_Addons($addonType);
if(!empty($this->urlViewBack))
$urlBack = $this->urlViewBack;
?>
<div class="uc-edit-addon-buttons-panel-wrapper">
<div id="uc_buttons_panel" class="uc-edit-addon-buttons-panel">
<div class="unite-float-left">
<div class="uc-button-action-wrapper">
<a id="button_update_addon" class="button_update_addon unite-button-primary" href="javascript:void(0)"><?php esc_html_e("Update", "unlimited-elements-for-elementor");?></a>
<div style="padding-top:6px;">
<span id="uc_loader_update" class="loader_text" style="display:none"><?php esc_html_e("Updating...", "unlimited-elements-for-elementor")?></span>
<span id="uc_message_addon_updated" class="unite-color-green" style="display:none"></span>
</div>
</div>
<a class="unite-button-secondary" href="<?php echo esc_url($urlBack)?>"><?php echo esc_html($textBack)?></a>
<?php if($this->showAddonDefaluts == true):?>
<a href="<?php echo esc_url($urlAddonDefaults)?>" class="unite-button-secondary"><?php echo esc_html($textDefaults) ?></a>
<?php endif?>
<?php if($this->showTestAddon == true):?>
<a href="<?php echo esc_url($urlTestAddon)?>" target="_blank" class="unite-button-secondary " ><?php echo esc_html($textTestAddon)?></a>
<?php if($this->showTestAddonNew == true):?>
<a href="<?php echo esc_url($urlTestAddonNew)?>" target="_blank" class="unite-button-primary " style="background-color:green !important;"><?php echo esc_html($textTestAddonNew)?></a>
&nbsp;&nbsp;
<?php endif?>
<a href="<?php echo esc_url($urlPreviewAddon)?>" target="_blank" class="unite-button-secondary " ><?php echo esc_html($textPreviewAddon)?></a>
<?php endif?>
<?php if($isExistsInCatalog == true): ?>
<a id="uc_button_update_catalog" class="button_update_addon unite-button-secondary" href="javascript:void(0)"><?php esc_html_e("Update From Catalog", "unlimited-elements-for-elementor");?></a>
<span id="uc_loader_update_catalog" class="loader_text" style="display:none"><?php esc_html__("Updating...", "unlimited-elements-for-elementor"); ?></span>
<span id="uc_message_addon_updated_catalog" class="unite-color-green" style="display:none"></span>
<?php endif?>
</div>
<div class="unite-float-right mright_10">
<a id="button_export_addon" href="javascript:void(0)" class="unite-button-secondary " ><?php echo esc_html($textExport)?></a>
</div>
<div class="unite-clear"></div>
</div>
</div>
<?php
}
private function z__________PARAMS_______(){}
/**
* create child param
*/
protected function createChildParam($param, $type = null, $addParams = false){
$arr = array("name"=>$param, "type"=>$type);
switch($type){
//case UniteCreatorDialogParam::PARAM_IMAGE:
//break;
}
if(!empty($addParams))
$arr = array_merge($arr, $addParams);
return($arr);
}
/**
* add custom fields
* function for override
*/
protected function addCustomFieldsParams($arrParams, $postID){
return($arrParams);
}
/**
* get post child params
*/
public function getChildParams_post($postID = null, $arrAdditions = array()){
$arrParams = $this->objChildParams->getChildParams_post($postID, $arrAdditions);
return($arrParams);
}
/**
* get post child params
*/
protected function getChildParams_instagramItem(){
$arrParams = array();
$arrParams[] = $this->createChildParam("caption",UniteCreatorDialogParam::PARAM_EDITOR);
$arrParams[] = $this->createChildParam("thumb");
$arrParams[] = $this->createChildParam("image");
$arrParams[] = $this->createChildParam("link");
$arrParams[] = $this->createChildParam("num_likes");
$arrParams[] = $this->createChildParam("num_comments");
$arrParams[] = $this->createChildParam("time_passed");
$arrParams[] = $this->createChildParam("link");
$arrParams[] = $this->createChildParam("isvideo");
$arrParams[] = $this->createChildParam("num_video_views");
$arrParams[] = $this->createChildParam("video_class");
return($arrParams);
}
/**
* add responsive parameters
*/
protected function getAddParams_responsive(){
$arrParams = array();
$arrParams[] = $this->createChildParam(null);
$addParams = array("condition"=>"responsive");
$arrParams[] = $this->createChildParam("tablet", null ,$addParams);
$arrParams[] = $this->createChildParam("mobile",null, $addParams);
return($arrParams);
}
/**
* add simple array
*/
protected function getAddParams_array(){
$strText = "{% for value in [param_prefix] %}\n";
$strText .= " {{value}}\n";
$strText .= "{% endfor %}\n";
$arrParams = array();
$arrParams[] = $this->createChildParam(null, null, array("raw_insert_text"=>$strText));
return($arrParams);
}
/**
* get post child params
*/
protected function getChildParams_instagramMain(){
$arrParams = array();
$arrParams[] = $this->createChildParam("name", UniteCreatorDialogParam::PARAM_EDITOR);
$arrParams[] = $this->createChildParam("username");
$arrParams[] = $this->createChildParam("biography", UniteCreatorDialogParam::PARAM_EDITOR);
$arrParams[] = $this->createChildParam("image_profile");
$arrParams[] = $this->createChildParam("num_followers");
$arrParams[] = $this->createChildParam("num_following");
$arrParams[] = $this->createChildParam("num_posts");
$arrParams[] = $this->createChildParam("url_external");
$arrParams[] = $this->createChildParam("link");
$arrParams[] = $this->createChildParam("no_items_code",null,array("child_param_name"=>"hasitems"));
return($arrParams);
}
/**
* get dataset param
*/
protected function getAddParams_dataset($paramDataset){
$datasetType = UniteFunctionsUC::getVal($paramDataset, "dataset_type");
$datasetQuery = UniteFunctionsUC::getVal($paramDataset, "dataset_{$datasetType}_query");
$arrItemHeaders = array();
$arrItemHeaders = UniteProviderFunctionsUC::applyFilters(UniteCreatorFilters::FILTER_GET_DATASET_HEADERS, $arrItemHeaders, $datasetType, $datasetQuery);
$arrChildKeys = array();
foreach($arrItemHeaders as $key){
$arrChildKeys[] = $this->createChildParam($key);
}
return($arrChildKeys);
}
/**
* add dynamic fields child keys
* function for override
*/
protected function addDynamicChildKeys($arrChildKeys){
return($arrChildKeys);
}
/**
* get child post options - postID, and if use custom fields
*/
private function getChildPostOptions(){
$paramPostList = $this->objAddon->getParamByType(UniteCreatorDialogParam::PARAM_POSTS_LIST);
$output = array();
$output["post_id"] = null;
$output["use_custom_fields"] = false;
$output["use_category"] = false;
$output["add_woo"] = false;
//return by post list
if(!empty($paramPostList)){
$useCategory = UniteFunctionsUC::getVal($paramPostList, "use_category");
$useCategory = UniteFunctionsUC::strToBool($useCategory);
$output["use_category"] = $useCategory;
$postExample = UniteFunctionsUC::getVal($paramPostList, "post_example");
$useCustomFields = UniteFunctionsUC::getVal($paramPostList, "use_custom_fields");
$useCustomFields = UniteFunctionsUC::strToBool($useCustomFields);
if(!empty($postExample)){
$output = array();
$output["post_id"] = $postExample;
$output["use_custom_fields"] = $useCustomFields;
}
$forWooProducts = UniteFunctionsUC::getVal($paramPostList, "for_woocommerce_products");
$forWooProducts = UniteFunctionsUC::strToBool($forWooProducts);
$output["add_woo"] = $forWooProducts;
}
return($output);
}
/**
* get post additions for showing post params first time
* search in param and in post options
*/
protected function getParamChildKeys_getPostAdditions($postOptions){
$enableCustomFields = $postOptions["use_custom_fields"];
$isAddWoo = UniteFunctionsUC::getVal($postOptions, "add_woo");
$arrAdditions = array();
if($isAddWoo == true)
$arrAdditions[GlobalsProviderUC::POST_ADDITION_WOO] = GlobalsProviderUC::POST_ADDITION_WOO;
if($enableCustomFields == true)
$arrAdditions[GlobalsProviderUC::POST_ADDITION_CUSTOMFIELDS] = GlobalsProviderUC::POST_ADDITION_CUSTOMFIELDS;
$params = $this->objAddon->getParams(UniteCreatorDialogParam::PARAM_POSTS_LIST);
if(empty($params))
return($arrAdditions);
$param = $params[0];
$enableCustomFields = UniteFunctionsUC::getVal($param, "use_custom_fields");
$enableCustomFields = UniteFunctionsUC::strToBool($enableCustomFields);
$enableCategory = UniteFunctionsUC::getVal($param, "use_category");
$enableCategory = UniteFunctionsUC::strToBool($enableCategory);
if($enableCustomFields == true)
$arrAdditions[GlobalsProviderUC::POST_ADDITION_CUSTOMFIELDS] = GlobalsProviderUC::POST_ADDITION_CUSTOMFIELDS;
if($enableCategory == true)
$arrAdditions[GlobalsProviderUC::POST_ADDITION_CATEGORY] = GlobalsProviderUC::POST_ADDITION_CATEGORY;
$arrAdditions = array_values($arrAdditions);
return($arrAdditions);
}
/**
* get params child keys
*/
protected function getParamChildKeys(){
$postOptions = $this->getChildPostOptions();
$postID = $postOptions["post_id"];
$arrAdditions = $this->getParamChildKeys_getPostAdditions($postOptions);
$arrPostParams = $this->getChildParams_post($postID, $arrAdditions);
$arrChildKeys = array();
$arrChildKeys[UniteCreatorDialogParam::PARAM_POST] = $arrPostParams;
$arrChildKeys["uc_current_post"] = $arrPostParams;
$arrChildKeys[UniteCreatorDialogParam::PARAM_INSTAGRAM] = $this->getChildParams_instagramMain();
$arrChildKeys["uc_instagram_item"] = $this->getChildParams_instagramItem();
$arrChildKeys = $this->addDynamicChildKeys($arrChildKeys);
$arrChildKeys["uc_code_examples"] = $this->objChildParams->getChildParams_codeExamples();
$arrChildKeys["uc_code_examples_js"] = $this->objChildParams->getChildParams_codeExamplesJS();
$arrChildKeys[UniteCreatorDialogParam::PARAM_IMAGE] = $this->objChildParams->getChildParams_image();
//add dataset params
$paramDataset = $this->objAddon->getParamByType(UniteCreatorDialogParam::PARAM_DATASET);
if(!empty($paramDataset))
$arrChildKeys[UniteCreatorDialogParam::PARAM_DATASET] = $this->getAddParams_dataset($paramDataset);
return($arrChildKeys);
}
/**
* get additional param keys by type
*/
protected function getAddParamKeys(){
$arrAddKeys = array();
$arrAddKeys[UniteCreatorDialogParam::PARAM_MULTIPLE_SELECT] = $this->getAddParams_array();
$arrAddKeys[UniteCreatorDialogParam::PARAM_NUMBER] = $this->getAddParams_responsive();
$arrAddKeys[UniteCreatorDialogParam::PARAM_POST_TERMS] = $this->objChildParams->getAddParams_terms();
$arrAddKeys[UniteCreatorDialogParam::PARAM_WOO_CATS] = $this->objChildParams->getAddParams_terms(true);
$arrAddKeys[UniteCreatorDialogParam::PARAM_LISTING] = $this->objChildParams->getAddParams_listing();
$arrAddKeys[UniteCreatorDialogParam::PARAM_USERS] = $this->objChildParams->getAddParams_users();
$arrAddKeys[UniteCreatorDialogParam::PARAM_ICON_LIBRARY] = $this->objChildParams->getAddParams_iconLibrary();
$arrAddKeys[UniteCreatorDialogParam::PARAM_LINK] = $this->objChildParams->getAddParams_link();
$arrAddKeys[UniteCreatorDialogParam::PARAM_DATETIME] = $this->objChildParams->getAddParams_datetime();
$arrAddKeys[UniteCreatorDialogParam::PARAM_SLIDER] = $this->objChildParams->getAddParams_slider();
$arrAddKeys[UniteCreatorDialogParam::PARAM_DROPDOWN] = $this->objChildParams->getAddParams_dropdown();
$arrAddKeys[UniteCreatorDialogParam::PARAM_RADIOBOOLEAN] = $this->objChildParams->getAddParams_dropdown();
$arrAddKeys[UniteCreatorDialogParam::PARAM_MENU] = $this->objChildParams->getAddParams_menu();
$arrAddKeys[UniteCreatorDialogParam::PARAM_TEMPLATE] = $this->objChildParams->getAddParams_template();
return($arrAddKeys);
}
/**
* get code replacements for params panel
*/
protected function getParamTemplateCodes(){
$codeNoItems = "{% if [param_name] == false %}\n\n";
$codeNoItems .= " No items text\n\n";
$codeNoItems .= "{% else %}\n\n";
$codeNoItems .= " {{put_items()}}\n\n";
$codeNoItems .= "{% endif %}";
$arrCode = array();
$arrCode["no_items_code"] = $codeNoItems;
return($arrCode);
}
private function z____________OTHERS___________(){}
/**
* get thumb sizes - function for override
*/
protected function getThumbSizes(){
return(null);
}
/**
* get image param add fields
*/
protected function getImageAddFields(){
return(null);
}
/**
* put config
*/
private function putConfig(){
$options = array();
$options["url_preview"] = $this->objAddon->getPreviewImageUrl();
$arrThumbSizes = $this->getThumbSizes();
$options["thumb_sizes"] = $arrThumbSizes;
$arrImageAddFields = $this->getImageAddFields();
$options["image_add_fields"] = $arrImageAddFields;
$options["items_type"] = $this->objAddon->getItemsType();
$dataOptions = UniteFunctionsUC::jsonEncodeForHtmlData($options, "options");
$params = $this->objAddon->getParams();
$dataParams = UniteFunctionsUC::jsonEncodeForHtmlData($params, "params");
$paramsItems = $this->objAddon->getParamsItems();
$dataParamsItems = UniteFunctionsUC::jsonEncodeForHtmlData($paramsItems, "params-items");
$variablesItems = $this->objAddon->getVariablesItem();
$variablesMain = $this->objAddon->getVariablesMain();
$paramsCats = $this->objAddon->getParamsCats();
$dataVarItems = UniteFunctionsUC::jsonEncodeForHtmlData($variablesItems, "variables-items");
$dataVarMain = UniteFunctionsUC::jsonEncodeForHtmlData($variablesMain, "variables-main");
$dataParamsCats = UniteFunctionsUC::jsonEncodeForHtmlData($paramsCats, "params-cats");
$objOutput = new UniteCreatorOutput();
$objOutput->setProcessType(UniteCreatorParamsProcessor::PROCESS_TYPE_CONFIG);
$objOutput->initByAddon($this->objAddon);
$arrConstantData = $objOutput->getConstantDataKeys(true);
if($this->showContstantVars == false)
$arrConstantData = array();
if(!empty($this->arrCustomConstants))
$arrConstantData += $this->arrCustomConstants;
$dataPanelKeys = UniteFunctionsUC::jsonEncodeForHtmlData($arrConstantData, "panel-keys");
$arrItemConstantData = $objOutput->getItemConstantDataKeys();
$dataItemPanelKeys = UniteFunctionsUC::jsonEncodeForHtmlData($arrItemConstantData, "panel-item-keys");
//child keys of some fields
$arrPanelChildKeys = $this->getParamChildKeys();
$dataPanelChildKeys = UniteFunctionsUC::jsonEncodeForHtmlData($arrPanelChildKeys, "panel-child-keys");
$arrPanelAddKeys = $this->getAddParamKeys();
$dataPanelAddKeys = UniteFunctionsUC::jsonEncodeForHtmlData($arrPanelAddKeys, "panel-add-keys");
$arrPanelTemplateCode = $this->getParamTemplateCodes();
$dataPanelCode = UniteFunctionsUC::jsonEncodeForHtmlData($arrPanelTemplateCode, "panel-template-code");
$dataSkipParams = UniteFunctionsUC::jsonEncodeForHtmlData($this->arrSkipPanelParams, "panel-skip-params");
?>
<div id="uc_edit_item_config" style="display:none"
<?php echo UniteProviderFunctionsUC::escAddParam($dataParams)?>
<?php echo UniteProviderFunctionsUC::escAddParam($dataParamsItems)?>
<?php echo UniteProviderFunctionsUC::escAddParam($dataPanelKeys)?>
<?php echo UniteProviderFunctionsUC::escAddParam($dataPanelAddKeys)?>
<?php echo UniteProviderFunctionsUC::escAddParam($dataItemPanelKeys)?>
<?php echo UniteProviderFunctionsUC::escAddParam($dataVarItems)?>
<?php echo UniteProviderFunctionsUC::escAddParam($dataVarMain)?>
<?php echo UniteProviderFunctionsUC::escAddParam($dataParamsCats)?>
<?php echo UniteProviderFunctionsUC::escAddParam($dataOptions)?>
<?php echo UniteProviderFunctionsUC::escAddParam($dataPanelChildKeys)?>
<?php echo UniteProviderFunctionsUC::escAddParam($dataPanelCode)?>
<?php echo UniteProviderFunctionsUC::escAddParam($dataSkipParams)?>
></div>
<?php
}
/**
* put js
*/
private function putJs(){
?>
<script type="text/javascript">
jQuery(document).ready(function(){
var objAdmin = new UniteCreatorAdmin();
objAdmin.initEditAddonView();
});
</script>
<?php
}
/**
* bulk dialog
*/
private function putBulkDialog(){
?>
<div id="uc_dialog_bulk" title="<?php esc_html_e("Bulk Operations", "unlimited-elements-for-elementor")?>" class="unite-inputs" style="display:none">
bulk operations dialog
</div>
<?php
}
/**
* get contents of bulk dialog from ajax
*/
public function getBulkDialogContents($data){
$addonID = UniteFunctionsUC::getVal($data, "addon_id");
UniteFunctionsUC::validateNotEmpty($addonID,"addon id");
$paramType = UniteFunctionsUC::getVal($data, "param_type");
$paramData = UniteFunctionsUC::getVal($data, "param_data");
$paramTitle = UniteFunctionsUC::getVal($paramData, "title");
$paramName = UniteFunctionsUC::getVal($paramData, "name");
//get data
$addon = new UniteCreatorAddon();
$addon->initByID($addonID);
$addonType = $addon->getType();
$catID = $addon->getCatID();
UniteFunctionsUC::validateNotEmpty($catID);
$addons = new UniteCreatorAddons();
$arrAddons = $addons->getCatAddons($catID, false, null, $addonType);
//make html
ob_start();
$addonTitle = $addon->getTitle();
?>
<br>
<?php echo esc_html($paramType) ?> <?php _e("attribute","unlimited-elements-for-elementor")?>: <b> <?php echo esc_html($paramTitle)?> ( <?php echo esc_html($paramName)?> ) </b>
<span class="hor_sap40"></span>
<?php _e("Widget","unlimited-elements-for-elementor")?>: <b> <?php echo esc_html($addonTitle)?> </b>
<br><br>
<div class="unite-dialog-inner-constant">
<div class="uc-dialog-loader loader_text" style="display:none"><?php esc_html_e("Updating Addons", "unlimited-elements-for-elementor")?>...</div>
<table class="unite_table_items">
<tr>
<th class="">
<input type='checkbox' title="<?php esc_html_e("Select All Addons", "unlimited-elements-for-elementor")?>" class="uc-check-all">
</th>
<th><b><?php esc_html_e("Widget Title", "unlimited-elements-for-elementor")?></b></th>
<th><b><?php esc_html_e("Status", "unlimited-elements-for-elementor")?></b></th>
</tr>
<?php
$numSelected = 0;
foreach($arrAddons as $index=>$catAddon){
$title = $catAddon->getTitle();
$catAddonID = $catAddon->getID();
if($catAddonID == $addonID)
continue;
$rowClass = $index%2?"unite-row1":"unite-row2";
$isMain = ($paramType == "main");
$isExists = $catAddon->isParamExists($paramName, $isMain);
$status = "<span class='unite-color-red'>".__("not exists","unlimited-elements-for-elementor")."</span>";
if($isExists)
$status = "<span class='unite-color-green'>".__("exists","unlimited-elements-for-elementor")."</span>";
$checked = "";
if($isExists == false){
$checked = " checked";
$numSelected++;
$rowClass .= " unite-row-selected";
}
?>
<tr class="<?php echo esc_attr($rowClass)?>">
<td>
<input type='checkbox' data-id="<?php echo esc_attr($catAddonID)?>" <?php echo UniteProviderFunctionsUC::escAddParam($checked)?> class="uc-check-select">
</td>
<td><?php echo esc_html($title)?></td>
<td><?php echo $status?></td>
</tr>
<?php
}
?>
</table>
</div>
<br>
<span class='uc-section-selected'>
<span id='uc_bulk_dialog_num_selected'><?php echo esc_html($numSelected)?></span> <?php esc_html_e("selected")?>
</span>
<span class="hor_sap"></span>
<a href="javascript:void(0)" data-action="update" class="uc-action-button unite-button-primary"><?php esc_html_e("Add / Update in Widgets", "unlimited-elements-for-elementor")?></a>
<span class="hor_sap40"></span>
<a href="javascript:void(0)" data-action="delete" class="uc-action-button unite-button-secondary"><?php esc_html_e("Delete From Widgets", "unlimited-elements-for-elementor")?></a>
<?php
$html = ob_get_contents();
ob_end_clean();
$response = array();
$response["html"] = $html;
return($response);
}
/**
* get contents of addon changelog from ajax
*/
public function getChangelogContents($data){
$addonID = UniteFunctionsUC::getVal($data, "addon_id");
UniteFunctionsUC::validateNotEmpty($addonID, "addon id");
$changelog = new UniteCreatorAddonChangelog();
$changelogs = $changelog->getAddonChangelogs($addonID);
ob_start();
?>
<?php if(empty($changelogs)): ?>
<div class="uc-changelogs-empty">
<?php esc_html_e("No changelogs yet.", "unlimited-elements-for-elementor"); ?>
</div>
<?php else: ?>
<ul class="uc-changelogs">
<?php foreach($changelogs as $log): ?>
<li class="uc-changelog" data-id="<?php esc_attr_e($log["id"]); ?>" data-log="<?php esc_attr_e(json_encode($log)); ?>">
<div class="uc-changelog-content">
<div class="uc-changelog-text">
<b><?php esc_html_e($log["type_title"]); ?>:</b>
<?php echo $log["text_html"]; ?>
</div>
<div class="uc-changelog-info" title="<?php echo $log["created_date"]; ?>">
<?php echo human_time_diff($log["created_time"], current_time("timestamp")); ?>
<?php esc_html_e("ago", "unlimited-elements-for-elementor"); ?>
<?php esc_html_e("by", "unlimited-elements-for-elementor"); ?>
<?php echo $log["user_username"]; ?>
</div>
</div>
<div class="uc-changelog-actions">
<button
class="uc-changelog-button uc-changelog-edit unite-button-secondary"
title="<?php esc_attr_e("Edit", "unlimited-elements-for-elementor"); ?>"
>
<i class="fa fa-pen"></i>
</button>
<button
class="uc-changelog-button uc-changelog-delete unite-button-secondary"
title="<?php esc_attr_e("Delete", "unlimited-elements-for-elementor"); ?>"
>
<i class="fa fa-trash"></i>
</button>
</div>
</li>
<?php endforeach; ?>
</ul>
<?php endif; ?>
<?php
$html = ob_get_contents();
ob_end_clean();
$response = array();
$response["html"] = $html;
return ($response);
}
/**
* get contents of addon revisions from ajax
*/
public function getRevisionsContents($data){
$addonID = UniteFunctionsUC::getVal($data, "addon_id");
UniteFunctionsUC::validateNotEmpty($addonID, "addon id");
$addon = new UniteCreatorAddon();
$addon->initByID($addonID);
$revisioner = new UniteCreatorAddonRevisioner();
$revisions = $revisioner->getAddonRevisions($addon);
$previousRevision = null;
ob_start();
?>
<?php if(empty($revisions)): ?>
<div class="uc-revisions-empty">
<?php esc_html_e("No revisions yet.", "unlimited-elements-for-elementor"); ?>
</div>
<?php else: ?>
<ul class="uc-revisions">
<?php foreach($revisions as $revision): ?>
<?php if($previousRevision === null && $revision["is_today"] === true): ?>
<li class="uc-revisions-label">
<?php esc_html_e("Today", "unlimited-elements-for-elementor"); ?>
</li>
<?php elseif($previousRevision === null && $revision["is_today"] === false): ?>
<li class="uc-revisions-label">
<?php esc_html_e("Past", "unlimited-elements-for-elementor"); ?>
</li>
<?php elseif($previousRevision !== null && $previousRevision["is_today"] !== $revision["is_today"]): ?>
<li class="uc-revisions-label">
<?php esc_html_e("Past", "unlimited-elements-for-elementor"); ?>
</li>
<?php endif; ?>
<?php $previousRevision = $revision; ?>
<li class="uc-revision" data-id="<?php echo $revision["id"]; ?>">
<span class="uc-revision-name" title="<?php echo $revision["date"]; ?>">
<?php esc_html_e("Revision:", "unlimited-elements-for-elementor"); ?>
<?php echo human_time_diff($revision["time"], current_time("timestamp")); ?>
<?php esc_html_e("ago", "unlimited-elements-for-elementor"); ?>
<?php esc_html_e("by", "unlimited-elements-for-elementor"); ?>
<?php echo $revision["username"]; ?>
</span>
<button
class="uc-revision-button uc-revision-restore unite-button-secondary"
title="<?php esc_attr_e("Restore", "unlimited-elements-for-elementor"); ?>"
>
<i class="fa fa-history"></i>
</button>
<button
class="uc-revision-button uc-revision-download unite-button-secondary"
title="<?php esc_attr_e("Download", "unlimited-elements-for-elementor"); ?>"
>
<i class="fa fa-download"></i>
</button>
</li>
<?php endforeach; ?>
</ul>
<?php endif; ?>
<?php
$html = ob_get_contents();
ob_end_clean();
$response = array();
$response["html"] = $html;
return ($response);
}
/**
* put params and variables dialog
*/
private function putDialogs(){
$addonType = $this->objAddon->getType();
//dialog param
$objDialogParam = UniteCreatorDialogParam::getInstance($addonType);
$objDialogParam->init(UniteCreatorDialogParam::TYPE_MAIN, $this->objAddon);
$objDialogParam->outputHtml();
//dialog variable item
$objDialogVariableItem = UniteCreatorDialogParam::getInstance($addonType);
$objDialogVariableItem->init(UniteCreatorDialogParam::TYPE_ITEM_VARIABLE, $this->objAddon);
$objDialogVariableItem->outputHtml();
//dialog variable main
$objDialogVariableMain = UniteCreatorDialogParam::getInstance($addonType);
$objDialogVariableMain->init(UniteCreatorDialogParam::TYPE_MAIN_VARIABLE, $this->objAddon);
$objDialogVariableMain->outputHtml();
$this->putBulkDialog();
}
/**
* put some html that will appear before tabs
*/
private function putHtml_beforeTabs(){
?>
<div id="uc_update_addon_error" class="unite_error_message" style="display:none"></div>
<?php
}
/**
* put html
*/
private function putHtml(){
if($this->showHeader == true)
$this->putHtml_top();
else
require HelperUC::getPathTemplate("header_missing");
?>
<div class="content_wrapper unite-content-wrapper">
<?php
if($this->showToolbar == true)
$this->putHtml_actionButtons();
$this->putHtml_beforeTabs();
$this->putHtml_tabs();
$this->putHtml_content();
$this->putConfig();
$this->putJs();
$this->putDialogs();
?>
</div>
<?php
}
}