Форум русской поддержки Joomla!® CMS
08.12.2016, 04:14:40 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор

JA K2 Filter And Search не фильтрует поисковые метки

 (Прочитано 355 раз)
0 Пользователей и 1 Гость смотрят эту тему.
wedford
Захожу иногда
**

Репутация: +2/-0
Offline Offline

Пол: Мужской
Сообщений: 22



« : 14.08.2015, 15:01:37 »

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

Репутация: +2/-0
Offline Offline

Пол: Мужской
Сообщений: 22



« Ответ #1 : 19.08.2015, 15:49:04 »

Ну как говорится "Век живи - век учись!"
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
Захожу иногда
**

Репутация: +2/-0
Offline Offline

Пол: Мужской
Сообщений: 22



« Ответ #2 : 21.08.2015, 18:05:52 »

Продолжаем разговор сам с собой.
Выводим модуль 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 }?>
Все это дело можно конечно сократить, но я писал для наглядности.
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet