| Server IP : 85.158.181.41 / Your IP : 216.73.217.12 Web Server : Apache System : Linux cloud9-vm129 6.1.178+1-ph #ph SMP PREEMPT_DYNAMIC Wed Jul 29 09:00:54 UTC 2026 x86_64 User : moncbefd ( 1024) PHP Version : 7.3.33 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /home/moncbefd/www.moneta.at/actindo/ |
Upload File : |
<?php
/**
* various utilities
* actindo Faktura/WWS connector
* @package actindo
* @author Patrick Prasse <patrick.prasse@actindo.com>
*
* @version $Revision: 901 $
* @copyright Copyright© Actindo AG 2018, <support@actindo.com>, Carl-Zeiss-Ring 15 - 85737 Ismaning
* @license http://opensource.org/licenses/GPL-2.0 GNU Public License
*/
define('SHOP_TYPE_XTCOMMERCE', 'xtcommerce');
define('SHOP_TYPE_GAMBIOGX', 'gambiogx');
define('SHOP_TYPE_XTC4', 'xtcommerce4');
define('SHOP_TYPE_OSCOMMERCE', 'oscommerce');
define('SHOP_TYPE_SHOPWARE', 'shopware');
define('SHOP_TYPE_MAGENTO', 'magentocommerce');
define('SHOP_TYPE_OXID4', 'oxid4');
// act_get_shop_type in <shoptype>/util.php
// act_shop_get_capabilities in <shoptype>/util.php
function act_shop_is($type)
{
return act_get_shop_type() == $type;
}
if (!function_exists('file_put_contents')) {
function file_put_contents($filename, $data)
{
$fp = fopen($filename, 'w');
if (!$fp) {
return false;
}
$n = fwrite($fp, $data);
fclose($fp);
return $n;
}
}
function _actindo_generic_mapper(&$input, &$map)
{
$output = array();
foreach ($input as $_key => $_val) {
$_newkey = $map[$_key];
if (!isset($_newkey)) {
$varname = "['xtcshop']['{$_key}']";
} else {
parse_str($_newkey . '=1', $arr);
$varname = _function_do_get_var($arr);
}
eval("\$output{$varname} = \$_val;");
}
return $output;
}
function _function_do_get_var($arr, $str = '')
{
//list($key, $newarr) = each($arr);
// php 7
$key = key($arr);
$newarr = current($arr);
if (is_string($key) || is_float($key)) {
$str .= sprintf("['%s']", $key);
} else {
$str .= sprintf("[%d]", $key);
}
if (is_array($newarr)) {
$str .= _function_do_get_var($newarr);
}
return $str;
}
function var_dump_string($var)
{
ob_start();
var_dump($var);
return ob_get_clean();
}
function encode_all_base64($data)
{
$ret = array();
if (is_array($data)) {
if (count($data)) {
foreach ($data as $idx => $val) {
$ret[$idx] = encode_all_base64($val);
}
}
} else {
if (is_numeric($data) || is_object($data)) { // save overhead with numbers
$ret = $data;
} else {
$ret = new xmlrpcval($data, $GLOBALS["xmlrpcBase64"]);
}
}
return $ret;
}
/**
* @author derernst at gmx dot ch
*/
function decode_entities($text, $quote_style = ENT_COMPAT)
{
if (function_exists('html_entity_decode')) {
$text = html_entity_decode($text, $quote_style); // NOTE: UTF-8 does not work!
} else {
$trans_tbl = get_html_translation_table(HTML_ENTITIES, $quote_style);
$trans_tbl = array_flip($trans_tbl);
$text = strtr($text, $trans_tbl);
}
return $text;
}
function get_col($mapping)
{
return (!is_array($mapping) ? $mapping : '`' . $mapping[0] . '`.`' . esc($mapping[1]) . '`');
}
function create_query_from_filter($request, $mapping, $default_order = null)
{
$q_search = '1';
$order = null;
$limit = '0';
if (isset($request[0]['field'])) { // just filter, no limit / order
$filter = $request;
} else {
if (isset($request['start']) && isset($request['limit'])) {
$limit = sprintf("%d OFFSET %d", $request['limit'], $request['start']);
} else {
$limit = '0';
}
if (is_null($default_order)) {
$m = array_keys($mapping);
$default_order = get_col($mapping[$m[0]]);
}
if (isset($request['sortColName']) && !empty($request['sortColName'])) {
$order_col = $request['sortColName'];
if (!isset($mapping[$order_col])) {
$order_col = $default_order;
} else {
$order_col = get_col($mapping[$order_col]);
}
$order_dir = ($request['sortOrder'] < 0 || $request['sortOrder'] === 'ASC' ? 'ASC' : 'DESC');
} else {
$order_col = $default_order;
$order_dir = 'DESC';
}
$order = trim($order_col . ' ' . $order_dir);
$filter = $request['filter'];
}
if (isset($filter) && is_array($filter) && count($filter)) {
$op = array(
'lt' => '<',
'gt' => '>',
'eq' => '='
);
$q_filter = array();
foreach ($filter as $_fi => $filter) {
$fld = $filter['field'];
$filter = $filter['data'];
if (!isset($mapping[$fld])) {
return FALSE;
}
list($tablealias, $fld, $forcetype) = $mapping[$fld];
if (isset($forcetype) && !empty($forcetype))
$filter['type'] = $forcetype;
if ($filter['type'] == 'date') {
$q = '`' . $tablealias . '`.`' . esc($fld) . '`';
$q .= $op[$filter['comparison']];
$q .= "'" . esc($filter['value']) . "'";
} else if ($filter['type'] == 'list') {
$vals = explode(',', $filter['value']);
$args = array();
foreach ($vals as $_val) {
$args[] = "'" . esc($_val) . "'";
}
$q = 'FIELD(`' . $tablealias . '`.`' . esc($fld) . '`, ' . join(', ', $args) . ')<>0';
} else if ($filter['type'] == 'boolean') {
if ($filter['value'] === 'false') {
$filter['value'] = 0;
} elseif ($filter['value'] === 'true') {
$filter['value'] = 1;
} else {
$filter['value'] = (int)$filter['value'];
}
$f1 = '`' . $tablealias . '`.`' . esc($fld) . '`';
$q = 'IFNULL(' . $f1 . ',0)' . ($filter['value'] ? '<>0' : '=0');
} else if ($filter['type'] == 'string') {
$q = '`' . $tablealias . '`.`' . esc($fld) . '` LIKE \'%' . esc($filter['value']) . '%\'';
} else if ($filter['type'] == 'numeric') {
$q = '`' . $tablealias . '`.`' . esc($fld) . '`';
$q .= $op[$filter['comparison']];
$q .= sprintf("%f", (float)$filter['value']);
}
$q_filter[] = $q;
}
if (count($q_filter)) {
$q_search = '(' . join(' AND ', $q_filter) . ')';
}
}
$ret = compact('q_search');
if (!is_null($order)) {
$ret['order'] = $order;
}
if (!is_null($limit)) {
$ret['limit'] = $limit;
} else {
$ret['limit'] = "2147483647 OFFSET 0";
}
return $ret;
}
if (!function_exists('stripos')) {
function stripos($haystack, $needle)
{
return strpos(strtolower($haystack), strtolower($needle));
}
}
/**
* Add last slash to a directory if last char is not a slash
*
* @param string $path Path to add last slash to
* @returns string Path with last slash added
*/
function add_last_slash($path)
{
if (substr($path, strlen($path) - 1, 1) != '/') {
$path .= '/';
}
return $path;
}