Архив
Система модулей.
Выкладываю систему модулей — сердце моей CMS.
Лицензия: GNU GPLv3+.
Внутри один php файл, лицензия, и diff между версией в CMS и выкладываемой (разница только в заголовке, но для порядка выложил и его).
Документации не будет, зато через некоторое время будет пара модулей, кому надо — там всё прозрачно.
Скачать: module_system.tar.bz2.
Версия от 2010-02-28.
Движок темплейтов.
Выкладываю движок темплейтов, использующийся в моей CMS.
Его я писал сам, но под влиянием двжика темплейтов из phpbb.
Лицензия: GNU LGPLv3+.
Оригинал — 305 строк с шапкой и комментариями, выкладываемая версия — 326 строк, из-за того, что поддержку кэша пришлось вносить в саму библиотеку.
Примеры синтаксиса:
{L_NAME}: {USER_NAME}
<date /> <date time="{TIME}">Y-m-d H:i</date> [date time='{TIME}+60*60*24*7' /]
<ul>
<block name="row">
<li class="row[var expr='{row.BLOCK_NUM}%2' /]">{row.CONTENTS}</li>
</block>
</ul>
<if expr="{IS_ADMIN} || {IS_USER}">
текст
<else expr="{IS_INDEX}">
другой текст
</else>
<else>
третий текст
</else>
</if>
<switch expr="{ERROR_CODE}">
<case expr="404">Не найдено.</case>
<case expr="403">Запрещено.</case>
<case expr="{MY_ERROR_CODE}">{MY_ERROR}</case>
<case>Ошибка {ERROR_CODE}.</case>
</switch>И так далее, подробности – внутри, документация – в архиве.
Плагины к CMS. Версия 0.7.
Выкладываю архив папки с отделяемыми (поддерживается установка на другой адрес) сторонними (автор – не я) плагинами к моей CMS, используемыми в текущей версии (0.7.0/0.7.1).
Внутри – иконки (oxygen), яваскрипт (jQuery с набором плагинов), флэш плееры видео/аудио, флажки.
Лицензии зависят от конкретного файла: public domain/lgpl/mit/mpl/аналогичные.
Набор плагинов к CMS (версия 0.7).
Размер – 8.7 МиБ в архиве.
Вся остальная CMS (включая неотделяемые плагины, т.е. флэш-загрузчик и висивиг) – 525 КиБ в архиве.
Скрипт миниатюр.
Выкладываю отдельно простой php-скрипт для генерации миниатюр на лету с кэшем (и проверкой актуальности, естественно), используемый в моей CMS.
Работает со всеми jpg/png/gif изображениями, лежащими внутри папки, в которую поставлен (рекурсивно). Если поставить в корень хоста – то со всеми изображениями на этом хосте.
Лицензия: GNU LGPLv3+.
Показываю примеры работы.
Оригинальный файл:
image.jpg (1251 на 2000 пикселей).
Уменьшенное изображение, вписанное в 300×200:
.jpg)
image.(300×200).jpg
(125 на 200 пикселей).
Отношение сторон сохраняется.
image.jpg.(300×200) – то же самое, что и image.(300×200).jpg, для простоты автоматического использования.
image.(300).jpg – то же самое, что и image.jpg.(300), image.(300×300).jpg, и image.jpg.(300×300) (вписанное в квадрат сто стороной 300).
image.(400×500).jpg?nocache=1 – отключает кэш (мне это нужно было для генерации изображений непостоянных размеров, например, во всплывающем div предпросмотра на яваскрипте, когда размер картинки зависит от размера окна браузера пользователя – их сохранять просто незачем).
Маленькие изображения не увеличивает, зато скрипт гарантирует что получившееся изображение будет правильного отношения сторон и не больше заданного размера.
Если файла изображения нет, показывает такую (меняется) картинку, вписанную в тот же размер:
.jpg)
invalid_image.(80×80).jpg
Файлы и инструкции по установке – ниже.
Читать далее…



