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/filter/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /home/moncbefd/www.moneta.at/system/classes/filter/FilterBoxContentView.inc.php
<?php
/* --------------------------------------------------------------
  FilterBoxContentView.inc.php 2018-11-19
  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]
  --------------------------------------------------------------
 */

require_once DIR_FS_INC . 'xtc_get_all_get_params.inc.php';

class FilterBoxContentView extends ContentView
{
    protected $categoryId = 0;
    protected $languageId;
    protected $selectedValuesArray;
    protected $priceStart = false;
    protected $priceEnd = false;
    protected $filterUrl = false;

    protected $featureControl;
    protected $featureSetSource;
    protected $gmSEOBoost;

    protected $featureMode; // Alle Filterboxen auswählbar || Stufenmodus
    protected $featureDisplayMode; // Nicht verfügbare Werte ausgeblendet || ausgegraut
    protected $featureEmptyBoxMode; // Hinweis-Text in leerer Filterbox || Leere Filterbox ausblenden


    /*
     * constructor
     */
    public function __construct()
    {
        parent::__construct();
        $this->set_content_template('boxes/box_filter.html');

        $this->featureControl = MainFactory::create_object('FeatureControl');
        $this->featureSetSource = MainFactory::create_object('FeatureSetSource');
        $this->gmSEOBoost = MainFactory::create_object('GMSEOBoost', [], true);
    }

