пятница, 26 августа 2011 г.

500 - PHP regular expression limit reached joomla

Проблема

Опубликовал на сайте под управлением CMS Joomla объёмный материал (более 10 тыс. слов). При попытке просмотреть его со стороны fronend получил сообщение об ошибке
500 - PHP regular expression limit reached joomla

Решение

PHP выделяет 100 000 байт для использования функций поиска по регулярным выражениям (в формате PCRE). Это ограничение и является причиной ошибки.
Необходимо увеличить количество памяти, выделяемое для работы с регулярными выражениями. Требуемый объем памяти зависит от объема обрабатываемого текста.
Я увеличил лимит до 150 000 байт.
За выделяемый для обработки регулярного выражения объем памяти отвечает директива pcre.backtrack_limit из конфигурационного файла php.ini.
Её можно изменить непосредственно редактируя конфигурационный файл php.ini, файл .htaccess либо через команду ini_set из php скрипта. Я выбрал последний вариант, так как доступ к конфигурационным файлам сервера провайдера у меня отсутствует.
В CMS Joomla я поместил команду в файл configuration.php:
ini_set('pcre.backtrack_limit', 150000);

Результат

После изменения конфигурации php ошибка исчезла.

PS

А ещё можно разбить большой текст на страницы. Такая возможность реализована во всех версиях Joomla - в текстовом редакторе вставьте "Разрыв страницы".

PPS

Если вы часто изменяете конфигурацию через панель управления Joomla (что приводит к потере вручную внесенных в файл configuration.php изменений), то предпочтительным способом является установка директивы через файл конфигурации веб сервера Apache .htaccess.
В файл .htaccess, расположенный в корне сайта, необходимо добавить команду:
php_value pcre.backtrack_limit 150000

четверг, 25 августа 2011 г.

Скрытие адресов электронной почты (email cloaking plugin) на статических страницах сайта под управлением CMS Joomla

Задача

Защита почтовых ссылок вида

<a href='mailto:mailbox@mailserver.com'>почта</a>
на статических страницах (например, "Контакты") сайта под управлением Joomla от сканирования спам-роботами.

Стандартное решение

В Joomla присутствует стандартный плагин "Скрытие электронной почты" ("email cloaking plugin"). Он автоматически преобразует email ссылки в javascript код.
В моем случае (Joomla 1.6.6 и Joomla 1.7.0, браузеры IE8, Firefox 4, 5, 6, Google Chrome 13) преобразование производилось с ошибкой: при клике на ссылку производился запуск почтового клиента, но вместо почтового адреса вида mailbox@mailserver.com в поле адресата подставлялся код

('span>'); //--> </script>
Модифицировать плагин Joomla "Скрытие электронной почты" я не стал.

Моё решение

Для решения задачи я использовал
сторонний модуль Mod HTML, который позволяет публиковать javascript код в любой позиции шаблона, и утилиту Blackman's E-mail encoder, с помощью которой я закодировал email адрес кодом javascript.

Содержимое плагина Mod HTML выводится в скрытую позицию сайта, а в контент вставляется ссылка на эту скрытую позицию сайта. Настройка Joomla для
вывода содержимого модуля в позиции контента производится с помощью стандартного модуля "Контент - Загрузка модулей".

Плагин Mod HTML настраивается на вывод закодированного с помощью javascript почтового адреса в позицию с именем module_name (Панель управления Joomla -> Менеджер модулей -> Mod HTML). Сама позиция module_name не должна присутствовать в активном шаблоне сайта.
В тексте, где необходим вывод содержимого модуля Mod HTML, вставляется конструкция

{loadposition module_name}
loadposition - вызов модуля "Контент - Загрузка модулей";
module_name - позиция, в которую выводится содержимое модуля.

Результат

Данным способом можно закодировать от сканирования спам-роботами почтовые адреса на статических страницах сайта под управлением CMS Joomla.

пятница, 12 августа 2011 г.

Инструменты разработчика сайтов

Статистика поисковых запросов

Любой продукт труда имеет своих потребителей. Перед наполнением интернет сайта контентом нужно определиться с аудиторией. В Интернете это требует оптимизации сайта по ключевым словам, по которым сайт будет выдаваться поисковыми системами.
Статистика поисковых запросов Яндекса.
Статистика Google для подбора ключевых слов.
Статистика поиска Google.
Популярные запросы Google - тенденции в области поисковых запросов.


Анализ сайтов

CY-PR.com — комплексный анализ сайта.
teldery.ru — биржа сайтов.

Backup

PHP Filesystem Management Tool — php файловый менеджер в одном файле, с поддержкой компрессии.
Sypex Dumper — Скрипт резервного копирования баз MySQL.