+132.73
697 читателей, 143 топика

Релиз LiveStreet 1.0.2

Сообщаем о выпуске промежуточной версии LiveStreet 1.0.2.
Основная причина — закрытие пассивной XSS (спасибо HiMiC ). Также были исправлены другие незначительные моменты по безопасности.
Полный список изменений относительно версии 1.0.1 доступен здесь — github.com/livestreet/livestreet/commit/479e97bea183b8ab863d45b8150fe6549b42f8ce

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

При обновлении с 1.0.1 достаточно перезаписать файлы из нового архива, каталог /templates/skin/ можно не перезаписывать.

Скачать можно здесь — livestreetcms.ru/download/

UPD
Список изменений:
  • фикс бага смены емайла, если у пользователя не было старого
  • если класс модуля не существует, то теперь выбрасывается эксепшен
  • доступ к какум только через http
  • фикс генератора плагинов из консоли
  • в конфиг вынесены настройки допустимого логина пользователя
  • фикс отображения адреса сайта плагина в списке плагинов
  • вынос в конфиг максимального размера текста топика для ссылок и опросов
  • возможность отключить обязательность проверки каптчи
  • фикс удаления комментариев
  • фикс раскрытия путей на сервере — замена функции getRequest на getRequestStr для строковых параметров
  • закрытие прямого доступа к plugin.xml, закрытие некоторых каталогов через htaccess
  • список допустимых протоколов для ссылок в парсере jevix
  • в классе LS методы заменены на статические
  • в сущности топика добавлены новые вспомогательные методы: getUrlEdit, getIsAllowDelete, getIsAllowEdit, getIsAllowAction
  • новая опция в конфиге $config['smarty']['compile_check'] для отключения проверки шаблонов перед компиляцией
  • фикс бага с передачей сессии в каптчу
  • фикс предпросмотра у топика-ссылки и опроса
  • фикс установки уровня php ошибок в Viewer
  • теперь, если файл шаблона плагина не найден, будет попытка его найти в каталоге шаблона плагина /default/, это позволит не дублировать файлы шаблонов для разных скинов
  • фикс утечки памяти при обработке конфига
  • для топика устанавливается canonical url
  • фикс экранирования полей в ORM
  • для ORM связи many-many добавлен новый метод clear() для удаления всех текущих связей
  • возможность в определении ORM связи has-many указывать дополнительный фильтр (4-й параметр)
  • поддержка группировки в условиях ORM запроса
  • фикс XSS в пагинации
  • в определении таблицы в ORM учитывается имя плагина, например, prefix_pluginname_user_invite
  • теперь при запуски из консоли функция func_getIp вернет 127.0.0.1
  • в jevix в обработку тегов TR_TAG_CALLBACK_FULL дополнительно передается содержание между тегов
  • в ls.ajax в хук дополнительно передаются параметры callback и more
  • оптимизация выборки инбоксов
  • фикс бага подписки на комменты к топику из закрытого блога
  • фикс удаления файлов изображения фото-сетов при удалении топика

Оптимизация ЛС, часть 3

Топик залежался в черновиках, и хотя сегодня Максим уже сделал багфикс, я все же опубликую этот топик в общеобразовательных целях.

В одном из топиков по оптимизации мы уже касались темы доработки класса конфига ЛС. В данном топике рассмотрим ещё одну оптимизацию — заменим создание анонимной функции каждый раз при получении ключа на вызов уже созданного объекта. Изначальный код предложил пользователь empirik и данный код является небольшой его модификацией + результаты тестов.

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

Оптимизация ЛС, часть 2

А пока товарищи в соседнем топике спорят, я провел небольшие замеры и предлагаю взглянуть на некоторые варианты оптимизации.

Продолжаем эксперименты над движком.

Ахтунг! В данной статье будут приведены примеры кода, которые могут нарушить функциональность некоторых весьма хитро-умных плагинов, которые привязаны к этому механизму. Мне не известен ни один такой плагин, но я не исключаю возможность их существования.

В прошлом топике, где я опубликовал полный список стандартных хуков для ЛС 1.0.1, я обратил внимание на хуки, которые начинаются с префикса module_ — хуки, которые постоянно создаются динамически и вызываются парами до и после вызовов методом модулей. Как и было написано в предыдущем топике — хуки вызываются 486 раз, причем само их количество на «чистой» ЛС значится в 161 штуку.

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

Список хуков LiveStreet CMS 1.0.1

