Если на сервере Apache работает с PHP через FastCGI, для использования становятся недоступными $_SERVER['PHP_AUTH_USER'] и $_SERVER['PHP_AUTH_PW'] , поскольку PHP просто больше не получает соответствующие значения от сервера. Для того, чтобы все-таки была возможность пользоваться этими переменными в скриптах с авторизацией через модуль Apache, придется кое-что дописать.

Обновил ISPConfig на сервере до версии 3.0.5.2 и столкнулся с проблемой: сайты отображаются, как положено, а вот вход в админку ISPConfig не фурычит. Оказалось, что последние версии панели отказываются работать с PHP, если он установлен как модуль к Apache (mod_php). Из соображений безопасности разработчики решили отказаться от него. Пришлось ставить FCGI. На основании вытекших отсюда проблем пришлось менять шаблоны виртуальных хостов, поскольку с FCGI нельзя прописывать директивы php_flag, php_value и т.п. Также для каждого сайта пришлось поменять механизм работы с PHP: вместо mod PHP на FCGI.

joomla рассылка А вы в курсе, что фреймворк от Joomla очень удобно использовать для быстрого решения небольших задач? Разработчики Жумлы проповедуют подход MVC, однако для простых приложений, например, как в данном случае - автоматизация подготовки выпуска - вполне можно обойтись одним-двумя файлами, задействовав лишь удобный механизм работы с базой данных, который предоставляет Joomla.

Задача: есть набор ключевых слов, которые наличествуют в тексте страницы и прописаны в мета-теге keywords. Как их автоматически выделить на странице посредством тега <strong>, учитывая, что слова имеют различные окончания, а также могут иметь дефисы.

habari-with-taglineСегодня мы поговорим о блоговом движке Habari, относительно недавно получившем известность. На суахили сия абракадабра означает приветствие и переводится «что нового?» - очень подходящее название для личной новостной платформы, к тому же, бесплатной.

Открываем в любимом редакторе (мой - Geany) components\com_content\router.php и вносим небольшие изменения:

В функции ContentBuildRoute(&$query) меняем строку 27

$advanced    = $params->get('sef_advanced_link', 0);

на

$advanced    = $params->get('sef_advanced_link', 1);


В функции ContentParseRoute($segments) меняем строку 208

$advanced    = $params->get('sef_advanced_link', 0);

на

$advanced    = $params->get('sef_advanced_link', 1);


Закомментируем строки 228-232:

/*
if (strpos($segments[0], ':') === false) {
$vars['view'] = 'article';
$vars['id'] = (int)$segments[0];
return $vars;
}*/


И все.

Для начала, если посмотреть на строки 27 и 208, то видно, что в компоненте используется параметр sef_advanced_link , которому по-умолчанию присваивается значение 0. Этот параметр нигде в админке не встречается - можно сделать вывод, что создатели Жумлы все это предусмотрели, но не успели оттестировать, и потому не включили в релиз. По этой причине, данный параметр всегда указывает, что опция скрытия ID в URL всегда выключена. Мы ее включили принудительно. Кстати, если по уму, то стоило просто добавить этот параметр в administrator\components\com_content\config.xml и он бы попал в админку.

От строк 228-232 зависит появится ли ошибка при открытии категории без ID в URL. Тесты показали, что если эти строки оставить как есть (не комментировать), то страницы статей грузятся без проблем, а вот страницы категорий вызывают возникновение ошибки 404. Так что решение в этом случае - закомментировать от греха подальше.

phpatternsПолезно иметь в своем арсенале инструментарий, который можно легко применять из приложения в приложение для решения широкого круга задач, не касаясь кода этого инструментария и вне зависимости от характера самих задач. В ходе разработки всевозможных приложений программистами был выделен ряд абстрактных программных решений, которые, как шаблоны или трафареты, можно свободно приложить к конкретно стоящей проблеме и вычертить по ним готовый продукт. 

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

Наверх