    /*
     * create HTML code for every feature
     * @param int $p_categories_id  category_id
     * @param int $p_language_id  shop language_id
     * @param array $this->selectedValuesArray  array with feature value ids
     * @return array $t_html_output  the HTML code as array for output
     */
    public function prepare_data()
    {
        $t_coo_cat_filter = $this->featureControl->get_categories_filter_array(array('categories_id' => $this->categoryId),
            array('sort_order'));

        $this->featureMode = gm_get_conf('FEATURE_MODE');
        $this->featureDisplayMode = gm_get_conf('FEATURE_DISPLAY_MODE');
        $this->featureEmptyBoxMode = gm_get_conf('FEATURE_EMPTY_BOX_MODE');
        if ($this->categoryId > 0) {
            $coo_categories = MainFactory::create_object('GMDataObject',
                array('categories', array('categories_id' => $this->categoryId)));
            $this->featureMode = $coo_categories->get_data_value('feature_mode');
            $this->featureDisplayMode = $coo_categories->get_data_value('feature_display_mode');
        }

        $t_selected_feature_value_id_array = array();
        if (is_array($this->selectedValuesArray)) {
            if (is_object($GLOBALS['coo_debugger'])) {
                $GLOBALS['coo_debugger']->log('FilterBoxContentView get_html() $this->selectedValuesArray: ' . print_r($this->selectedValuesArray,
                        true), 'FilterManager');
            }
            // set values array
            $t_selected_feature_value_id_array = $this->selectedValuesArray;
            // generate feature to values array
            $t_feature_values = $this->featureSetSource->convert_values_array_to_feature_values_array($this->selectedValuesArray);
        } else {
            $t_allowed_features = false;
            if ($this->featureMode == 1) {
                // get coherently feature in steps mode
                $t_allowed_features = array();
                $t_features_array = $this->featureSetSource->extract_features_from_feature_values_string($this->selectedValuesArray);
                foreach ($t_coo_cat_filter as $t_coo_filter) {
                    if (!in_array($t_coo_filter->v_feature_id, $t_features_array)) {
                        break;
                    }
                    $t_allowed_features[] = $t_coo_filter->v_feature_id;
                }
            }

            $t_selected_feature_value_id_array = $this->featureSetSource->extract_values_from_feature_values_string($this->selectedValuesArray,
                $t_allowed_features);
            $t_feature_values = $this->selectedValuesArray;
        }

        // reset SESSION if no values selected
        if ($t_feature_values == '') {
            $_SESSION["filter_history"] = array();
        }

        $t_html_array = array();

        $t_all_feature_values_of_all_sets = $this->featureSetSource->get_available_feature_values_by_feature_values($this->categoryId,
            array());
        $t_set_bound_feature_values = $this->featureSetSource->get_available_feature_values_by_feature_values($this->categoryId,
            $t_feature_values);
        $t_selected_values_count = 0;
        foreach ($t_coo_cat_filter as $t_coo_filter) {
            $t_feature_id = $t_coo_filter->v_feature_id;
            $t_template = $t_coo_filter->v_selection_template;
            $t_value_conjunction = $t_coo_filter->v_value_conjunction;
            $t_feature_name = $t_coo_filter->get_feature_name($this->languageId);
            $t_feature_value_array = $this->featureControl->get_feature_value_array($t_feature_id);
            $t_feature_value_array = $this->featureControl->get_feature_value_description($t_feature_value_array);

            $t_feature_empty = true;

            $t_feature_value_data_array = array();
            foreach ($t_feature_value_array as $f_coo_feature) {
                if (!in_array($f_coo_feature['feature_value_id'], $t_all_feature_values_of_all_sets)) {
                    continue;
                }
                if (!in_array($f_coo_feature['feature_value_id'],
                        $t_set_bound_feature_values) && $this->featureDisplayMode == 0) {
                    continue;
                }
                $t_visible = true;
                if (!in_array($f_coo_feature['feature_value_id'], $t_set_bound_feature_values)) {
                    $t_visible = false;
                } else {
                    $t_feature_empty = false;
                }

                $t_feature_value_id = $f_coo_feature['feature_value_id'];
                $t_feature_value_name = $f_coo_feature['feature_value_text_array'][$this->languageId];

                # feature_value_id selected TRUE/FALSE
                $t_feature_value_selected = in_array($t_feature_value_id, $t_selected_feature_value_id_array);
                if ($t_feature_value_selected) {
                    $t_selected_values_count++;
                }

                $t_feature_value_data_array[] = array(
                    'ID' => $t_feature_value_id,
                    'NAME' => $t_feature_value_name,
                    'SELECTED' => $t_feature_value_selected,
                    'DISPLAY_MODE' => $this->featureDisplayMode,
                    'VISIBLE' => $t_visible
                );
            }

            $t_coo_content_view = MainFactory::create_object('ContentView');
            $t_coo_content_view->set_template_dir(DIR_FS_CATALOG . StaticGXCoreLoader::getThemeControl()->getFilterSelectionTemplatePath());
            $t_coo_content_view->set_content_template($t_template);

            $t_coo_content_view->set_content_data('FEATURE_NAME', $t_feature_name);
            $t_coo_content_view->set_content_data('FEATURE_VALUE_DATA', $t_feature_value_data_array);
            $t_coo_content_view->set_content_data('FEATURE_ID', $t_feature_id);
            $t_coo_content_view->set_content_data('VALUE_CONJUNCTION', (int)$t_value_conjunction);

            $t_content_array = array();
            $t_content_array['html'] = $t_coo_content_view->get_html(0);
            $t_content_array['empty_feature'] = $t_feature_empty;

            $t_html_array[] = $t_content_array;
        }

        $t_html_array_count = count($t_html_array);
        for ($i = 0; $i < $t_html_array_count; $i++) {
            if ($i == 0) {
                $t_html_array[$i]['show'] = true;
            } else {
                if (strpos($t_html_array[$i - 1]['html'], 'checked') || strpos($t_html_array[$i - 1]['html'],
                        'selected')) {
                    $t_html_array[$i]['show'] = true;
                } else {
                    $t_html_array[$i]['show'] = false;
                }
            }
        }
        if ($t_selected_values_count == 0) {
            $_SESSION["filter_history"] = array();
        }

        # contains html code for feature_value selections
        $this->set_content_data('FEATURE_DATA', $t_html_array);

        $this->set_content_data('FEATURE_MODE', $this->featureMode);
        $this->set_content_data('FEATURE_DISPLAY_MODE', $this->featureDisplayMode);
        $this->set_content_data('FEATURE_EMPTY_BOX_MODE', $this->featureEmptyBoxMode);
        $this->set_content_data('categories_id', (int)$this->categoryId);

        $t_action_url = '';

        if ($this->gmSEOBoost->boost_categories == true && xtc_not_null($_GET['gm_boosted_category'])) {
            # use boosted url
            $t_action_url = $this->gmSEOBoost->get_current_boost_url();
        }

        if ($this->filterUrl != false) {
            $t_action_url = $this->filterUrl;
        } elseif ($t_action_url === '') {
            $t_action_url = '';
            if (strpos(gm_get_env_info('REQUEST_URI'), 'advanced_search_result.php') !== false) {
                $t_action_url = 'advanced_search_result.php';
            } elseif (gm_get_conf('SUPPRESS_INDEX_IN_URL') !== 'true') {
                $t_action_url = 'index.php';
            }

            # use default url for splitting urls
            $t_all_get_params = trim(urldecode(xtc_get_all_get_params()), '&');

            if ($t_all_get_params !== '') {
                $t_action_url .= '?' . $t_all_get_params;
            }
        }

        $t_action_url = xtc_href_link($t_action_url, '', 'NONSSL', true, true, true);

        //$t_action_url = gm_get_env_info('REQUEST_URI');
        $this->set_content_data('FILTER_URL', $t_action_url);
        $this->set_content_data('FORM_ACTION_URL', $t_action_url);
        $this->set_content_data('CURRENCY', $_SESSION['currency']);

        # entered prices
        $t_price_start = '';
        $t_price_end = '';

        if ($this->priceStart !== false && !empty($this->priceStart)) {
            $t_price_start = htmlentities_wrapper($this->priceStart);
        }
        if ($this->priceEnd !== false && !empty($this->priceEnd)) {
            $t_price_end = htmlentities_wrapper($this->priceEnd);
        }

        $this->set_content_data('DEFAULT_PRICE_START', $t_price_start);
        $this->set_content_data('DEFAULT_PRICE_END', $t_price_end);

        $this->set_content_data('PRICE_FILTER_FROM_ACTIVE', gm_get_conf('PRICE_FILTER_FROM_ACTIVE'));
        $this->set_content_data('PRICE_FILTER_TO_ACTIVE', gm_get_conf('PRICE_FILTER_TO_ACTIVE'));

        if (gm_get_conf('GM_SEO_BOOST_CATEGORIES') == 'true') {
            $this->set_content_data('EXCLUDE_GET_PARAMS',
                'cat,gm_boosted_category,filter_fv_id,value_conjunction,filter_price_min,filter_price_max,do,value_conjunction,page_token');
            $this->set_content_data('EXCLUDE_POST_PARAMS',
                'cat,gm_boosted_category,filter_fv_id,price_start,price_end,feature_values,filter_categories_id,filter_price_min,filter_price_max,do,value_conjunction,page_token');
        } else {
            $this->set_content_data('EXCLUDE_GET_PARAMS',
                'filter_fv_id,value_conjunction,filter_price_min,filter_price_max,do,value_conjunction,page_token');
            $this->set_content_data('EXCLUDE_POST_PARAMS',
                'filter_fv_id,price_start,price_end,feature_values,filter_categories_id,filter_price_min,filter_price_max,do,value_conjunction,page_token');
        }

    }


