Новое в LiveStreet 1.0 для разработчиков
22
Для разработчиков плагинов и шаблонов в LiveStreet 1.0 есть некоторые изменения.
Постараюсь их все собрать в одном месте.
Изменений, на самом деле, не так много.
Список:
Если есть вопросы, то отвечу более подробно.
Постараюсь их все собрать в одном месте.
Изменений, на самом деле, не так много.
Список:
- Модуль GEO, теперь в своих плагинах с помощью него можно делать географические привязки различных объектов
- Модуль Subscribe, организация подписок пользователей на различные события и рассылка по ним. Например, через него реализован механизм подписки на комментарии к топикам
- js вынесены за пределы шаблона в библиотеки, теперь в шаблонах достаточно только переопределить необходимый функционал
- Механизм валидации данных, подробнее — livestreet.ru/blog/dev_documentation/10221.html
- Возможность в тулбар добавлять свои элементы через стандартных механизм блоков
- Консоль для автоматической генерации каркаса плагина
- Переопределять настройки редактора стало проще, теперь они находятся в ls.settings
- Класс Object переименован в LsObject, позволит избежать проблем с некоторыми IDE и подключить автоподстановку методов
- Доработан модуль Image, теперь для сохранения изображения на другой сервер, достаточно переопределить методы SaveFile() и RemoveFile()
- Каптча вынесена в блочный хук {hookb run=«popup_registration_captcha»}, что позволит ее переопределить
- Возможность делать всплывающие подсказки через poshytip или infobox.js (с погрузкой данных через ajax)
- Появился модуль Tools, сейчас в нем только один метод — формирование облака тегов
- Шаблоны блоков перенесены в отдельный каталог /blocks/
- При ручном определении сеттеров в сущностях теперь следует возвращать данные как return $this->_getDataOne('blog_id'); — это позволит избежать проблемы с Notice ошибками
- Прямой эфир теперь автоматически группирует вкладки, если их много, в выпадающий список
- Смена приоритетов при загрузке блоков — теперь блоки из конфига загружаются после блоков, объявленных в коде экшенов, соответственно блоки из конфига имеют более высокий приоритет. Это позволит применять правила к блокам после окончательного определения экшена/евента, которые можно переопределить в ходе выполнения логики экшена/хуков.
- Возможность делать именованные евенты и управлять блоками из конфига о их именам. Например для евента на основе регулярно выражения можно задать имя и его использовать в правилах блоков. Если имя не задать, то оно автоматически определится как имя метода евента.
- Теперь все текстовки плагинов помещаются в пространство 'plugin.name', например, Get_Lang('plugin.page.admin_title');
Если есть вопросы, то отвечу более подробно.
Установка Livestreet с нуля (Debian): nginx + mysql + php-fpm + apc + memcached + sphinx
44
Возможно, этот гайд даже кому-нибудь понадобится.
0) Итак, у нас имеется свежепоставленный Debian с настроенным ssh-доступом и юзер с правами, достаточными для работы sudo.
Здесь и далее "#" в начале команды означает, что ее необходимо запускать с правами root-пользователя (например, с помощью sudo)
1) Пакеты будем ставить из репозитория dotdeb, поэтому для начала добавим его в sources.list:
дописываем в конец файла
Далее импортируем ключ dotdeb'а:
Обновляем список пакетов
Читать дальше
0) Итак, у нас имеется свежепоставленный Debian с настроенным ssh-доступом и юзер с правами, достаточными для работы sudo.
Здесь и далее "#" в начале команды означает, что ее необходимо запускать с правами root-пользователя (например, с помощью sudo)
1) Пакеты будем ставить из репозитория dotdeb, поэтому для начала добавим его в sources.list:
# nano /etc/apt/sources.listдописываем в конец файла
deb http://packages.dotdeb.org stable allДалее импортируем ключ dotdeb'а:
wget http://www.dotdeb.org/dotdeb.gpg -O - -q | sudo apt-key add -Обновляем список пакетов
# apt-get update
Читать дальше
Создание топиков письмом
11
Возникла такая у меня потребность. Дать пользователям присылать свои фотозаметки. Так скажем «Молния! Срочно в номер!».
Читать дальше
Читать дальше
- +1
- 07 апреля 2012, 08:45
- youllupukki
- 13
Фикс безопасности в LiveStreet 0.5.1
11
В LiveStreet 0.5.1 в js библиотеке prettyPhoto обнаружена уязвимость XSS.
Варианты исправления:
Настоятельно требуем выполнить обновление.
Варианты исправления:
- Патч — github.com/livestreet/livestreet/commit/7c9f79c2ebafc9ba1694c3c850ba8299aeef1ac3
- Скачать дистрибутив еще раз и обновить из него файл engine/lib/external/prettyPhoto/js/prettyPhoto.js
Настоятельно требуем выполнить обновление.
Поиск по сайту, как сделать быстро и красиво.
14
Доброе утро господа, сейчас расскажу как сделать поиск по сайту на примере шаблона new-jquery, быстро и красиво. :)
ЖМИ, ДАЛЬШЕ БУДЕТ ЛУЧШЕ! :)
ЖМИ, ДАЛЬШЕ БУДЕТ ЛУЧШЕ! :)
Сайт на LS - Simigra.ru
2
Хочу представить вам сайт, работающий на Livestreet.
Использован немного доделанный шаблон DeStreet.
В планах разработка собтсвенного плагина игровой лиги, нужен разработчик на ls :).
Всем кому интересно — welcome.
Сайт simigra.ru
Отдельно хочу сказать по хостингу, для полноценной быстрой работы пришлось брать vps.
Использован немного доделанный шаблон DeStreet.
В планах разработка собтсвенного плагина игровой лиги, нужен разработчик на ls :).
Всем кому интересно — welcome.
Сайт simigra.ru
Отдельно хочу сказать по хостингу, для полноценной быстрой работы пришлось брать vps.
Счетчик новых топиков в favicon
19
С помощью трех весьма нехитрых действий можно легко прикрутить к своему LiveStreet модную фишку.
Читать дальше
Читать дальше
Помечаем куски шаблонов в скомпилированой странице for 0.5.1
25
Навеяно топиком, хотя сам использую для верстки практически с момента выхода 05 версии, както не подумал что это может быть полезно и другим ;) исправляюсь )
Читать дальше
Читать дальше
Валидация данных в LiveStreet 0.6
17
В транковую версию LS на github.com добавлен новый функционал — валидация данных и полей сущностей. Этот функционал призван заменить функцию func_check(). За основу был взят функционал валидации Yii.
На данный момент доступны следующие типы валидации:
Читать дальше
На данный момент доступны следующие типы валидации:
- Boolean — проверка значения на булевый тип
- Date — проверка значения на формат даты и времени
- Email — проверка корректности емайл
- Inline — валидация произвольным методом сущности или другого объекта
- Number — проверка на числа
- Required — проверка на пустое или конкретное значение
- String — проверка строк на длину
- Type — проверка на тип значения
- Url — проверка на корректность URL
Как использовать
В сущности необходимо составить список правил валидации.class PluginTest_ModuleMain_EntityTest extends Entity {
protected $aValidateRules=array(
array('login, name','string','max'=>7,'min'=>'3'),
array('title','my','on'=>'register'),
);
public function ValidateMy($sValue,$aParams) {
if ($sValue!='Мега заголовок') {
return 'Ошибочный заголовок';
}
return true;
}
}Читать дальше
Удаление UTF-8 BOM из консоли
5
linux (debian tested)
freebsd (7.2 tested)
найти файлы с BOM
sed почему-то иногда не отрабатывает, поэтому php, find, awk, xargs:
find путь/к/лайвстриту/ -type f \( -name '*.tpl' -o -name '*.php' \) -exec sed -i '1 s/^\xef\xbb\xbf//' {} \;freebsd (7.2 tested)
find ./ -type f \( -name '*.tpl' -o -name '*.php' \) -exec sed -i -e '1 s/^\xef\xbb\xbf//' {} \;найти файлы с BOM
find ./ -type f \( -name '*.tpl' -o -name '*.php' \) -print0 | xargs -0r awk '/^\xEF\xBB\xBF/ {print FILENAME}{nextfile}'sed почему-то иногда не отрабатывает, поэтому php, find, awk, xargs:
php -r "ob_start();
passthru('find ./ -type f \( -name \'*.tpl\' -o -name \'*.php\' \) -print0 | xargs -0r awk \'/^\xEF\xBB\xBF/ {print FILENAME}{nextfile}\'');
foreach(array_filter(explode(\"\n\",ob_get_clean())) as \$f){
echo \"remove BOM from \$f...\n\";
file_put_contents(\$f, substr(file_get_contents(\$f), 3));
};"
- +3
- 22 февраля 2012, 15:29
- 1d10t
- Оставить комментарий