30 марта 2011

Экстра кэширование для Concrete5


Всем привет!

Хочу представить Вашему вниманию вольный перевод статьи "An extra cache for Concrete5".

Итак начнем...

Я большой фанат Concrete5. Эта система невероятно мощная, гибкая, легкая для разработчика и особенно проста для конечного пользователя. Тем не менее, иногда она бывает весьма "тяжелой" для сервера и я решил придумать простейший кэш для нее (Кэширование уже присутствует в Concrete5, однако это дополнительный, настраиваемый легковесный кэш - прим. Count Raven Amiant). Многие сайты по сути своей весьма статичны, поэтому этот дополнительный кэш предназначен для того, чтобы сделать Concrete5 настолько статичной, насколько это возможно.

Принципы данного кэша основываются на следующих моментах:
  • Если нет смысла обновлять страницу, то кэшированая копия может храниться бесконечно долго. Большинство моих сайтов довольно статичны.
  • Если кто-то осуществляет GET или POST запрос - не кэшировать их вообще.
  • Проверить, авторизован ли пользователь. Если пользователь авторизовался на сайте - отключить кэширование.

Как установить?

Сначала скачайте и распакуйте ZIP-архив. Положите папку bootstrapcache из архива в папку libraries в корневой папке Concrete5.

Замените файл dispatcher.php в папке /concrete аналогичным файлом из архива. В этом файле я переместил чуть раньше управление сессией и добавил одну строку кода, чтобы интегрировать кэш.

Теперь кэш уже работает, но вы должны включить режим отладки, чтобы проверить это.

Дальнейшая конфигурация

Конфигурация по-умолчанию прекрасно работает, однако следует отредактировать файл site.php в папке /config чтобы задать дополнительные параметры конфигурации кэша. Здесь можно включить/выключить кэширование, режим отладки, создать исключения и определить как индивидуальное так и общее время хранения кэшированных страниц.


// включение/выключение кэша
define('BOOTSTRAPCACHE', true);
// включение/выключение режима показа отладочного сообщения
define('BOOTSTRAPCACHE_DEBUG', true);

// установка времени хранения кэша по-умолчанию, null подразумевает бесконечное время хранения
define('BOOTSTRAPCACHE_DEFAULT_CACHE_TIME', null);

// в этот массив добавляем страницы, которые никогда не должны кэшироваться
define('BOOTSTRAPCACHE_EXCLUDED_PAGES',  serialize(array(
'/index.php/login/',
'/index.php/login/do_login/'
)));

// если вы хотите назначить различное время хранения кэша для отдельных страниц,
// добавьте эти страницы сюда, например:
define('BOOTSTRAPCACHE_CACHE_TIME_SPECIFICS',  serialize(array(
    '/weather/'=>600
)));

Несколько замечаний
  • Имейте ввиду, что "родное" кэширование Concrete5 должно быть отключено.
  • Страницы, на которых находится динамический контент, например RSS-лента, должны быть добавлены в массив BOOTSTRAPCACHE_CACHE_TIME_SPECIFICS, где необходимо назначить им отдельное время кэширования.
  • Было бы замечательно не трогать файлы в ядре Concrete5, но view.php должен быть переопределен, а dispatcher.php отредактирован. Иного пути нет. Будьте внимательны, если в будущем будете обновлять библиотеки ядра Concrete5.
  • На данный момент кэширование работает только для так называемых "красивых ссылок", т.е. для тех, которые выглядят как http://www.site.ru/page/, а не как http://www.site.ru/index.php?cID=51 и подобные.
  • Кэш не поддерживает CSS и JavaScript, которые подключаются через index.php. Поэтому внутри шаблона не используйте функцию getStylesheet, вместо нее используйте getThemePath и подключайте необходимые ресурсы напрямую (как описано здесь).
  • Это очень сырой код, поэтому тщательно тестируйте все, прежде, чем положить его на работающий сайт. Я буду обновлять его, если найду проблемы в работе.


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

Сайт автора оригинала статьи (англ.): MESUVA Web Development

А теперь ссылка для тех, кто хочет качественные пластиковые окна - заказать пластиковые окна!


17 марта 2011

Disqus для Concrete5 CMS


