Фильтрация и разбор контента Joomla по тексту статьи |
В сферу моей деятельности мне очень часто приходится работать с тонной контента, который нужно разграничивать часами и сутками по категориям и разделам в CMS Joomla. Делать это вручную практически нереально в особенности если на сайте более 10000-20000 новостей. При этом нужно открывать каждую новость и смотреть по контенту, к какой категории или разделу она может быть отнесена и только после этого делать выбор для какого раздела или категории эту статью\новость определить. Так как по заголовку новости не всегда ясно к какой категории можно ее отнести.
Разработчики CMS Joomla по умолчанию в административной панели, сделали функцию фильтрации контента по заголовкам: Но данный функционал практически ничего не дает, кроме как фильтр по самим заголовкам, собственно по которым ничего не ясно к какой категории отнести данный продукт и опять же его приходится открывать и присваивать ему полностью в ручном режиме.
Для кого написана данная статья? для тех у кого есть сайт с большим количеством новостей и все они расположены в 1 категории и разделе, для тех у кого просто внезапно появилось большое количество контента (например был граббинг) и.т.д.
Для создания данного функционала по поиску и фильтрации контента непосредственно по самому тексту, вам будет необходимо модифицировать 3 файла:
Итак для начала нам необходимо создать новое поле ввода фильтрации контента по тексту статьи, для этого вам необходимо открыть файл: /administrator/components/com_content/admin.content.html.php Найдите в этом файле 54 строчку, в ней вы увидите код кнопки поиска: Вам необходимо перед этой строчкой вставить код поля поиска по контенту: Далее вам необходимо добавить событие OnClick на кнопку сброса, которая будет сбрасывать текст и данные фильтрации в окне поиска текста по контенту (после поиска). Для этого в этом же файле уже в 58 строчке в кнопке «Reset» добавьте после кода: следующий код Теперь кнопка сброса у вас будет работать отменно и само поле ввода текста создано.
Далее вам необходимо открыть файл /administrator/components/com_content/controller.php и добавить код обработки, который фактически и будет выполнять поиск по тексту контента. Перейдите к строчке 44 (функция viewContent) и найдите в ней переменную $search (53 строка): Вставьте после этой строчки, код приведенный ниже: Теперь нам необходимо изменить запрос к базе данных. Перейдите в этом же файле к 130 строчке и перед: вставьте следующий код: После всех этих действий поиск по тексту контента уже будет работать, но при вводе текста в поле фильтрации после поиска оно будет автоматически сбрасываться. Для того чтобы решить эту проблему найдите в этом же файле код в строке 214: добавьте после него следующий код для обработки: После этого если вы любите русский язык, откройте файл /administrator/language/ru-RU/ru-RU.ini и добавьте в самом конце этого файла, строчку: Теперь проверяем работоспособность нашего поиска текста по контенту, вводим любое слово которое может содержать контент, в нашем случае «Мультфильмы»
Если открыть любой материал который был выдан при поиске (фильтрации), то в нем можно найти и наше слово «Мультфильм»
Как это может пригодиться? Очень просто. К примеру у вас есть 1 категория в которой расположены десятки тысяч материалов и вы бы хотели их разграничить по категориям, для примера вы создаете категорию «Документальное кино», далее вбиваете в поле поиска слово «Документальный» или ТВ (все зависит от того что прописано у вас в контенте и в каких массовых количествах имеются такие ключевые слова). После поиска отмечаете массово материалы и перемещаете их в необходимую категорию (в нашем примере категория «Документальное кино»)
Для меня до сих пор остается загадкой и нет ответа на вопрос - Почему разработчики одной из самых лучшей и известной бесплатной CMS в мире не добавили данный функционал поиска ни в одну из своих версий CMS Joomla? На сегодняшний день существует масса компонентов с помощью которых можно осуществлять поиск через административный интерфейс, вот несколько из них: RSSearch, AceSearch и JXtended. Но ни один из существующих компонентов или модулей не позволит вам массово перенести\скопировать материалы из одной категории\раздела в другой, они лишь позволяют осуществлять простой поиск. Решение описанное выше на сегодняшний день, является единственным и самым простым способом найти и разграничить ваш контент в CMS Joomla, буквально за несколько минут (в зависимости от количества материалов). Конечно же есть еще вариант использовать системы тегов или других подобных расширений, но как показывает огромная практика поисковые системы не особо хорошо относятся к страницам которые генерируются по тегам.
Решение фильтрации текста написано для CMS Joomla 1.5.25. В более ранних версиях может быть отличие лишь в нумерации строк при модифицировании файлов. Вы также можете скачать уже готовые измененные файлы для CMS Joomla 1.5.25 с нашего сервера - скачать фильтрацию поиска по материалам.
Посмотреть инструкцию по созданию полей фильтрации для CMS Joomla 2.5 Автор: Joomfans.com |
|
Партнеры |
|
← Релиз CMS Joomla 2.5 | CMS Joomla! - порядок привязки шаблонов → |
---|
Комментарии
Да, конечно можно. Напишу мануал, но наверное будет целесообразнее это делать уже для J!2.5.
Кстати, опять же в J2.5 был реализован встроенный расширенный поиск контента, и опять же он ищет только по заголовкам...
Спасибо. Можно также еще сделать, добавлять материал в несколько категорий?
А что это вам даст? Этим самым вы только ухудшите ваш сайт в глазах ПС.
Если уж очень сильно нужно "добавить" один и тот же материал в несколько категорий Joomla, вы можете также выделить несколько материалов, и нажать в правом верхнем углу на кнопку «Копировать», после выбрать ту категорию в которую нужно добавить эти материалы, и нажать на кнопку «Сохранить», таким образом вы получите один и тот же материал (статью) в разных категориях.
Настоятельно, не рекомендую делать таких манипуляций! Этим самым вы получите массу дубликатов одних и тех же страниц, что несомненно очень плохо скажется на поисковой оптимизации сайта, в следствии чего ПС может склеить страницы вашего сайта или же просто забанить сайт в выдаче.
Спасибо. P.S. Жду эту статью под Joomla 2.5
Пользуйтесь! http://joomfans.com/blogs/filtratsiya-i-razbor-kontenta-po-tekstu-stati-v-cms-joomla-25.html
RSS лента комментариев этой записи