На днях написал черновик по списку хуков и так забыл о нем, пока не увидел новое видео от Максима и сразу вспомнил об этом тексте, решив под общий шумок вокруг хуков добавить и эту статью. Я видел разные топики, где спрашивали "есть ли список хуков?". Да, есть. Вот он.

Привожу список стандартных хуков для чистой официальной ЛС 1.0.1, большинство из них неявно прописаны в движке, поэтому попытка найти их вызовы в коде у вас не выйдет т.к. часть их них автоматически формируется ядром движка.
Из стандартной поставки ЛС хуки в сумме вызываются 486 раз, некоторые по нескольку раз. Это нормально. Здесь приведены 161 хук, которые доступны в ЛС 1.0.1, в порядке их вызова, начиная с самого первого, исключая дальнейшие повторения.

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

Плагин для IDE PhpStorm - автодополнение

Для разработчиков у нас отличная новость!
Рады представить плагин для IDE PhpStorm (лучшей IDE для разработки на PHP), теперь разрабатывать на LS стало еще проще — плагин поддерживает автодополнения методов LS + есть поддержка наследования через Inherit.

пример автодополнения

Скачать можно на странице docs.livestreetcms.com

Надеемся в Новом Году разрабатывать с помощью LS станет еще приятнее!
С наступающим!

UPD: выложили исходники github.com/livestreet/ide-plugin-phpstorm

Сегодня подключили к CI серверу первый плагин покрытый автоматическими тестами!

Наличие автоматических тестов это важная составляющая качественного программного продукта. А мы ведь хотим использовать качественные плагины на своих LiveStreet сайтах?

Именно поэтому stfalcon.com занимается внедрением автоматических тестов в LiveStreet и плагины, а также подключением всего этого дела к бесплатной платформе для Continuous integration Travis CI.

И вот сегодня состоялось важное событие — загорелся первый зеленый билд статус для плагина sitemap!



Немного перефразируя Армстронга это:
Один маленький шажок для человека, но огромный скачок для LiveStreet сообщества



PS. Для самого LiveStreet такой статус загорелся ещё две недели назад, но тестами покрыта пока лишь малая часть функционала.

LiveStreet исполнилось 4 года



Сегодня исполняется ровно 4 года нашему LiveStreet. Моментом отсчета является вот этот самый первый топик — livestreet.ru/blog/dev_livestreet/1.html, который и представил LS публике.

Тогда это была полная внешняя копия хабра с минимальными возможностями, но постепенно LS вырос из просто копии и стал чем то больше. Все началось с моего обычного увлечения, было просто интересно что-то сделать. А потом уже переросло практически во вторую работу, которая не отпускаем меня вот уже четыре года :)
За это время в команде LS появились два новых человека, без которых сейчас трудно представить как бы развивался LS и развивался ли вообще. Это Алексей Попов aka LeX и Денис Шахов aka deniart . Если Денис уже достаточно давно в LS, то Алексей присоединился буквально недавно, чему я очень рад :)

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

Но главное это пользователи и их интерес к движку и проекту в целом. Именно вы помогали нам все это время работать над проектом, развивать его. За эти четыре года были моменты, когда уже хотелось все бросить и заняться чем-то другим. Но ваша поддержка, лояльность и интерес к проекту помогали пережить эти негативные периоды и двигали нас вперед с новыми силами. Спасибо вам большое!

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

Релиз LiveStreet 1.0.1

Рады сообщить о выходе багфиксной версии LiveStreet 1.0.1.

Список основных изменений:
  • Возможность изменять ширину сайта, делать ее фиксированной или резиной с ограничениями по максимальной и минимальной ширине. параметры задаются в конфиге шаблона.
  • Возможность в настройках профиля указать часовой пояс.
  • Подтверждения смены емайла в профиле, подтверждаются как новая, так и старая почта
  • Список активности теперь группируется по дате
  • Тема оформления «light», которая убирает закругления и тени, включается в конфиге шаблона
  • Автоматическая группировка пунктов в главном меню, если их много
  • Fix XSS во всплывающих сообщениях
  • Большое количество различных фиксов, обнаруженные после основного релиза

Скачать новую версию можно со страницы загрузки — livestreetcms.ru/download/

Поддержать пост на Хабре — habrahabr.ru/post/149171/

Дизайнеру на заметку — что необходимо нарисовать для сайта на LiveStreet 1.0

Этот пост для тех, кто хочет нарисовать свой уникальный и неповторимый дизайн для сайта на LiveStreet CMS. В нем я хочу перечислить то, что придется нарисовать, отдельно акцентируя внимание на блоки, которые можно упустить или не догадаться. Список получен эмпирическим путем, при работе над Synio.


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