Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Linkoln

Користувачі
  
  • Публікації

    185
  • З нами

  • Відвідування

Повідомлення, опубліковані користувачем Linkoln

  1. 24 minutes ago, mazein said:

     

    Это выбор значений фильтра, а не атрибутов.

    Ищи запрос значний атрибутов.

    
    			$prostofilter_groups = $this->model_catalog_category->getCategoryFilters($category_id);
    
    			if ($prostofilter_groups) {
    				foreach ($prostofilter_groups as $prostofilter_group) {
    					if ($prostofilter_group['name'] == 'Цена') {
    						if ($prostofilter_group['filter'][0]['filter_id'] == $prostofilter_group['filter'][0]['name']) {
    							continue;
    						}
    					}
    
    					$childen_data = array();
    
    					foreach ($prostofilter_group['filter'] as $prostofilter) {
    						$prostofilter_data = array(
    							'filter_category_id' => $category_id,
    							'filter_filter'      => $prostofilter['filter_id']
    						);
    
    						$childen_data[] = array(
    							'prostofilter_id' => $prostofilter['filter_id'],
    							'name'      => $prostofilter['name'],
    							
    						);
    					}
    					
    					$data['prostofilter_groups'][] = array(
    						'prostofilter_group_id' => $prostofilter_group['filter_group_id'],
    						'name'            => $prostofilter_group['name'],
    						'prostofilter'          => $childen_data,
    						
    					);
    				}
    				if (count($data['prostofilter_groups']) > 0) {
    					return $this->load->view('extension/module/prostofilter', $data);
    				}
    			}

    Это самый вложенный цикл, во вьюшке имена инпутом выводятся по prostofilter.name

     

  2. Мне не приходит ничего на ум, нет, сперва конечно подумал, что в модели выборка происходит без учета Langeage.id, но все на месте 
     

    foreach ($filter_group_query->rows as $filter_group) {
    				$filter_data = array();
    
    				$filter_query = $this->db->query("SELECT DISTINCT f.filter_id, fd.name FROM " . DB_PREFIX . "filter f LEFT JOIN " . DB_PREFIX . "filter_description fd ON (f.filter_id = fd.filter_id) WHERE f.filter_id IN (" . implode(',', $implode) . ") AND f.filter_group_id = '" . (int)$filter_group['filter_group_id'] . "' AND fd.language_id = '" . (int)$this->config->get('config_language_id') . "' ORDER BY f.sort_order, LCASE(fd.name)");
    
    				foreach ($filter_query->rows as $filter) {
    					$filter_data[] = array(
    						'filter_id' => $filter['filter_id'],
    						'name'      => $filter['name']
    					);
    				}
    
    				if ($filter_data) {
    					$filter_group_data[] = array(
    						'filter_group_id' => $filter_group['filter_group_id'],
    						'name'            => $filter_group['name'],
    						'filter'          => $filter_data
    					);
    				}
    			}

     

  3. Да в том то и дело, что модель не тронута, стандартный getCategoryFilters() , фильтр в контроллере вызывает ее и далее в цикле уже разбирает. Значения, одинаковые на двух языках, выводятся в одном экземпляре, а те, что указаны, выводятся в двух вариантах. 

  4. Я не прошу никого вникать и делать что-то за меня. По-моему, форумы как раз и созданы для того, что бы люди со схожими интересами, могли обсудить друг с другом, какие-нибудь проблемы или нюансы, возникшие в процессе. Заказчик не хочет покупать другой фильтр, тот что установлен, кстати не бесплатный. Я делал этот сайт и когда он не был наполнен товарами, проблем не было. Теперь мне нужно исправить этот баг, но если честно, ни разу с таким не сталкивался. Проверил контроллер фильтра, модель... все стандартно, все как обычно, очевидно, проблема носит специфический характер, вот я и решил поинтересоваться в сообществе- может быть кто-то сталкивался уже с подобным. 

  5. Добрый вечер, нуждаюсь в совете. Использую ocstore 3.0.2.0  На сайте установлен фильтр (prostofilter), который должен фильтровать товары по цене, производителю, и атрибутам. Проблема с выводом атрибутов. Атрибуты, которые не требуют перевода, выводятся нормально. Атрибуты, значение которых нужно переводить, выводятся без перевода. Вот код из контроллера, который выводит список атрибутов в вильтре.

    $prostofilter_groups = $this->model_catalog_category->getCategoryFilters($category_id);
    if ($prostofilter_groups) {
    				foreach ($prostofilter_groups as &$prostofilter_group) {
    					if ($prostofilter_group['name'] == 'Цена') {
    						
    
    						if ($prostofilter_group['filter'][0]['filter_id'] == $prostofilter_group['filter'][0]['name']) {
    							continue;
    						}
    					}
    
    
    					$childen_data = array();
    
    					foreach ($prostofilter_group['filter'] as $prostofilter) {
    						$prostofilter_data = array(
    							'filter_category_id' => $category_id,
    							'filter_filter'      => $prostofilter['filter_id']
    						);
    
    						$childen_data[] = array(
    							'prostofilter_id' => $prostofilter['filter_id'],
    							'name'      => $prostofilter['name'],
    							
    						);
    					}
    					
    
    					$data['prostofilter_groups'][] = array(
    						'prostofilter_group_id' => $prostofilter_group['filter_group_id'],
    						'name'            => $prostofilter_group['name'],
    						'prostofilter'          => $childen_data,
    						
    					);
    				}
    				if (count($data['prostofilter_groups']) > 0) {
    					return $this->load->view('extension/module/prostofilter', $data);
    				}
    			}

    А вот как это выглядит на сайте 

     

    Снимок.PNG

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.