Перейти к публикации
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...

Фильтр не переводит опции


Linkoln
 Поделиться

Рекомендованные сообщения

Добрый вечер, нуждаюсь в совете. Использую 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

Ссылка на комментарий
Поделиться на других сайтах


6 минут назад, Linkoln сказал:

Добрый вечер, нуждаюсь в совете. Использую 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

а чего у вас возникла мысль, что фильтр должен выполнять функции перевода?

Ссылка на комментарий
Поделиться на других сайтах


Ну название категории атрибутов переводит же... Их, как и значение атрибутов, а админке, я задаю на двух языках. Или я что-то не допонимаю?

Ссылка на комментарий
Поделиться на других сайтах


Неужели никто не сталкивался?

Ссылка на комментарий
Поделиться на других сайтах


Спрашивайте у авторов фильтра, мы здесь не при чём.

Ссылка на комментарий
Поделиться на других сайтах

Так я и не с претензией к вам  )

Ссылка на комментарий
Поделиться на других сайтах


Может у кого-нибудь есть идеи, куда смотреть хотя бы, а то 2 дня уже ковыряю, и не ноль

Ссылка на комментарий
Поделиться на других сайтах


14 минут назад, Linkoln сказал:

Может у кого-нибудь есть идеи, куда смотреть хотя бы, а то 2 дня уже ковыряю, и не ноль

вам выше ответили. к разработчику фильтра обратитесь

Ссылка на комментарий
Поделиться на других сайтах


16 hours ago, Dimasscus said:

вам выше ответили. к разработчику фильтра обратитесь

молчит, как рыба

Ссылка на комментарий
Поделиться на других сайтах


1 минуту назад, Linkoln сказал:

молчит, как рыба

Ну либо купите нормальный модуль, либо в раздел платных услуг.

  • +1 1
Ссылка на комментарий
Поделиться на других сайтах

8 минут назад, Linkoln сказал:

ну ясно )

улыбнуло то что вы улыбаетесь на предложение выше. вы установили себе неизвестный бесплатный модификатор фильтра, который даже его автор не хочет исправлять, но предложение обратиться за платной помощью вас улыбает :)) кто то должен вникнуть в эту окрошку, потратить время чтобы вам было хорошо? это так не работает. форум ориентирован на опенкарт и его модули, которые есть на форуме. данный фильтр на форуме почему то отсутствует. почему?

 

Ссылка на комментарий
Поделиться на других сайтах


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

Ссылка на комментарий
Поделиться на других сайтах


3 минуты назад, Linkoln сказал:

Я не прошу никого вникать и делать что-то за меня.

А что Вы просите?

Как ответить на Ваши вопросы, не вникая?

Смотрите модель, дебажьте запросы.

Ссылка на комментарий
Поделиться на других сайтах

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

Ссылка на комментарий
Поделиться на других сайтах


16 минут назад, Linkoln сказал:

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

не бесплатный? серьезно? пишите разработчику. кроме него ни кто не знает что там внутри

50e24-clip-143kb.jpg

Ссылка на комментарий
Поделиться на других сайтах


Мне не приходит ничего на ум, нет, сперва конечно подумал, что в модели выборка происходит без учета 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 minutes ago, Dimasscus said:

не бесплатный? серьезно? пишите разработчику. кроме него ни кто не знает что там внутри

50e24-clip-143kb.jpg


Блин, он точно был куплен :D

Изменено пользователем Linkoln
Ссылка на комментарий
Поделиться на других сайтах


Вообщем, пробовал другие фильтры- то же самое, не переводятся аттрибуты

Ссылка на комментарий
Поделиться на других сайтах


@Linkoln ссылку на сайт покажи.

Ссылка на комментарий
Поделиться на других сайтах

7 minutes ago, mazein said:

@Linkoln ссылку на сайт покажи.

http://dev.casa-filtre.md/index.php?route=product/category&path=59_64

Ссылка на комментарий
Поделиться на других сайтах


14 минут назад, Linkoln сказал:

https://clip2net.com/s/45U28q0 покажите в админке как у товара заданы эти атрибуты

Ссылка на комментарий
Поделиться на других сайтах


17 minutes ago, Dimasscus said:

https://clip2net.com/s/45U28q0 покажите в админке как у товара заданы эти атрибуты

 

Снимок.PNG

Ссылка на комментарий
Поделиться на других сайтах


А вот так они созданы в характеристиках: 
 

Снимок.PNG

Изменено пользователем Linkoln
Ссылка на комментарий
Поделиться на других сайтах


2 часа назад, Linkoln сказал:

Мне не приходит ничего на ум, нет, сперва конечно подумал, что в модели выборка происходит без учета 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
					);
				}
			}

 

 

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

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

Ссылка на комментарий
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
 Поделиться

  • Сейчас на странице   0 пользователей

    • Нет пользователей, просматривающих эту страницу.
×
×
  • Создать...

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.