Вывод изображений в связке Mosets Tree + Rokajaxsearch

Многим владельцам сайтов хотелось бы организовать поиск по статьям с помощью технологии Ajax, чтобы при вводе фразы в поле поиска, результаты поиска выдавались без обновления страницы. Одним из вариантов решения данного вопроса является модуль поиска Rokajaxsearch от компании RocketTheme. Этот модуль использует стандартные плагины поиска Joomla, поэтому в результатах поиска Вы не увидите изображения статей и материалов. Предлагаю в этой статье разобрать вывод изображений в результатах поиска для компонента Mosets Tree.

Пояснение: в статье рассматривается метод для Mosets Tree 3-ей версии.

Как это работает?

Для начала, нам необходимо сделать выборку изображения из базы данных. Если Вы установили на свой сайт компонент Mosets Tree, убедитесь, что с ним был установлен плагин поиска, обычно он поставляется в комплектации с компонентом.

Откройте файл /plugins/search/mtree/mtree.php и найдите блок кода:

Из кода можно понять, какие поля берутся из базы данных для поиска. Здесь нам необходимо добавить выборку изображения:

Важно указать, из какой таблицы мы выбираем изображение, для этого немного ниже найдите код с закрывающей скобкой:

И добавьте следующий запрос:

Но и это не всё, необходимо задать условие сравнение, чтобы нами было получено изображение соответствующее ID материала, и не забываем, что у каждого материала может быть несколько изображений, поэтому мы возьмем первое из них. Чтобы добавить это условие, чуть ниже найдите блок:

И замените его на следующий:

Как видите, в конце мы просто добавили условие img.link_id = l.link_id для получения изображения соответствующего ID материала и img.ordering = 1 — для получения первого изображения.

Для большего понимания, ниже представлен уже полностью исправленный блок кода:

Итак, выборку мы сделали, теперь необходимо отобразить изображение на сайте. Учитывая, что модуль Rokajaxsearch использует стандартные возможности Joomla, нам необходимо отредактировать файл результатов поиска Joomla. Для этого откройте файл /components/com_search/views/search/tmpl/default_results.php (если у Вас уникальный шаблон, возможно файл будет располагаться по следующему пути /templates/ВАШ_ШАБЛОН/html/com_search/search/default_results.php). Для примера, предлагаю добавить вывод изображения рядом с текстом описания, для этого найдите следующие строки:

И измените их на следующие:

Разберем, что мы сделали. До вывода текста описания мы выводим блок с изображением, с заданным выравниванием по левому краю, чтобы текст описания обтекал изображение справа. Учитывая, что в базе данных изображения к материалам в Mosets Tree хранятся в виде имен файлов, то мы также добавляем полный путь до самого изображения /media/com_mtree/images/listings/s/. s — на конце означает, что мы будем брать маленькое изображение (миниатюра), если Вам хочется выводить изображение большого формата, измените s на m. После вывода текста описания мы также добавляем блок с очисткой выравнивания, чтобы последующий текст не сбивался и не пытался также обтекать изображение. Не забудьте задать оптимальные размеры для изображения, иначе оформление может поломаться.

Последующее оформление — это лишь дело Вашей фантазии.

Что хотелось бы отметить еще по поводу связки Mosets Tree + Rokajaxsearch. Если Вы планируете в основном пользоваться поиском Mosets Tree, советую создать отдельный пункт меню (можно скрытый) с расширенным поиском этого компонента. После этого перейдите в менеджер модулей, откройте настройки модуля Rokajaxsearch и в поле Advanced Search page URL укажите путь к созданному Вами пункту меню. Теперь, если модуль не дал результатов поиска, он предложит ссылку на расширенный поиск, при переходе по которой Вы попадете на созданную Вами страницу.

И еще одно «НО». Учитывая, что модуль Rokajaxsearch использует возможности стандартного поиска Joomla, то при попытке просмотра всех результатов поиска Вы будете попадать на страницу поиска Joomla. Если Вас это не устраивает, и Вы хотели бы попадать на страницу поиска Mosets Tree, откройте файл /modules/mod_rokajaxsearch/tmpl/default.php и найдите строку:

и просто замените на следующую:

Вот и всё.

Полезность статьи

Оцените, на сколько полезной оказалась статья.
1 балл2 балла3 балла4 балла5 баллов
Пока оценок нет
Комментарии

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

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

* - поля обязательные для заполнения. E-mail не публикуется.