Новое в разрабатываемой версии LiveStreet CMS
Подготавливая админку к выходу мы с Максимом планировали написать полный перечень новых возможностей движка и админки, но времени на это не было, поэтому первая статья-знакомство с бетой админки от Максима была короткой. Решил восполнить этот пробел написав полный список того, что внедрено в новую разрабатываемую версию движка и того, что мы сделали в админке.
Итак,
Новые возможности, предоставляемые движком
- модуль EAV, который позволяет добавлять дополнительные пользовательские поля к любой сущности экосистемы лс
- отказ от устоявшихся типов топиков, теперь существует единственный тип топика по-умолчанию
- теперь в админке можно создавать свои типы топиков со своими наборами полей
- универсальный мультизагрузчик изображений, теперь они все считаются и привязываются к топику и пользователю, загрузившему их и автоматически удаляются при удалении топиков, где они использовались
- можно не только просто вставлять изображения, можно добавлять неограниченное количество слайдеров Fotorama с изображениями в топики в любое удобное место
- кстати, заложен функционал для загрузки других файлов
- полная реструктиризация шаблонов для лс с использованием наследования, теперь она более гибкая, позволяющая ещё больше отделять логику от дизайна, теоретически должна спасти от необходимости адаптаций плагинов под шаблоны, которые будут использовать данный механизм
- добавлено key-value хранилище
- поддержка join запросов ORM
- очень много мелких новых возможностей для роутера, обработки сущностей и др.
- много фиксов
Новые возможности, которые предоставляет админ панель
Здесь будет более детальный список возможностей, т.к. большую часть админки, которую разработчики и простые пользователи вовсю уже тестируют, написал я, поэтому помню все более детально. Итак, что же нового вы можете найти:
- наверное не многие заметили что новая админка адаптивная — это значит что управлять сайтом можно и с помощью мобильных устройств
- полное корректное удаление комментариев (и всех дочерних ответов), с автоматической чисткой всех связанных данных (голосования, избранное, активность, прямой эфир и т.п.). У админа есть кроме обычного удаления ссылка «полное удаление» комментариев в дереве комментариев.
- на главной странице админки можно заметить общие данные сайта: статистику новых регистраций, топиков, комментариев и голосований за нужный период в виде графика, обновления для плагинов, новые жалобы на пользователей, вся активность сайта по фильтру и прирост нового контента на сайте за период по сравнению с прошлым аналогичным периодом с указанием рейтингов нового контента, а также голосов пользователей, отданных за этот контент в виде маленьких графиков для каждого типа (блок «Добавилось») + другие приятные мелочи (все описывать достаточно долго, поэтому я постараюсь выделять наиболее важное).
Группа «пользователи»
- раздел «статистика» содержит общую статистическую информацию о пользователях вашего сайта в виде нескольких графиков: статистика регистраций, гендерного распределения, активности, возрастного распределения, а также статистика проживания пользователей по странам и городам
- Список пользователей содержит общую информацию по пользователям с возможностью поиска по многим параметрам пользователя. Ах да, и много мелких удобностей по всей админке — сортировка по полям в списках, изменение количества элементов на страницу и это очень удобно, стоит попробовать.
- раздел банов пользователей — давно ожидаемая вещь. Забанить можно пользователя указав его id, почту или логин, айпи адрес либо диапазон айпи адресов. Также есть тип бана: полный или read only. Если с первым вопросов не возникает, то второй — очень интересная вещь: с этим типом бана пользователю можно читать сайт, без возможности что либо публиковаь, комментировать и т.п. Временные рамки бана: вечный, период дат или количество дней, с указанием причины бана для пользователя и комментария «для себя».
- страница профиля пользователя также весьма интересна: можно написать ему сообщение, сделать админом, удалить весь его контент или удалить пользователя полностью. Да-да, корректно и правильно. С удалением всех связанных данных, коих от пользователя может быть очень (!) много. За это отвечает отдельный модуль админки. После удаления пользователя не останется никаких его следов. Можно менять рейтинг и силу, редактировать его профиль: все, от логина, почты и пароля, до места проживания. Можно просмотреть все голоса пользователя за объекты: как, сколько раз и за что голосовал пользователь. И не забываем что везде есть фильтры и сортировка. Это удобно.
- раздел жалоб: на странице сразу выводится список новых жалоб на пользователей. Тут же можно быстро ответить тому, кто отправил жалобу или тому, на кого жалоба поступила, не отходя от кассы, так сказать.
Группа «плагины»
- список установленных плагинов, куда ж без него? Доступны списки активных плагинов, не активных и список, для которых есть обновления в каталоге плагинов LiveStreet. Тут же, нажав кнопку «конфигурация», можно изменить настройки конфигов плагинов. Да-да, теперь не нужно будет редактировать конфиги, все можно делать через веб-интерфейс из админки, но об этом чуть ниже. Кстати, админка умеет различать корректные имена плагинов, и если пользователь по неосторожности загрузит плагин из гит-репозитория, который любит давать папкам свои имена, например, lsplugin-payment-master, то админка распознает такой плагин и сообщит о том, что директория с плагином нуждается в переименовании:
Ошибка: Плагин lsplugin-payment-master не был добавлен в список т.к. имеет некорректный код (директорию), возможно его директорию следует переименовать в payment
Пользователь больше не будет сыпать вопросами разработчиков, что после активации скачанной новой версии плагина падает движок т.к. директория с плагином имеет некорректное имя (что можно было наблюдать раньше). - раздел «установить» показывает плагины из каталога с такими же фильтрами по их отбору как и в каталоге
Группа «шаблоны»
- Здесь показаны активный шаблон и список других установленных шаблонов, для каждого шаблона показывается информация о его авторе так само как и для плагинов — теперь разработчики шаблонов могут «подписывать» свои шаблоны :) (можно смотреть примеры файлов на примере девелопера или из админки в /example/skins/ — эти файлы должны быть в корне директории каждого шаблона). Также шаблоны теперь поддерживают темы, которые можно быстро переключать, причем темы построены таким образом что фантазия разработчиков шаблонов не ограничена.
Чтобы подобрать нужный шаблон можно воспользоваться функцией предпросмотра, которая включит выбранный шаблон только для админа — можно просматривать сайт как он будет выглядеть с новым шаблоном, в то время как для других пользователей будет активен установленный шаблон. Когда админ проверит шаблон он может просто выключить предпросмотр или установить просматриваемый шаблон в качестве активного.
Группа «настройки»
- Конфигурация сайта — содержит настройки конфига движка. Мы пока ещё не решили окончательно какие именно настройки конфига разрешить, изначально было их много — почти все что есть в конфиге, но чтобы не пугать пользователя возможностями, часть их них пока отключена. На данный момент здесь доступны настройки названия сайта, мета тегов, настройки ACL, блогов, пользователей, почты, шаблонизатора, кеша, сжатия ксс и жс файлов и др. Позже мы их немного реструктиризируем и добавить ещё больше.
Разработчики плагинов уже сейчас могут пробовать писать схемы конфигов для своих плагинов. Полный детализированный пример схемы конфига с расширенными комментариями я вынес в отдельный файл конфига админки — config/config_scheme_sandbox.php — это раздел настроек админки «песочница», который можно посмотреть как выглядит внешне кликнув на кнопку «конфигурация» в списке установленных плагинов (там на самом деле много разделов настроек, и один из них, «песочница» создан в тестовых целях и не влияет на работу админки).
Примечание:
Схема конфига позволяет задать параметры валидации, отображения, типа и т.п. для каждого ключа вашего конфига так, что они будут автоматически отображаться на странице настроек для вашего плагина и будут доступны для редактирования способом, в зависимости от типа ключа (текстовое поле, выпадающий список, флажок и т.п.)
Страница настроек для плагина будет сформирована автоматически, от разработчика плагина не требуется вносить какие-либо правки или создавать интерфейс для редактирования — все сделает админка автоматически. Также для разработчиков не нужно что-либо менять в коде: вы все также используете класс конфига (Config) как и раньше — никаких модификаций кода не нужно.
Теперь разработчики могут более глубоко сосредоточится на разработке бизнес логики своего приложения, не отвлекаясь на создание страниц с настройками плагинов. Если ваш плагин требует более сложных настроек чем смена параметров конфига — тогда вам нужно лишь подключить внешнюю «шкурку» админки и все ваши настройки будут на странице, которая интегрирована в админку.
- Типы топиков — здесь можно добавить/изменить новые типы топиков, например «рецепты», «гараж». Как уже было сказано — старые типы топиков («фотосет» и др.) удалены, вместо них заложен более широкий функционал. Во все такие типы топиков можно будет писать, у них будет свой набор полей!
Группа «утилиты»
- Раздел «проверка и восстановление» — позволяет проверить таблицы БД и очистить их от поврежденных связей и несуществующих записей, которые могли появиться при разных ситуациях, например, от старых версий LiveStreet или от использования не очень качественных плагинов.
- Подраздел «Проверка файлов» — ещё один просто шикарный бонус для тех, кто не уверен в своем редакторе. Этот функционал позволяет проверить кодировку наиболее часто редактируемых файлов на предмет наличия запрещенной к использованию кодировки UTF-8 BOM. Если такая кодировка будет найдена — будет выведен список таких файлов.
- Раздел «Сброс данных» содержит очистку статистики срабатываний банов. Позже сюда добавим очистку кеша, до этого просто в этом не было необходимости (сбрасывать кеш в новой лс)
Группа «пользовательские поля»
- Содержит список плагинов, которые используют новый механизм дополнительных полей, тут можно изменять наборы этих полей для каждого плагина, а также для своих типов топиков
Резюме
Несмотря на то, что это ещё только бета, в планах есть много других идей к реализации. Лучшее что можно начать делать уже сейчас — помочь в тестировании, установив дев версию движка по инструкции, которую написал Максим.
Также ещё нужно много рассказать о других печеньках, например, для разработчиков плагинов, которые интегрируются в админку, есть классные возможности для быстрого подключения своих графиков, но об этом в другой раз.
Админка предоставляет ещё много других возможностей как для пользователей так и для разработчиков, например, подписка на события изменения настроек конфигов, но описать все эти возможности за раз достаточно трудно и затратно по времени.
P.S. Предупреждая вопросы: большая часть админки написана мной по заказу ООО «ЛС СОФТ». Разработка админки начата в начале лета 2013 года с нуля, от кода старой админки, разрабатываемой все эти годы, было решено отказаться.
91 комментарий
А структура шаблонов более понятна, нет такой простыни почти похожих файлов.
Круто, что сказать.:)
И еще не нашел, как обстоят дела с опросами? И подобие топика-ссылки и фотосета можно будет создать. Или фотосет, опрос можно будет непосредственно в топик любого типа помещать?
да, именно так — в неограниченном количестве в каждом топике.
Есть предположительная дата релиза?
Я не силен в программировании, если не сложно объясните — это фича для разработчиков, или скоро будет доступно управление правами пользователей?
думаю, что не все сразу.
полный ajax? — вопрос очень спорный.
можно конечно на socket.io или на node js, смотря как посмотреть
вот контакт на long polling сделан.
Фишмарт проработал не больше полугода и сео-продвижением его никто не занимался.
А то я кучу времени переводил все модальники на bootstrap-овский modal.js
В названиях блогов разве запрещены дефисы?
Было бы круто если транслит автоматически делался бы. Довольно стандартная вещь для движков, которой к сожалению нет.
после 103 строки добавил
в файле /application/frontend/skin/developer/actions/ActionBlog/add.tpl
в строке 43 поменял тип alphanum на translit
разработчики смогут подключать загрузку файлов к своим плагинам
1. Зачем все так усложнять?
Почему бы не сделать общий блок-обертку и использовать его там где это нужно?
например, орм обновляли, при использовании #where нужно будет менять код (алиасы таблиц добавили для использования join«ов)
нету больше типов топиков „фотосет, ссылка и опрос“, есть единый универсальный тип.
нету флеш загрузчика файлов, вместо него используются возможности хтмл5.
и др.
gyazo.com/9b4b166f7badb797b1c1928a9fcfed13
При создании блога не разрешает названия с тире (только буквы и цифры),
_ нижнее подчеркивание прокатило, но нужно — тире.
но теоретически это вполне вероятно — сколько функционала-то заложено.
Раньше, когда был студентом, то наверное мог неделями изучать LS и плагины и пытаться их друг с другом совместить)
Сейчас я сам занят разработкой сервиса+свой бизнес.
Конечно, если будет время, то хотя бы залью к себе на хостинг и посмотрю, что да как)
Из того, чтобы мне хотелось видеть: удобную миграцию с вордпресса на LS. Чтобы это на составляло труда и не требовалось заказывать каких-то отдельных плагинов. Нужно «всего лишь» основное: топики, категории, теги, юзеров и картинки. Будет ли нечто подобное?
Будут-ли работать плагины/шаблоны от 1.3 на новой версии?
Безболезненно ли можно будет перенести с 1.3 на 2.0?
LS ещё разрабатывается. В скором времени мы это узнаем, а пока только ждать =)
2х уровней вложенности чаще всего недостаточно. Вообще было бы идеально сделать возможность бесконечной вложенности.
Очень нравится данный функционал в WP. Хотелось бы нечто подобное
Допустим сейчас не работает добавление картинок в комментариях.