    /**
     * @return int
     */
    public function getCategoryId()
    {
        return $this->categoryId;
    }


    /**
     * @param int $categoryId
     */
    public function setCategoryId($categoryId)
    {
        $this->categoryId = (int)$categoryId;
    }


    /**
     * @return boolean
     */
    public function isFilterUrl()
    {
        return $this->filterUrl;
    }


    /**
     * @param boolean $filterUrl
     */
    public function setFilterUrl($filterUrl)
    {
        $this->filterUrl = (string)$filterUrl;

        $parts = parse_url($filterUrl);
        parse_str($parts['query'], $getParams);

        if (array_key_exists('filter_url', $getParams)) {
            $this->filterUrl = (string)rawurldecode($getParams['filter_url']);
        }
    }


    /**
     * @return mixed
     */
    public function getLanguageId()
    {
        return $this->languageId;
    }


    /**
     * @param mixed $languageId
     */
    public function setLanguageId($languageId)
    {
        $this->languageId = (int)$languageId;
    }


    /**
     * @return boolean
     */
    public function isPriceEnd()
    {
        return $this->priceEnd;
    }


    /**
     * @param boolean $priceEnd
     */
    public function setPriceEnd($priceEnd)
    {
        $this->priceEnd = (string)$priceEnd;
    }


    /**
     * @return boolean
     */
    public function isPriceStart()
    {
        return $this->priceStart;
    }


    /**
     * @param boolean $priceStart
     */
    public function setPriceStart($priceStart)
    {
        $this->priceStart = (string)$priceStart;
    }


    /**
     * @return boolean
     */
    public function isSelectedValuesArray()
    {
        return $this->selectedValuesArray;
    }


    /**
     * @param mixed $selectedValuesArray
     */
    public function setSelectedValuesArray($selectedValuesArray)
    {
        $this->selectedValuesArray = $selectedValuesArray;
    }


    public function setFilterFormContent()
    {
        $this->set_content_template('boxes/box_filter_form_content.html');
    }
}

Youez - 2016 - github.com/yon3zu
LinuXploit