Joomla начало

12 августа 2011

По некотрым данным, система управления сайтом Joomla - самая распространенная на территории России. Как и каким образом она завоевала такое положение - я не знаю. Возможно, тут просто большая ошибка подсчета.

Установить и настроить любую более-менее современную смs может практически любой человек, знающий чуть-чуть о сети интернет и строительстве сайтов. Да и большинство систем хорошо и понятно переведены на русский язык. Надо всего лишь ответить на несколько вопросов, и вот уже система готова к использованию. Я пару раз устанавливал джумлу для ее изучения. И каждый раз я бросал это дело, так как joomla вызывала у меня стойкую неприязнь. Но в этот раз меня попросили помочь с настройкой, перестройкой сайта, который работает на движке Joomla.

Все уже было установлено, настроено и работало. Но людям хотелось большего. И самое главное, им хотелось так, как они задумывали, а не как получилось. Контент-менеджер не мог справиться с поставленной задачей, да и не его это забота, ему за это денег не платят.

На первом этапе необходимо было подправить вывод материалов. Материалы выводились в каком-то беспорядке. Точнее, они выводились отсортированными, но по какому-то непонятному признаку. Все попытки повлиять на сортировку с помощью сортировки материалов в админке джумлы не приводили к положительному результату. Вот тут меня как ниндзю-профессионала и попросили помочь.

Я попросил контент-менеджера показать, как заносятся материалы в админке джумлы, и как и где они появляются на сайте. Да, контент-менеджеру надо дать медаль. Такого неудобного способа редактирования надо было постараться придумать. Нет, сами материалы редактировать нормально. Но вот наполнения других блоков на этом конкретном сайте было чудовищным. Больше похоже на колдовство какое-то. Но это не мое дело, меня попросили о другом.

Я не стал сильно вникать, что да как. Просто выяснил, что за вывод информации в данном блоке отвечает модуль mod_mostread. Попытался найти настройки для этого модуля, отвечающие за сортировку материалов. Ничего не нашел и полез в код плагина mod_mostread. Сама система Joomla написана на самом распрастраненном языке программирования для web - PHP. И модули для него написаны на php. Просмотрев код, я легко нашел причину того, почему сортировка материалов в админке не давала результатов. Все просто, сортировка была жестко прописана в запросе к базе данных в коде плагина. Я решил долго не мучаться и просто поменять order by  в запросе так, чтобы он учитывал именно порядок сортировки, установленный в админке джумлы.

Для этого мне необходимо была знать структуру таблицы базы данных, содержащих материалы. Поиски в интернет ни к чему положительному не привели. Доступа к базе через консоль или phpmyadmin у меня не было. Пришлось маленько поколдовать. В результате колдовства я получил в html коде страницы вот такой текст:
<!--id--title--alias--title_alias--introtext--fulltext--state--sectionid--mask--catid--created--created_by--created_by_alias--modified--modified_by--checked_out--checked_out_time--publish_up--publish_down--images--urls--attribs--version--parentid--ordering--metakey--metadesc--access--hits--metadata--slug--catslug---->
Из этого видно названия всех полей у материала, о назначении которых легко догадаться по названиям. В оригинальном коде плагина mod_mostread результаты запроса сортировались по hits, в нашем случае же необходима сортировка по ordering.

Андрей Лебедев

,

, , , , , , ,

Комментарий

Нет комментарий.

Комментировать: