В чера устанавливал на блог компонент Blog Calendar. Как понятно из названия, расширение представляет собой простой календарик. Функционирует на Ajax. Собственно без оного мне бы календарь и не был нужен. Переключение между месяцами, группировка по датам и годам, вывод кол-ва материалов в тот или иной день при наведении на число - необходимый минимум, который приличествует нормальному календарю, здесь есть.
Модуль может быть выведен не только в виде собственно календаря, но и в виде архивного дерева, разбитого по годам и месяцам. Традиционно около каждого года и месяца в скобках отображается количество материалов, написанных за соответсвующий период. Это удобно. Для блогера в любой момент позволяет видеть сколько материалов в этом месяце написано, и сравнить с предыдущими месяцами. Рекламодателю видеть такую информацию тоже не помешает, если он покупает размещение постовых сразу на месяц ;)
Раньше многие джумловоды ставили этот компонент, но вынуждены были его сносить из-за большого количества ошибок. Сейчас опыт пользователей в обращении с этой штукой уже накоплен. Как обычно, приведу те подводные камни, с которыми пришлось столкнуться при установке и настройке компонента Blog Calendar.
Компонент и модуль забираем здесь - http://joomlacode.org/gf/project/blog_calendar/frs/  (Внимание: внизу статьи вы найдете модуль, доступный для закачивания, в котором исправлены многие проблемы [в т.ч. здесь и не описанные] - примечание от 7.10.2009)
Устанавливаем все. Публикуем модуль. Внешне выглядит все нормально, но, скорее всего, ошибки не заставят себя долго ждать.
Проблема (1):
В модуле Blog Calendar при переключении месяцев нарушается кодировка. Очень распространенная проблема.
Решение (1):
Я ответ узнал, наверное, только через полгода после начала использования компонента. Но спасибо умным людям - подсказали.
В моем случае оказалось достаточным добавить в файле .htaccess  строчку AddDefaultCharset UTF-8.
Проблема (2):
После опубликования модуля появляются ошибки следующего характера:
Undefined index: 20090602 in /.../modules/mod_blog_calendar/helper.php on line 70
Вместо 20090602 могут быть разные номера
Решение (2):
В строке 70 файла modules/mod_blog_calendar/helper.php нужно заменить строку
$counter[$createdDate]+=1;
на строку
if (!isset($counter[$createdDate])){($counter[$createdDate]=1);} else {($counter[$createdDate]+=1); };
Как я уже выше писал, можно модуль переключать в режим архивного дерева. Но интереснее, на мой взгляд, сделать вторую копию модуля и отображать сразу два - календарь и архив.
Кстати, если у вас включено на сайте кеширование, то необходимо зайти в расширенные параметры модуля и отключить для него кеширование, иначе календарь работать корректно не будет.
Проблема (3):
В режиме Лист может всплыть ряд предупреждений Notice, указывающих на файл modules/mod_blog_calendar/helper.php
Решение (3):
Честно говоря, на этот раз не нашел ничего лучше, чем просто понизить уровень вывода ошибок. Notice - это отладочная информация, в крайнем случае можно ее просто скрыть, либо отключив вывод предупреждений глобально в .htaccess, либо поместить в скрипт (в нашем случае это файл modules/mod_blog_calendar/helper.php) строку:
Error_Reporting(E_ALL & ~E_NOTICE);
Проблема (4):
Изменения, сделанные в css файле никак не отражаются на внешнем виде модуля
Решение (4):
Нужно переименовать файл сalStyle.css в сalstyle.css. Находится в папке /modules/mod_blog_calendar/tmpl/
Проблема (5):
При попытке редактирования файла CSS из административной панели возникает ошибка
JFile::read: Unable to open file: '/...\modules\mod_blog_ calendar\tmpl\calStyle.css'
Решение (5):
Проблема в слэшах. Необходимо в файле administrator/components/com_blog_calendar/controller.php найти все пути
\modules\mod_blog_calendar\tmpl\calStyle.css
и заменить обратные слэши на прямые (обратные слэши, часто интерпретируются в роли символов экранирования). Кроме того, если вы последовали рекомендации в пункте 4, то вам также необходимо заменить в этих путях calStyle.css на calstyle.css. В итоге, конечная строка замены выглядит так:
/modules/mod_blog_calendar/tmpl/calstyle.css
Проблема (6):
Неправильная локализация календаря, в результате чего месяца отображаются в родительном падеже.
Решение (6):
Решение подсказал пользователь блога под ником Димыч, за что ему большое спасибо (а также бесплатно полагается постовой;) ). Итак, как выяснилось, название месяцев модуль берет из общего файла локализации. Для того, чтобы вынести локализацию в отдельный файл и поправить перевод необходимо проделать следующее:
"
1) открыть для редактирования файл administrator/components/com_blog_calendar/controller.php
2) найти в нем все пути вида \modules\mod_blog_calendar\tmpl\calStyle.css
3) заменить их на /modules/mod_blog_calendar/tmpl/calStyle.css"
Сам исправленный файл css выложу позже. Пока можете отредактировать самостоятельно или см. в комментариях, где выкладывал свои файлы автор решения
добавлено 7.10.2009 (обновлено 16.10.2009)
ИСПРАВЛЕННЫЙ МОДУЛЬ КАЛЕНДАРЯ
Разработчик blackFFFFFF решил многие проблемы, связанные с локализацией модуля каледнаря (и не только) и прислал архив для публикации на данном сайте. Выражаю благодарность (многие, думаю, присоединяются) и, конечно, всегда буду рад поместить здесь ссылку на сайт разработчика.
Вот список исправлений в модуле:
"
1. UTF-8 bug fix - 2-3 и более символов по русски в обозначении дней недели как например. Общий фикс на utf - замена substr стандартным классом JString::substr везде.
2. Добавление в модуль русского языка и перевода в виде папки. Вынос текстовых констант.
3. Исправление поведения: всегда подсвечивалось 1 ссылка, если навести на любой день в календаре, в котором подсвечивается количество созданных статей.
4. Исправление формата даты. Перевод месяцев в модуле развернутого архива через стандартную функцию joomla JHtml::_('date', вызов локализированного strftime.
5. Убрано предупреждение ecma script о неверном формате данных при передаче месяцев в js с ведущими нулями (int не может быть с ведущими нулями в ecma script), цифры взяты в кавычки.
6. Вынес заголовок loading -> в языковой файл и добавил через внешнюю переменную его аналог в js.
7. Исправил нотайсы и варинги, связанные с подсчетом количества статей в виде календаря как списка архива
8. В шаблоне завернул все ссылки через стандартные функции юмлы, исправил & на & добавил везде JURI::base() для добавления к ссылкам базовой ссылки, на которую установлена юмла.
9. Ввел еще несколько дополнительных проверок данных и преобразований, все связано с безопасностью
"
Скачать сам модуль можно по ссылке ниже (внимание! все риски при тестировании принимает на себя пользователь!):
Внимание! Всем известно, что вероятность выиграть Джекпот в Гослото на одну простую комбинацию составляет 1 из 8 145 060. Как получить вероятность, по меньшей мере, в 2 раза выше при тех же затратах? Как получить более гибкие условия и играть по своим правилам?
Читайте специальное исследование, посвященное лотерейной стратегии на валютном рынке! Нажмите, чтобы перейти к статье...