File: /var/www/agighana.org_backup/unitecreator_variables_output.class.php
<?php
/**
* @package Unlimited Elements
* @author unlimited-elements.com
* @copyright (C) 2021 Unlimited Elements, All Rights Reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
* */
if ( ! defined( 'ABSPATH' ) ) exit;
class UniteCreatorVariablesOutput{
const TYPE_ITEM_SIMPLE = "uc_varitem_simple";
const TYPE_PARAM_RELATED = "uc_var_paramrelated";
const TYPE_PARAM_ITEM_RELATED = "uc_var_paramitemrelated";
private $isInited = false, $arrParams;
private $var, $item, $index, $numItem, $numItems, $isFirstItem, $isLastItem;
/**
* validate that the object is inited
*/
private function validateInited(){
if($this->isInited == false)
UniteFunctionsUC::throwError("UniteCreatorVariablesOutput not inited");
}
/**
* get variable field
*/
private function getVarValue($name){
$value = UniteFunctionsUC::getVal($this->var, $name);
return($value);
}
/**
* get simple item var content
*/
private function getContent_varItemSimple(){
$content = $this->getVarValue("default_value");
//in case of first item
if($this->isFirstItem){
$enableFirstItem = $this->getVarValue("enable_first_item");
$enableFirstItem = UniteFunctionsUC::strToBool($enableFirstItem);
if($enableFirstItem == true)
$content = $this->getVarValue("first_item_value");
}
else if($this->isLastItem){ //in case of last item
$enableLastItem = $this->getVarValue("enable_last_item");
$enableLastItem = UniteFunctionsUC::strToBool($enableLastItem);
if($enableLastItem == true)
$content = $this->getVarValue("last_item_value");
}
return($content);
}
/**
* get param related content, from item params or main params
*/
public function getContent_paramRelated($isItem = false){
$params = $this->arrParams;
if($isItem == true)
$params = $this->item;
$paramName = $this->getVarValue("param_name");
$paramValue = UniteFunctionsUC::getVal($params, $paramName);
$options = $this->getVarValue("options");
if(!empty($options) && is_array($options)){
if(is_scalar($paramValue) && array_key_exists($paramValue, $options))
$paramValue = $options[$paramValue];
}
return($paramValue);
}
/**
* get item variable data
*/
public function getItemVarContent($var, $item, $index, $numItems){
$this->validateInited();
$this->var = $var;
$this->numItems = $numItems;
$this->index = $index;
$this->numItem = $index+1;
$this->isFirstItem = ($index == 0);
$this->isLastItem = ($index == ($numItems-1) );
$this->item = $item;
$type = UniteFunctionsUC::getVal($var, "type");
switch($type){
case self::TYPE_ITEM_SIMPLE:
$content = $this->getContent_varItemSimple();
break;
case self::TYPE_PARAM_RELATED:
$content = $this->getContent_paramRelated();
break;
case self::TYPE_PARAM_ITEM_RELATED:
$content = $this->getContent_paramRelated(true);
break;
default:
UniteFunctionsUC::throwError("Wrong item variable type: <b>{$type}</b>");
break;
}
//convert numitem
if(!empty($content)){
$content = str_replace("%numitem%", $this->numItem, $content);
}
return($content);
}
/**
* get GET param
*/
public function getContent_GETParam(){
$name = UniteFunctionsUC::getVal($this->var, "name");
$defaultValue = UniteFunctionsUC::getVal($this->var, "default_value");
$sanitizeType = UniteFunctionsUC::getVal($this->var, "sanitize_type");
$content = UniteFunctionsUC::getGetVar($name, $defaultValue, $sanitizeType);
return($content);
}
/**
* get content by filter
*/
private function getContent_filter(){
$filterName = UniteFunctionsUC::getVal($this->var, "filter_name");
$filterParam = UniteFunctionsUC::getVal($this->var, "filter_param");
if(empty($filterName))
return("");
if(empty($filterParam))
$content = apply_filters($filterName, "");
else
$content = apply_filters($filterName, "", $filterParam);
return($content);
}
/**
* get main var content
*/
public function getMainVarContent($var){
$this->var = $var;
$type = UniteFunctionsUC::getVal($var, "type");
switch($type){
case self::TYPE_PARAM_RELATED:
$content = $this->getContent_paramRelated();
break;
case UniteCreatorDialogParam::PARAM_VAR_GET:
$content = $this->getContent_GETParam();
break;
case UniteCreatorDialogParam::PARAM_VAR_FILTER:
$content = $this->getContent_filter();
break;
case self::TYPE_ITEM_SIMPLE:
$content = $this->getContent_varItemSimple();
break;
default:
UniteFunctionsUC::throwError("Wrong main variable type: <b>{$type}</b>");
break;
}
return($content);
}
/**
* init the object, get item params
*/
public function init($arrParams){
$this->arrParams = $arrParams;
$this->isInited = true;
}
}