0 Пользователей и 1 Гость просматривают эту тему.
  • 2 Ответов
  • 1361 Просмотров
*

wedford

  • Осваиваюсь на форуме
  • 22
  • 2 / 0
В К2 есть доп.поле "Улица", чтобы не создавать список улиц, выставил ему тип "Поисковые метки". В фильтре сделал вывод выпадающем списком, все метки подгрузились. Но если выбрать одну из них, то фильтрация не происходит, метки проиндексированы, стандартный модуль поиска их находит, и если в доп.полях нажать на метку, то выводятся все материалы содержащие ее.
Кто-нибудь сталкивался с подобным? 
*

wedford

  • Осваиваюсь на форуме
  • 22
  • 2 / 0
Ну как говорится "Век живи - век учись!"
JA K2 Filter And Search меня уже порядком достал, но работать можно.
Проблема кроется в незнании и малого опыта работы с K2.
При прямой загрузки в MySQL в столбец extra_fields все происходит как надо например в моем случае так ( я не буду приводить код загрузки, просто выдержки):
Формируем переменную для доп.полей из массива
Код
$extra_fields =	'[
{"id":"20","value":"'.$item[7].'"},
{"id":"21","value":"'.$item[8].'"},
{"id":"22","value":"'.$item[9].'"}
]';
Пускай в $item[9] хранится "Карбышева наб.", мы это записываем в доп.поле с id=22 (Улица).
Открываем MySQL и видим у нужного материала, в столбце extra_fields, стоит
Код
{"id":"22","value":"Карбышева наб."}

Теперь индексируем все материалы с помощью компонента JA K2 Filter And Search.
После индексации в таблице jak2filter_taxonomy появится наш Советский пр-т с типом Search Label.
Ну вроде все... все должно работать. Идем на фронт)))) в модуле фильтра выбираем наш Карбышева наб. жмем кнопку и.... NULL
Я негодую, что происходит - включаю модуль родного поиска от K2, он все прекрасно находит ( в столбце extra_fields_search тоже есть Карбышева наб.). И тут я случайно, нахожу в MySQL отредактированный и сохраненный через админку материал, а в столбце b]extra_fields[/b] стоит
Код
{"id":"22","value":"\u041a\u0430\u0440\u0431\u044b\u0448\u0435\u0432\u0430\u043d\u0430\u0431."}
Вот где собачья морда порылась
Пишим функцию
Код
function utf8_urldecode($str) { 
$str = preg_replace("/%u([0-9a-f]{3,4})/i","&#x\\\\1;",urldecode($str));
return html_entity_decode($str,null,'UTF-8');
}
и вызываем ее
Код
$street = json_encode(utf8_urldecode($item[9])); // Кодируем улицу
$street = mysql_real_escape_string($street); // Экранируем обратный слэш иначе в MySQL придет u041au0430u0440u0431u044bu0448u0435u0432u0430u043du0430u0431.
Повторяем запись в MySQL и индексируем - вот теперь все работает как надо.
Одного понять не могу пока - на странице с квартирами я выставил модуль JA K2 Filter And Search, в его настройках указал что результат выводить на странице тра-ля-ля. Произвожу поиск, перебрасывает на страницу с результатами, но если я перейду на вторую страницу, то модуль пропадает. Если есть у кого какие соображения, сократите мое время пожалуйста, накидайте ссылок.
*

wedford

  • Осваиваюсь на форуме
  • 22
  • 2 / 0
Продолжаем разговор сам с собой.
Выводим модуль JA K2 Filter And Search на страницах где это нужно.
Задача простая: есть четыре страницы и четыре модуля, нужно выводить только один модуль на определенной странице, что может быть проще. Ставим галку где выводить и все. Да, но не ДА.
В настройках модуля есть крутой параметр "Menu ItemID" - который указывает на какой странице выводить результат, ставим туже страницу где и выводим модуль. Все отображается, но если у вас отфильтрованных материалов вывелось больше чем указано в настройках компонента, то включается пагинация (ну это логично) и если перейти на вторую страницу, то модуля не будет, хотя по идее должен быть. Тут дело в том, что на первой странице в ссылке будет присутствовать ee id, а на последующих его не будет. Решается это все просто, создаем страницу специально для результатов, крепим ее к пункту меню (пускай даже меню которого нет на сайте). На ней выводим все четыре модуля и пишем простое условие при котором будут скрываться не нужные модули.
Я делал так:
Код
<?php 
if($_GET['category_id'] == "id вашей категории"){ // скрываем все модули кроме первого ?>
<style type="text/css">
   .класс модуля2 {
   display:none;
   }
   .класс модуля3 {
   display:none;
   }
   .класс модуля4 {
   display:none;
   }
   </style>
<?php }elseif($_GET['category_id'] == "id вашей категории"){ // скрываем все модули кроме второго?>
<style type="text/css">
   .класс модуля1 {
   display:none;
   }
   .класс модуля3 {
   display:none;
   }
   .класс модуля4 {
   display:none;
   }
  </style>
<?php }?>
Все это дело можно конечно сократить, но я писал для наглядности.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Точный поиск JA K2 Filter and Search Module

Автор Abez

Ответов: 1
Просмотров: 699
Последний ответ 25.02.2020, 19:58:47
от Abez
JA K2 Filter and Search Module и разные шаблоны для items

Автор Abez

Ответов: 0
Просмотров: 721
Последний ответ 24.02.2020, 11:43:10
от Abez
jak2 Extra fields Filter and Search не сохраняет настройки

Автор bybus

Ответов: 2
Просмотров: 979
Последний ответ 11.01.2018, 12:39:15
от bybus
Joomcar K2 Filter and Search module 1.5

Автор lalalag

Ответов: 0
Просмотров: 901
Последний ответ 19.10.2017, 18:20:56
от lalalag
Убрать зависимость регистра в JA K2 Filter and Search

Автор Pavlik_92

Ответов: 0
Просмотров: 1021
Последний ответ 18.03.2017, 18:23:37
от Pavlik_92