Поиск меток (тегов) по всем категориям Mosets Tree

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, в которых встречается текущее значение поля.

Если у Вас есть другие идеи решения данного вопроса, прошу в комментарии.

Комментарии

Здесь еще никто не оставлял комментарии.

Добавить комментарий