Сегодня мы поговорим о блоговом движке Habari, относительно недавно получившем известность. На суахили сия абракадабра означает приветствие и переводится «что нового?» - очень подходящее название для личной новостной платформы, к тому же, бесплатной.
Для начала, если посмотреть на строки 27 и 208, то видно, что в компоненте используется параметр sef_advanced_link , которому по-умолчанию присваивается значение 0. Этот параметр нигде в админке не встречается - можно сделать вывод, что создатели Жумлы все это предусмотрели, но не успели оттестировать, и потому не включили в релиз. По этой причине, данный параметр всегда указывает, что опция скрытия ID в URL всегда выключена. Мы ее включили принудительно. Кстати, если по уму, то стоило просто добавить этот параметр в administrator\components\com_content\config.xml и он бы попал в админку.
От строк 228-232 зависит появится ли ошибка при открытии категории без ID в URL. Тесты показали, что если эти строки оставить как есть (не комментировать), то страницы статей грузятся без проблем, а вот страницы категорий вызывают возникновение ошибки 404. Так что решение в этом случае - закомментировать от греха подальше.
Полезно иметь в своем арсенале инструментарий, который можно легко применять из приложения в приложение для решения широкого круга задач, не касаясь кода этого инструментария и вне зависимости от характера самих задач. В ходе разработки всевозможных приложений программистами был выделен ряд абстрактных программных решений, которые, как шаблоны или трафареты, можно свободно приложить к конкретно стоящей проблеме и вычертить по ним готовый продукт.
Нижеприведенные широко применяющиеся шаблоны проектирования (design patterns) могут быть весьма полезны в больших приложениях, в которых изменение какого-то куска кода может сильно повлиять на другие его части и на работу всей системы в целом. Дабы этого не происходило и была выделена группа шаблонов, которая сводит к минимуму в приложении тесную связь между компонентами.
Простейшая обертка-класс для работы с MySQL, призванная помочь тем, кому надоело постоянно писать INSERT... , SELECT... , UPDATE и т.д. Этот класс довольно старенький, я его часто применял при разработке своего Интернет-магазина автолитературы. Хоть и задачи он выполняет несложные, его пользу трудно переоценить. Работать будет и на древнейших версиях PHP.
Этот класс, реализующий корзину покупок на сайте, я когда-то успешно применил при создании собственного интернет-магазина автомобильной литературы. Он работает и на старинных версиях PHP.