Файловый менеджер - Редактировать - /home/lmsyaran/public_html/administrator/components/com_hikamarket/classes/config.php
Назад
<?php /** * @package HikaMarket for Joomla! * @version 3.1.1 * @author Obsidev S.A.R.L. * @copyright (C) 2011-2020 OBSIDEV. All rights reserved. * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html */ defined('_JEXEC') or die('Restricted access'); ?><?php class hikamarketConfigClass extends hikamarketClass { protected $toggle = array('config_value' => 'config_namekey'); public function load() { $query = 'SELECT * FROM '.hikamarket::table('config'); $this->db->setQuery($query); $this->values = $this->db->loadObjectList('config_namekey'); if(!empty($this->values['default_params']->config_value)) { $this->values['default_params']->config_value = hikamarket::unserialize(base64_decode($this->values['default_params']->config_value)); } } public function set($namekey, $value = null) { if(empty($this->values)) $this->values = array(); $this->values[$namekey] = new stdClass(); $this->values[$namekey]->config_value = $value; $this->values[$namekey]->config_namekey = $namekey; return true; } public function get($namekey, $default = null) { if(isset($this->values[$namekey])){ if(preg_match('#^(menu_|params_)[0-9]+$#',$namekey) && !empty($this->values[$namekey]->config_value) && is_string($this->values[$namekey]->config_value)) { $this->values[$namekey]->config_value = hikamarket::unserialize(base64_decode($this->values[$namekey]->config_value)); } return $this->values[$namekey]->config_value; } return $default; } public function save(&$configObject, $default = false) { if(empty($this->values)) { $this->load(); } $query = 'REPLACE INTO '.hikamarket::table('config').' (config_namekey,config_value'.($default?',config_default':'').') VALUES '; $params = array(); $queryShop = 'REPLACE INTO '.hikamarket::table('shop.config').' (config_namekey,config_value) VALUES '; $paramsShop = array(); if(is_object($configObject)) { if(isset($configObject->config_value) && isset($configObject->config_namekey)) { $n = new stdClass(); $n->{$configObject->config_namekey} = $configObject->config_value; $configObject = $n; } else $configObject = get_object_vars($configObject); } $concatFields = array( 'updatable_order_statuses', 'valid_order_statuses', 'admin_notify_subsale', 'stats_valid_order_statuses', 'vendor_email_order_status_notif_statuses', 'vendor_extra_categories', 'vendor_show_modules' ); $listConcatFields = array( 'default_template_id' ); jimport('joomla.filter.filterinput'); $safeHtmlFilter = JFilterInput::getInstance(null, null, 1, 1); foreach($configObject as $namekey => $value) { $shop = false; if(substr($namekey, 0, 5) == 'shop.') { $shop = true; $namekey = substr($namekey, 5); } if( $namekey == 'default_params' || $namekey == 'vendor_statistics' || preg_match('#^(menu_|params_)[0-9]+$#',$namekey) ) { $value = base64_encode(serialize($value)); } if(is_array($value) && in_array($namekey, $concatFields)) $value = trim(implode(',', $value), ','); if(is_array($value) && in_array($namekey, $listConcatFields)) $value = ',' . trim(implode(',', $value), ',') . ','; if(is_array($value)) continue; if(!$shop) { if(empty($this->values[$namekey])) $this->values[$namekey] = new stdClass(); $this->values[$namekey]->config_value = $value; if( !isset($this->values[$namekey]->config_default) ) { $this->values[$namekey]->config_default = $this->values[$namekey]->config_value; } $params[] = '('.$this->db->Quote(strip_tags($namekey)).','.$this->db->Quote($safeHtmlFilter->clean($value, 'string')).($default?','.$this->db->Quote($this->values[$namekey]->config_default):'').')'; } else { $paramsShop[] = '('.$this->db->Quote(strip_tags($namekey)).','.$this->db->Quote($safeHtmlFilter->clean($value, 'string')).')'; } } $ret = false; if(!empty($paramsShop)) { $queryShop .= implode(',',$paramsShop); $this->db->setQuery($queryShop); $ret = $this->db->execute(); } if(!empty($params)) { $query .= implode(',',$params); $this->db->setQuery($query); $ret = $this->db->execute(); } return $ret; } public function reset(){ $query = 'UPDATE '.hikamarket::table('config').' SET config_value = config_default'; $this->db->setQuery($query); $this->values = $this->db->execute(); } public function vendorget($vendor, $namekey, $default = null) { if(is_numeric($vendor)) { $vendorClass = hikamarket::get('class.vendor'); $vendor = $vendorClass->get( (int)$vendor ); } $vendor_acl_default_public_group = (int)$this->get('vendor_acl_default_public_group', 0); if(empty($vendor_acl_default_public_group)) { if(is_string($vendor->vendor_access) && strpos($vendor->vendor_access, '@') === false) return $default; if(is_array($vendor->vendor_access)) { $a = implode(',', $vendor->vendor_access); if(strpos($a, '@') === false) return $default; } } $joomla_acl = hikamarket::get('type.joomla_acl'); $gs = $joomla_acl->getList(); $groups = array(); foreach($gs as $g) { $groups[$g->id] = $g; } unset($gs); if(is_string($vendor->vendor_access)) { $vendor_access = explode(',', trim(strtolower($vendor->vendor_access), ',')); } else { $vendor_access = $vendor->vendor_access; } if(!empty($vendor_acl_default_public_group)) { $vendor_access[] = '@1'; } foreach($vendor_access as $k => $ax) { if(substr($ax,0,1) != '@') continue; $ax_id = (int)substr($ax,1); if($ax_id == 0) continue; $group = (isset($groups[$ax_id])) ? $group = $groups[$ax_id] : null; while(!empty($group)) { $access = $this->get('vendor_options_acl_'.$group->id, ''); if(!empty($access)) { $access = hikamarket::unserialize($access); if(isset($access[$namekey])) return $access[$namekey]; } $group = (isset($groups[$group->parent_id])) ? $group = $groups[$group->parent_id] : null; } } return $default; } }
| ver. 1.4 |
Github
|
.
| PHP 8.1.33 | Генерация страницы: 0 |
proxy
|
phpinfo
|
Настройка