Jump to content
Linkoln

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

Recommended Posts

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

Share this post


Link to post
Share on other sites
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

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
14 минут назад, Linkoln сказал:

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

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

Share this post


Link to post
Share on other sites
16 hours ago, Dimasscus said:

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

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

Share this post


Link to post
Share on other sites
1 минуту назад, Linkoln сказал:

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

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

  • +1 1

Share this post


Link to post
Share on other sites

ну ясно )

Share this post


Link to post
Share on other sites
8 минут назад, Linkoln сказал:

ну ясно )

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

 

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
3 минуты назад, Linkoln сказал:

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

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

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

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
16 минут назад, Linkoln сказал:

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

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

50e24-clip-143kb.jpg

Share this post


Link to post
Share on other sites

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

 

Share this post


Link to post
Share on other sites

 

 

3 minutes ago, Dimasscus said:

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

50e24-clip-143kb.jpg


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

Edited by Linkoln

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
17 minutes ago, Dimasscus said:

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

 

Снимок.PNG

Share this post


Link to post
Share on other sites

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

Снимок.PNG

Edited by Linkoln

Share this post


Link to post
Share on other sites
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
					);
				}
			}

 

 

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

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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.