+25.90
Рейтинг
57.92
Сила

Алексей Качаев

Руководство по созданию плагина для v.0.4 на примере "Лента друзей"

Предисловие

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

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

Пошаговая схема:

Читать дальше →

Использование плагинов в v.0.4

Безболезненное расширение функционала — достаточно проблематичный вопрос (под «безболезненностью» я понимаю весь спектр удобства для пользователей движка).

Я думаю, вы еще не забыли, что для добавления новых возможностей в версиях до 0.3.1 включительно используются Хаки и Модули. При этом установка любого стороннего творения дело достаточно хитрое и небезопасное, часто требующее ориентирования в архитектуре и особенностях движка. Для преодоления этих проблем в ядро v.0.4 была введена система плагинов:


К чему мы стремились создавая систему плагинов?

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


Для тех, кого заинтересовали подробности

Обработка изображений: crop, watermark, скругление углов



В новой версии livestreet намного улучшена работа с изображениями (и в плане качества, и в плане гибкости). Для обслуживания всевозможных операций с изображениями отведен специальный engine-модуль Image.

Коротко о том, что появилось нового:

1. Решена проблема с некрасивым ресайзом неквадратных аватарок (путем предварительного вырезания наибольшего возможного квадрата).

2. Устранены «почти» все проблемы с обработкой alpha и non-alpha прозрачности («почти»=«на столько на сколько это вообще возможно сделать с помощью PHP+GD2»). По крайней мере прозрачные png теперь можно использовать в аватарках спокойно.

3. Формирование HTML кода выводимого изображения централизировано в одной функции Image_BuildHTML(), которая запрашивает путь к изображению и дополнительные параметры (title,alt,align).

4. Watermark: возможность автоматически добавлять на загружаемые изображения надписи или изображения с достаточно гибкой конфигурацией (пример надписи см выше).

5. Закругление углов изображения.

О том, как пользоваться 4 и 5 поговорим подробнее.

Читать дальше →

Новые возможности форматирования дат

В версии 0.4 значительно улучшены возможности по работе с датами. Ввиду большого числа писем по этому поводу, опишу здесь основные моменты и правила пользования новыми параметрами форматирования дат:

0. Вступление.

За оформление даты в Smarty-шаблоне отвечает тот же, что и раньше, smarty-тег {date_format}. Тег требует только один обязательный параметр 'date' — собственно дата. Простейший вариант вывода:
{date_format date=$oTopic->getDateAdd()}

в результате получаем самый обычный:
10 декабря 2009, 00:35

Информация для разработчиков: date_format работает теперь не через функцию в function.php, а через специально написанный для движка smarty-плагин.


Дополнительные параметры формата

Новые функции редактора текста и короткий FAQ

Начиная с 617 ревизии SVN стандартный редактор текста Livestreet обзавелся новыми функциями. Теперь есть возможность превратить выделенный текст в заголовок h4, h5 или h6, а также в один клик оформить нумерованный или маркированный список.

Для полноценного использования этого функционала были исправлены старые баги парсера — добавление лишних отступов строк между пунктами списка и после заголовков (сделанные фиксы касаются external-библиотеки Jevix, а не только ядра).

Ввиду большого числа писем о некорректной работе этого редактора в версии 0.3.1 — под катом правила по корректному переносу.


Читать дальше →

Новости разработки и жизни LS для пользователей Twitter

Аккаунт в Twitter я зарегистрировал давно (нужно было разобраться с ихним API), но активно пользовался начал буквально с прошлой недели.

Стараюсь отписывать ключевые моменты разработки на SVN. Здесь писать статьи времени не хватает, да и формат общения немного не тот. А вот 140 символов — то что нужно :) Поэтому кто интересуется последними нововведениями и вообще ходом разработки в режиме реального времени — можете следить за ними в ленте twitter.com/kachayev

Также предлагаю твитами высказывать идеи\размышления\мысли, коих обычно очень много (лично у меня) и нужно их быстро где-то фиксировать.

Почти все твиты про LS помечаю тегом #livestreet, но в результаты поиска по нему попадают буквально единицы. Не знаю точно почему. Но буду продолжать этот тег использовать — чтобы потом было легче находить сообщения «по теме».

P.S. Примечательно, что тег #livestreet уже был использован одним из пользователей твиттера до меня. А значит twitter`яне нас знают. Пусть узнаЮт еще лучше!

Новая система безопасности ядра

UPDATE. По результатам обсуждений в систему защиты внесены изменения — откорректировал описание в топике. Особенно большое спасибо benone, Wizard, onthefly за активное обсуждение проблемы.

Раньше в движке для обеспечения защиты от несанкционированных действий использовалась проверка переменной $_SERVER['HTTP_REFERER']. Но иногда это создавало дополнительные проблемы, поэтому было решено ввести новый механизм защиты (готов к использованию начиная с ревизии #551).

Защита данных, полученных через GET-запрос.

Проблема: Некоторые действия выполняются, после перехода пользователя по ссылке, например, удаление топиков. При этом, естественно, проверяется авторизация пользователя. Но, злоумышленник, может подгрузить вам эту страницу на другом сайте в невидимом фрейме и вы удалите топик сами того, не подозревая.

Основная идея решения такова:
Читать дальше →

Эволюция Viewer: управление блоками, слияние и минимизация JS/CSS

На SVN работа над LS0.4 кипит, начну понемногу описывать нововведения. Итак, сегодня у нас на очереди модуль Viewer, который постепенно «обрастает» очень вкусными полезностями. В этот модуль добавлено:

1. Управление выводимыми на страницу js,css файлами.

2. Управление выводимыми на страницу блоками через конфигурацию.

Подробнее под катом.


Читать дальше →

Модуль Loader - управление js и css файлами

Суть проблемы:

В шаблоне new на каждой странице выводиться 18 js файлов и 6 css. Достаточно много, особенно если учесть, что на многих страницах не нужна и половина из них. Хотелось бы избавиться от ненужного баласта. Но… Файлы жестко прописаны в template, поэтому стандартными средствами с этим трудно бороться.

Решение проблемы:

Выкладываю в свободный доступ модуль «Loader», который использую для своего проекта.

Модуль Loader предоставляет вам возможность просто управлять совокупностью подключаемых к странице css и js файлов, используя шаблоны адресов или непосредственно из кода Action`a.

Скачать модуль. (в данный момент на модерации).

Используя модуль вы можете:

1) задать набор файлов, выводимых по умолчанию. Стартовый default-набор состоит из файлов подключаемых в скине new версии livestreet 0.3.1
2) создавать правила включения и\или исключения некоторых (или всех) файлов для путей любого вида.
3) подключать или удалять файлы прямо из кода Action`a

О том, как установить модуль — в readme.txt файле (это совсем не сложно). Как пользоваться — под катом.

Читать дальше →