403Webshell
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/system/classes/properties/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /home/moncbefd/www.moneta.at/system/classes/properties/PropertiesAdminControl.inc.php
<?php
/* --------------------------------------------------------------
   PropertiesAdminControl.inc.php 2018-08-29
   Gambio GmbH
   http://www.gambio.de
   Copyright (c) 2018 Gambio GmbH
   Released under the GNU General Public License (Version 2)
   [http://www.gnu.org/licenses/gpl-2.0.html]
   --------------------------------------------------------------
*/

class PropertiesAdminControl
{        
    public function __construct() {}
    
    public function get_all_properties()
    {
        $coo_product_properties_struct_supplier = MainFactory::create_object('ProductPropertiesStructSupplier');
        $all_properties = $coo_product_properties_struct_supplier->get_all_properties();
        return $all_properties;
    }
    
    public function get_properties($p_properties_id)
    {
        $coo_product_properties_struct_supplier = MainFactory::create_object('ProductPropertiesStructSupplier');
        $properties = $coo_product_properties_struct_supplier->get_properties($p_properties_id);
        return $properties;
    }
    
    public function get_properties_values_by_properties_values_id($p_properties_values_id)
    { 
        $coo_product_properties_struct_supplier = MainFactory::create_object('ProductPropertiesStructSupplier');
        $properties_values = $coo_product_properties_struct_supplier->get_properties_values_by_properties_values_id($p_properties_values_id);
        return $properties_values;
    }
    
    public function save_properties($p_properties_data)
    {
        $c_properties_data = $p_properties_data;
        if(!is_array($c_properties_data)) trigger_error('save_properties: typeof($p_properties_data) != array', E_USER_ERROR); 
        
        $t_return = array();
        
        $t_insert_mode = true;
        $t_properties_id = (int)$c_properties_data['properties_id'];
        $t_sort_order = (int)$c_properties_data['sort_order'];
        
        $coo_properties = new GMDataObject('properties');

        if(empty($t_properties_id))
        {
            $t_return['action'] = 'insert_properties';
            $coo_properties->set_keys(array('properties_id' => false));
        } 
        else 
        { 
            $t_insert_mode = false;
            $t_return['action'] = 'update_properties';
            $coo_properties->set_keys(array('properties_id' => $t_properties_id));
        }
        $coo_properties->set_data_value('sort_order', $t_sort_order);
        
        $t_insert_id = $coo_properties->save_body_data();
        if($t_insert_id > 0) $t_properties_id = $t_insert_id;

        // save properties description
	    $t_languages_array   = xtc_get_languages();
	    $db                  = StaticGXCoreLoader::getDatabaseQueryBuilder();
	    $languageProvider    = MainFactory::create('LanguageProvider', $db);
	    $defaultLanguageCode = $languageProvider->getDefaultLanguageCode();

        for($i=0, $iMax = count($t_languages_array); $i < $iMax; $i++)
        {
            $coo_properties_description = new GMDataObject('properties_description');

            $t_language_id 	 = $t_languages_array[$i]['id'];
            $t_language_code = $t_languages_array[$i]['code'];
	
	        $propertiesName      = $c_properties_data['properties_name'][$defaultLanguageCode];
	        $propertiesAdminName = $c_properties_data['properties_admin_name'][$defaultLanguageCode];
            if(array_key_exists($t_language_code, $c_properties_data['properties_name']))
            {
	            $propertiesName      = $c_properties_data['properties_name'][$t_language_code];
            }
            if(array_key_exists($t_language_code, $c_properties_data['properties_admin_name']))
            {
	            $propertiesAdminName = $c_properties_data['properties_admin_name'][$t_language_code];
            }
	
	        if($t_insert_mode)
            {
                $coo_properties_description->set_keys(array('properties_description_id' => false));
                $coo_properties_description->set_data_value('properties_id', $t_properties_id);
                $coo_properties_description->set_data_value('language_id', $t_language_id);
	            $coo_properties_description->set_data_value('properties_name', $propertiesName);
	            $coo_properties_description->set_data_value('properties_admin_name', $propertiesAdminName);
            }
            else
            {
	            if((bool)$t_languages_array[$i]['status_admin'] !== true)
	            {
		            continue;
	            }
                $coo_properties_description->set_keys(array('properties_id' => $t_properties_id, 'language_id'	=> $t_language_id));
	            $coo_properties_description->set_data_value('properties_name', $propertiesName);
	            $coo_properties_description->set_data_value('properties_admin_name', $propertiesAdminName);
            }
	
            $coo_properties_description->save_body_data();
        }
        
        return $t_properties_id;
    }
    
