Архив

Публикации с меткой ‘lgpl’

Движок темплейтов.

3 Август 2009 Нет комментариев

Выкладываю движок темплейтов, использующийся в моей 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>

И так далее, подробности – внутри, документация – в архиве.

Читать далее…

Скрипт миниатюр.

Выкладываю отдельно простой php-скрипт для генерации миниатюр на лету с кэшем (и проверкой актуальности, естественно), используемый в моей CMS.
Работает со всеми jpg/png/gif изображениями, лежащими внутри папки, в которую поставлен (рекурсивно). Если поставить в корень хоста – то со всеми изображениями на этом хосте.

Лицензия: GNU LGPLv3+.

Показываю примеры работы.

Оригинальный файл:
image.jpg (1251 на 2000 пикселей).

Уменьшенное изображение, вписанное в 300×200:

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 предпросмотра на яваскрипте, когда размер картинки зависит от размера окна браузера пользователя – их сохранять просто незачем).

Маленькие изображения не увеличивает, зато скрипт гарантирует что получившееся изображение будет правильного отношения сторон и не больше заданного размера.

Если файла изображения нет, показывает такую (меняется) картинку, вписанную в тот же размер:

invalid_image.(80×80).jpg

Файлы и инструкции по установке – ниже.
Читать далее…