Mosets Tree — мощный компонент, но он далеко не совершенен. Предлагаю разобрать еще один недочет разработчиков компонента. Если Вы использовали данный компонент, то возможно заметили, что при использовании пользовательских полей с функцией тегирования, при переходе по ссылке из конечного материала, поиск меток (тегов) происходит в текущей категории, в которой Вы находитесь. Как исправить — читаем далее.
Производить поиск меток (тегов) в текущей категории это конечно же здорово, но как быть, если необходимо производить поиск независимо из какой категории во всех категориях материалов Mosets Tree? К сожалению, стандартной возможности исправить недочёт мне найти не удалось, поэтому как и любому рядовому пользователю пришлось лезть в код.
К сведению: в статье рассматривается метод для Mosets Tree 3-ей версии.
Как это работает?
Откройте файл /components/com_mtree/mtree.php, найдите следующий блок кода и просто закомментируйте его весь:
if ( $search_cat > 0 ) {
$mtCats = new mtCats( $database );
$subcats = $mtCats->getSubCats_Recursive( $search_cat, true );
$subcats[] = $search_cat;
if ( !empty($subcats) ) {
$only_subcats_sql = "\n AND cat.cat_id IN (" . implode( ", ", $subcats ) . ")";
}
}
Учитывая, что мы правим поиск по тегам, соответственно этот блок кода относится к функции function searchby( $option ). В принципе, это всё, при переходе по тегу (пользовательскому полю с тегированием) независимо из какого места, будь то конечный материал, дочерняя категория или родительская — в результатах поиска Вы увидите абсолютно все материалы Mosets Tree, в которых встречается текущее значение поля.
Если у Вас есть другие идеи решения данного вопроса, прошу в комментарии.
Комментарии
Здесь еще никто не оставлял комментарии.