    public function delete_properties($p_properties_id)
    {
        $c_properties_id = (int)$p_properties_id;
        if(empty($c_properties_id)) trigger_error('delete_properties: typeof($p_properties_id) != integer', E_USER_ERROR); 
        
        $t_return = array();
        
	    # get related properties_values 
	    $query = 'SELECT properties_values_id 
					FROM properties_values 
					WHERE properties_id = ' . $c_properties_id;
	    $result = xtc_db_query($query);
	
	    while($row = xtc_db_fetch_array($result)) {
		    # delete related properties_values
		    $this->delete_properties_values($row['properties_values_id']);
	    }
	
	    # delete properties_description
	    xtc_db_query('DELETE FROM properties_description WHERE properties_id = ' . $c_properties_id);
	
	    # delete property
	    xtc_db_query('DELETE FROM properties WHERE properties_id = ' . $c_properties_id);
        
        $t_return['action'] = 'delete_properties';
        $t_return['properties_id'] = $c_properties_id;
        
        return $t_return;
    }
    
    public function save_properties_values($p_properties_values_data)
    {
        $c_properties_values_data = $p_properties_values_data;
        if(!is_array($c_properties_values_data)) trigger_error('save_properties_values: typeof($p_properties_values_data) != array', E_USER_ERROR); 
        
        $t_return = array();
        
        $t_insert_mode = true;
        
        $t_properties_values_id = (int)$c_properties_values_data['properties_values_id'];
        
        if(empty($t_properties_values_id))
        {
            $t_return['action'] = 'insert_properties_values';
	
	        $query = 'INSERT INTO `properties_values` 
						SET 
							`properties_id` = ' . (int)$c_properties_values_data['properties_id'] . ',
							`sort_order` = ' . (int)$c_properties_values_data['sort_order'] . ',
							`value_model` = "' . xtc_db_input(htmlspecialchars_wrapper($c_properties_values_data['value_model'])) . '",
							`value_price` = ' . clean_numeric_input($c_properties_values_data['value_price']);
	        xtc_db_query($query);
	        $t_properties_values_id = xtc_db_insert_id();
        } 
        else
        {
            $t_insert_mode = false;
            $t_return['action'] = 'update_properties_values';
            $t_property_value = $this->get_properties_values_by_properties_values_id($t_properties_values_id);
	
	        $query = 'UPDATE `properties_values` 
						SET 
							`properties_id` = ' . (int)$c_properties_values_data['properties_id'] . ',
							`sort_order` = ' . (int)$c_properties_values_data['sort_order'] . ',
							`value_model` = "' . xtc_db_input(htmlspecialchars_wrapper($c_properties_values_data['value_model'])) . '",
							`value_price` = ' . clean_numeric_input($c_properties_values_data['value_price']) . '
						WHERE `properties_values_id` = ' . $t_properties_values_id;
	        xtc_db_query($query);
        }

        // save properties values description
        $t_languages_array = xtc_get_languages();

        for($i=0, $iMax = count($t_languages_array); $i < $iMax; $i++)
        {
            $t_language_id 	 = (int)$t_languages_array[$i]['id'];
            $t_language_code = $t_languages_array[$i]['code'];

            if($t_insert_mode)
            {
	            if(array_key_exists($t_language_code, $c_properties_values_data['values_name']))
	            {
		            $valuesName = $c_properties_values_data['values_name'][$t_language_code];
	            }
	            else
	            {
		            $db               = StaticGXCoreLoader::getDatabaseQueryBuilder();
		            $languageProvider = MainFactory::create('LanguageProvider', $db);
		            $valuesName       = $c_properties_values_data['values_name'][$languageProvider->getDefaultLanguageCode()];
	            }
            	$query = 'INSERT INTO `properties_values_description`
							SET
								`properties_values_id` = ' . $t_properties_values_id . ',
								`language_id` = ' . $t_language_id . ',
								`values_name` = "' . xtc_db_input($valuesName) . '"';
	            xtc_db_query($query);
            }
            else
            {
	            if((bool)$t_languages_array[$i]['status_admin'] !== true)
	            {
		            continue;
	            }
	            $query = 'UPDATE `properties_values_description`
							SET
								`values_name` = "' . xtc_db_input($c_properties_values_data['values_name'][$t_language_code]) . '"
							WHERE
								`properties_values_id` = ' . $t_properties_values_id . ' AND 
								`language_id` = ' . $t_language_id;
	            xtc_db_query($query);
            }
        }

        if(!$t_insert_mode)
        {
            if((double)$t_property_value['value_price'] !== (double)$c_properties_values_data['value_price'])
            {
                $t_property_combis_admin_contol = new PropertiesCombisAdminControl();
                $t_combi_ids_array              = $t_property_combis_admin_contol->get_combi_ids_by_property_value_id($t_properties_values_id);

                $t_product_properties = new ProductPropertiesStructSupplier();
                foreach($t_combi_ids_array as $t_combi_id)
                {
                    $t_product_id = (int)$t_property_combis_admin_contol->get_product_id_by_combi_id($t_combi_id);
                    if($t_product_id === 0)
                    {
                        continue;
                    }
                    $t_properties_combis_array                      = $t_product_properties->get_combis($t_product_id,
                        $t_combi_id,
                        $_SESSION['languages_id']);
                    $t_properties_combis_array['properties_values'] = array_keys($t_properties_combis_array['combis_values']);

                    $t_properties_combis_array['products_id'] = $t_product_id;
                    $t_property_combis_admin_contol->save_combis($t_properties_combis_array, false, false);
                }
            }
        }
        
        $t_return['properties_id'] = (int)$c_properties_values_data['properties_id'];        
        $t_return['properties_values_id'] = $t_properties_values_id;             
        
        return $t_return;
    }
    