Доброго времени суток!

Хочу представить Вашему вниманию мой новый модуль для Concrete5. Это простейший модуль, который позволяет Вам добавить на сайт систему комментирования от известного сервиса Disqus.

Блок элементарен в плане настроек, всего лишь вводите свое имя на Disqus в настройки, т.е. http://ИМЯ.disqus.com/. Если вы работаете на локальной системе и сайт недоступен извне, то можно поставить галочку "Developer Mode".

Скачать можно на официальном сайте Concrete5, а именно тут:

Спасибо за внимание. Скоро будет еще несколько новых как очень простых, так и достаточно серьезных пакетов для Concrete5.

25 декабря 2010

Amiant Image Gallery для Concrete5


Доброго времени суток!

С наступающим Новым 2011 годом (11 мое счастливое число).
Пора раздавать новогодние подарки. Вот Вам от меня! =)

Хочу представить Вашему внимаю мой новый модуль для Concrete5 CMS - Amiant Image Gallery.

Модуль на английском языке, это требования Concrete5 Marketplace, но Concrete5 Russia вроде собирались перевести его на русский. Подождем.

Итак, краткое описание:
1. Отображение изображений как отдельных так и из набора.
2. Три режима работы: Миниатюры, Слайдшоу, Режим Zoom Mode.
3. AJAX загрузка изображений в режиме миниатюр.
4. Фоновая AJAX загрузка изображений в режиме слайд-шоу (как во вконтакте - пока смотрим одну фотку, а вторая уже грузится в фоне).
5. Показ информации об изображении (Имя файла, тип, размер, описание, ссылка на скачивание) в режиме миниатюры и в режиме слайдшоу.
6. 10+ эффектов (не считал) для слайдшоу.
7. Возможность настройки всего и вся.
8. Возможность размещения любого количества блоков на одной странице (они независимые, все функции и стили генерируются с уникальным идентификатором блока), причем, если вы используете режим миниатюр, то JavaScript для Zoom Mode (если он отключен) и для Слайдшоу грузиться не будут, если же вы находитесь в режиме слайдшоу, то JavaScript для Zoom Mode не будет грузиться - убираем лишний мусор =)
9. Всякие прочие мелочи, надо смотреть.

Скрины:








С Новым Годом! Это все бесплатно! Пишите пожелания и баги, я планирую для этого модуля еще много нововведений. ОН НИКОГДА НЕ БУДЕТ ПЛАТНЫМ!

24 ноября 2010

Concrete5 5.4.1.1 - баг-фикс релиз


Эммм... Как начать? Обычно? Ладно...

Доброго времени суток!

Немного запоздал, но в рунете данную информацию почти никто не размещает, поэтому все равно напишу новость 5-ти дневной давности.

Хочу представить вам новый релиз системы управления контентом Concrete5. Нынче версия 5.4.1.1. Отличия от 5.4.1 не очень значительные, однако исправлен ряд ошибок и есть мелкие дополнения.

Русская версия доступна для скачивания тут.

Несколько слов об изменениях, коснувшихся данной версии:

Обновления возможностей:
  • Улучшен диалог загрузки файлов. Улучшены инструменты пакетной обработки мета-данных файлов для более качественного отображения большого количества полей.
  • Добавлено право для установки пакетов, которое присвоено группе Администраторов. Т.е. появилась возможность разрешать/запрещать определенным пользователям устанавливать или удалять пакеты дополнений.
Об исправленных ошибках писать не буду, их немало, но и немного, полный список можно посмотреть тут.

Удачи.

08 ноября 2010

Вышла русская версия Concrete5 5.4.1


Доброго времени суток!

Спешу сообщить, и всех поздравить с тем, что наконец-то вышла русская версия системы управления контентом Concrete5 5.4.1.

Качаем тут.

Смотрим, анализируем новые возможности, радуемся, делимся впечатлениями. Ну и, жалуемся.

Нет-нет. Это не моя локализация, я давно отстранился от локализации и занимаюсь исключительно разработкой. А Спасибо! говорим Concrete5Russia.ru

Ну и заходим, регистрируемся и обсуждаем Concrete5 на форуме.

Всем удачи и процветания!