Избавляемся от дублирования meta http-equiv в Drupal

Недавно заметил, что после обновления Drupal до версии 6.11 в заголовке HTML страницы появилось сдвоенное объявление http-equiv. Полез искать причину. В page.tpl.php этого тега вообще нет, он где-то генерируется в ядре Drupal.

Небольшое расследование натолкнуло на страницу с обсуждением, где, кстати, выяснилось, что этой проблемой страдает даже сайт drupal.org.

drupal-org-double-meta.gif

Мнения дискутирующих разделились примерно поровну — половина считает, что это безвредный барабашка, другая половина считает, что это некрасиво, неправильно и надо скать пути решения.

Как всегда в Друпале, способов решения несколько — от ковыряния вилкой в ядре (файлы common.inc и theme.inc), до отлавливания лишней строки в шаблоне темы. Я выбрал второй способ, вот так он выглядит:

function THEME_preprocess_page(&$vars) {
 
$vars['head'] = preg_replace('/]*>/', '', $vars['head']);
}
?>

THEME нужно заменить на машинное название вашей темы, либо на phptemplate. Проблема одна — если в ядре эту тему излечат, мы рискуем остаться вообще без этой строчки. Тоже, кстати, почти безвредно, но так же неприятно.

Небольшой обзор NanoCMS

Случайно, как обычно, набрел на сайт CMS под родным, практически, для русского уха названием NanoCMS. На этот раз Чубайс не при чем, правда. Система соответствует названию — чуть больше 50 килобайт в архиве.

nanocms

Основные свойства: очень маленькая бесплатная CMS написанная на PHP, открытый код, данные (страницы, блоки) и структуру хранит в простых файлах. Присутствуют чистые ссылки (ЧПУ) на базе mod_rewrite.

Установка. Распаковываем, копируем куда нужно, выставляем права на двух папках и одном файле — все. Прелесть файловых CMS в чистом виде — установка и перенос с хоста на хост делаются очень просто.

Редактирование страниц. По-умолчанию в системе нет никакого WYSIWYG, простая текстовая область с исходным кодом (фактически — содержание файла на диске). Страницы создаются на диске с расширением php и в них можно вставлять любой код, файлы исполняются. Можно доставить визуальный редактор, на выбор предлагают несколько, включая TinyMCE (который больше самой NanoCMS в 15 раз) и вполне компактный Nicedit (13 kb).

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

Шаблоны и блоки. Шаблон — это один php файл, в него включаются вызовы функций NanoCMS, обеспечивающие вывод навигации (списки страниц в указанной категории), произвольных блоков (по сути — те же файлы на диске, только поменьше и не разбитые на категории) и собственно контента — содержимого страницы.

Русский язык в NanoCMS, или «о грустном». Скрипт написан индусом, но ориентирован изначально только на английский язык, то есть вообще на ascii. Страницы адресуются по имени файла, имя файла совпадает с заголовком страницы. Его, конечно, очищают от знаков препинания и прочих небезопасных символов, среди которых весь русский алфавит, а также акцентированные символы западных языков. Сообщество проблему осознает, кто-то даже пытается что-то предложить, но русские опять по-боку. Я этот хак (автор предпочитает называть это tweak) доделал с помощью функции из плагина для WordPress по имени rus-to-lat. Работает.

В общем же, для перевода интерфейса существует возможность создать свой языковой файл формата ‘delete’ => ‘Удалить’ и т.п. Строк там около 100, особо не затруднит.

Разработка и доработка. Расширять функциональность системы предлагается с помощью хуков (hooks) и навешиваемых на них функций. Набор таких функций объединяется в «твик» (tweak). Всего хуков в системе около 30, на все значимые события и места в шаблоне.

Выводы. Ключевое достоинство NanoCMS содержится в названии — она очень маленькая. А маленьких обижать нехорошо. На самом деле вполне неплохой вариант для сайта с простой структурой страниц на 30, как максимум.

Santafox — бесплатная CMS

Наткнулся на рекламу в сети: бесплатная CMS, открытый код, русские руководства… Решил посмотреть. Скажу сразу, посмотреть не удалось. Сайт разработчика изобилует обтекаемыми «маркетологическими» формулировками, из которых ничего не следует — любая система нынче гибкая, мощная, современная и простая одновременно.

santafox

Устанавливать можно двумя способами — либо скачиваем архив, либо скармливаем все настройки установщику на сайте и наслаждаемся процессом. Установщик просит логин и пароль на FTP, то же самое для MySQL, плюс адреса серверов. FTP у меня на локальной машине нет, равно как нет и на большинстве удаленных хостов — предпочитаю SFTP. Скачал архив, развернул, началась установка.

Впечатление испортила кодировка cp1251, жестко вбитые в установщик русские тексты, которые я не смог увидеть на экране — по-моему там был iframe, на который выбор кодировки никак не действовал. Ну да ладно, интерфейс не хитрый. Тут случился критический облом — локальный процесс установки тоже требовал FTP доступ. Это популярный способ борьбы с безобразными правами у создаваемых PHP файлов и папок, но по-обыкновению людям дают право выбора, поскольку проблема эта актуальна только при использовании mod_php, насколько я понимаю.

Вернулся на сайт, решил попробовать удаленный установщик. Сделал на одном из серверов временный домен, нового пользователя FTP, базу и пользователя MySQL. Скормил все это установщику, поехали. Папок там около 250, файлов больше 5000, так что процесс занимает не меньше часа. С первого раза файлы не скопировались, оборвалось что-то и привет. Второй раз пошло веселее, поскольку установщик явно пропускает уже имеющиеся папки и файлы.

В общем, ближе к концу второго часа я вспомнил, что на выбранном сервере по-умолчанию установлен PHP4, а для подключения требуемого PHP5 надо потратить еще некторое количество калорий. Это я уже не осилил, тем более что предполагаемые (и озвученные разработчиками) достоинства системы стали вызывать большие сомнения.

Пожелания разработчикам Santafox будут такие:

  • Выкинуть тексты из PHP и сделать внешний файл с текстовыми строками (константы, массивы), в идеале – использовать i18n
  • Ориентироваться на UTF-8, что будет проще сделать при выполнении предыдущего пункта
  • Сделать опциональным использование FTP. Это не единственный и не самый удобный способ решения проблем с правами.
  • Сделайте демонстрационную установку у себя на сайте. Скриншотов явно недостаточно для оценки.

Ну а в остальном — удачи. Плохого пиара не бывает, так что без обид. Не много сейчас желающих пуститься в безнадежное мероприятие по разработке собственной CMS, тем более бесплатной и с открытым кодом.