    public function delete_properties_values($p_properties_values_id)
    {
        $c_properties_values_id = (int)$p_properties_values_id;
        if(empty($c_properties_values_id)) trigger_error('delete_properties_values: typeof($p_properties_values_id) != integer', E_USER_ERROR);  
        
        $t_return = array();
        
	    $combiIds = [];
	    
        $query = 'SELECT products_properties_combis_id 
					FROM products_properties_index 
					WHERE properties_values_id = ' . $c_properties_values_id;
        $result = xtc_db_query($query);
        
        while($row = xtc_db_fetch_array($result)) {
        	$combiIds[] = $row['products_properties_combis_id'];
        }
	
        if(count($combiIds)) {
	        # delete products_properties_combis_values
	        $propertiesCombisAdminControl = MainFactory::create_object('PropertiesCombisAdminControl');
	        $propertiesCombisAdminControl->delete_combis($combiIds);
	
	        #delete index entry
	        xtc_db_query('DELETE FROM products_properties_index WHERE products_properties_combis_id IN (' . implode(',', $combiIds) . ')');
        }
	
	    # delete properties_values_description
        xtc_db_query('DELETE FROM properties_values_description WHERE properties_values_id = ' . $c_properties_values_id);
	
	    # delete properties_values
        xtc_db_query('DELETE FROM properties_values WHERE properties_values_id = ' . $c_properties_values_id);
	    
        $t_return['properties_values_id'] = $c_properties_values_id;
        $t_return['action'] = 'delete_properties_values';
        
        return $t_return;
    }
    
    function get_properties_in_combis_count($p_properties_id)
    {
        $c_properties_id = (int)$p_properties_id;
        if(empty($c_properties_id)) trigger_error('get_properties_in_combis_count: typeof($p_properties_id) != integer', E_USER_ERROR);  
        
        $t_return = array();

        $t_count_combis = 0;
        
        $t_sql = '
            SELECT 
                count(*) AS countCombis
            FROM
                products_properties_index
            WHERE
                language_id = '.$_SESSION['languages_id'].' AND
                properties_id = '.$c_properties_id.'
        ';
        $t_result = xtc_db_query($t_sql);
        
        if(xtc_db_num_rows($t_result) == 1)
        {
            $t_row = xtc_db_fetch_array($t_result);
            $t_count_combis = $t_row['countCombis'];
        }
        
        $t_return['combis_count'] = $t_count_combis;
        $t_return['properties_id'] = $c_properties_id;
        
        return $t_return;
    }
	
    function get_properties_values_in_combis_count($p_properties_values_id)
    {
        $c_properties_values_id = (int)$p_properties_values_id;
        if(empty($c_properties_values_id)) trigger_error('get_properties_values_in_combis_count: typeof($p_properties_values_id) != integer', E_USER_ERROR);
        
        $t_return = array();
        
        $t_count_combis = 0;
        
        $t_sql = '
            SELECT 
                count(*) AS countCombis
            FROM
                products_properties_combis_values
            WHERE
                properties_values_id = '.$c_properties_values_id.'
        ';
        $t_result = xtc_db_query($t_sql);
        
        if(xtc_db_num_rows($t_result) == 1)
        {
            $t_row = xtc_db_fetch_array($t_result);
            $t_count_combis = $t_row['countCombis'];
        }

        $t_return['combis_count'] = $t_count_combis;
        $t_return['properties_values_id'] = $c_properties_values_id;
        
        return $t_return;
    }
}

Youez - 2016 - github.com/yon3zu
LinuXploit