Содержание
Evolution CMS 2.0 на компонентах Laravel 6.0 — естественная эволюция MODX Evolution / Хабр
Настало время релиза Evolution CMS 2.0 RC на компонентах Laravel 6.0, но как показал предыдущий релиз и последующие за ним обсуждения — существует масса вопросов и мифов связанных с веткой 2.0.
Самый популярный миф — в новой ветке все изменилось и по-старому уже не будет.
Неправда — будет и по-старому. Основное отличие в том, что сохранив возможности “по-старому” мы добавили возможности и “по-новому”. Уровень входа не изменился, но более продвинутые разработчики получат много готовых решений и возможностей, а те кому достаточно существующих компонентов могут работать также, как и раньше, никто не будет никого лишать привычных вещей.
Уровень совместимости максимальный — даже с версии 0.9 вы можете обновиться до 1.4, а с нее до 2.0 при сохранении функционала. Хотя надо учитывать возможные проблемы которые могут возникнуть с depricated методами из за того что нужно поднять версию php до 7. 2, но скорость работы того стоит, а реагировать на эти баги буду быстро, чтобы приблизить срок стабильного релиза.
Специально для сомневающихся записал видео в котором система обновлена с 1.0.8 до 1.4 (обновил бы и с более старой версии но не нашел на столько устаревший хостинг)
А вот в этом видео уже рассказывается как с 1.4.* обновить до 2.0:
В итоге — на 2.0 можно работать точно также, как и на 1.4 и ниже.
Куда все идет и какова цель всех этих изменений?
Сохранение обратной совместимости
Evolution CMS вырос из MODX Evolution, который появился в 2004 году и могу с уверенностью заявить, что даже самый старый сайт можно без особых проблем обновить до самой последней версии!
Это делается в 2 простых шага:
- 0.9 -> 1.4.*
- 1.4.* -> 2.0
Я не знаю ни одну систему, которая могла бы похвастаться таким результатом, с учетом 15-летней истории и все совместимо. Да у нас тоже есть моменты, которые становились deprecated, ну так и PHP за это время немало своих функций туда загнал, поэтому у вас обновление можете пройти не достаточно гладко. Но все вопросы зачастую решаются быстро и просто, достаточно уметь пользоваться гуглом и копипастом. Копируем ошибку в гугл и читаем первых пару статей из выдачи, в 95% случаев решение проблемы найдется.
Современные технологии:
Современные технологии развиваются стремительно и если мы будем стоять на месте, то уже в самое ближайшее время мы станем разработчиками неплохой, но уже устаревшей системы. Кому нужны будут такие сайты, когда на рынке будет появляться много “стильных, модных, молодежных” систем — конкурентов, да и существующие лидеры рынка на месте не стоят.
Дополнительный плюс — если у кого-то вдруг появится желание изучить новые возможности, то это может даже стать открытием (не побоюсь этого слова) для тех, кто ничем кроме стандартных компонентов в жизни не пользовался. Новые знания и возможности являются основным фактором стоимости работы разработчика, мы вам их даем и уже ваше дело использовать их или нет.
Реальный пример пользы изменений — я думаю многие помнят как еще пару лет назад я не был приверженцем работы в IDE, а сейчас понимаю на сколько был не прав и что сам себе усложнял жизнь.
Framework или CMS?
CMS:
Когда было принято решение собирать Evo на компонентах Laravel одним из первых вопросов был: делал ли кто-то подобное подобное и может нет смысла придумывать велосипед? В итоге пересмотрел более 10 различных админок для Laravel, да и пару CMS на ней же и пришел к выводу, что почти все делалось не для контент-менеджеров, которые проводят очень много времени в админке, а для разработчиков. В итоге собирать и делать сайты на этом удобно а вот пользоваться не очень.
Я считаю что идеология админки Evolution CMS, которая пришла еще от MODX, очень крутая и понятная для обычного пользователя. Необходим минимум времени чтобы любому человеку обьяснить как с ней работать. Да и разработчики могут просто и быстро реализовать все пожелания клиента по организацию админ-панели.
Как реальный пример — решение Collection: http://modx.im/blog/addons/5994.html которое позволяет выводить дочерние документы в виде таблицы с фильтром, сортировкой и инлайн редактированием, при этом можно самостоятельно настраивать какие поля будут отображаться в таблице.
Framework:
На текущий момент Laravel один из самых популярных фреймворков, а это означает что у него есть много разработчиков, большое сообщество которое уже решило те или иные вопросы, плюс большая информационная база по работе с ним. Внедряя компоненты Laravel 6.0 в Evolution CMS мы расширяем возможности системы, а так же упрощаем жизнь разработчикам и стимулируем создание новых решений и дополнений. Тем кто долго и давно работает с Evolution и не использует других инструментов стоит присмотреться что происходит в мире и какие появились новые инструменты, упрощающие и ускоряющие разработку: Composer, Artisan, Blade, MVC, Migration, Models, Eloquent, Git и т.п.
Для тех кто только начинает знакомиться с Evolution, но уже имеет опыт работы с другими системами или с Laravel, в системе будут знакомые и любимые инструменты. Таким образом компоненты Laravel в Evolution CMS снижают порог вхождения для новичков в работе с системой и дают возможность прокачать свои скилы для тех кто давно знаком с Evolution CMS.
Итак, что нового
- Шаблоны в файлах и Blade
- Controllers and MVC
- Models and Eloquent
- Packages (Chunks, Snippets, Plugins, Modules, e.t.c)
- Миграции и разработка на DEV и PROD окружении
- Laravel Cache
- Custom routing on FastRoute
- use .ENV
- Artisan
- IDE-Helper
Планы на ближайшее будущее
Релиз Evolution CMS 2.0 состоится 02.11.2019, по этому поводу будет организовано офлайн мероприятие в г.Москве в частном кинотеатре ‘Kinoleto’ по адресу:
2-й Кожуховский проезд 29, корпус 2, строение 18, вход по предворительной регистрации, форма регистрации, а также больше подробностей будет тут.
Скачать как всегда можно тут
Так же рекомендую прочитать:
Evolution CMS (2.0 alpha) на компонентах Laravel
Стандартные TV-поля в MODx Evo и Evo CMS
» Помощь » Памятка » TV-поля по умолчанию
Стандартные TV-поля в MODx Evo, названия, значения, способы вывода.
TV-параметры позволяют добавить к документу дополнительную информацию, которую затем можно использовать на равне с основными параметрами. Также TV-параметры имеют различные типы и в зависимости от этого меняется их управление и представление.
TV-параметры задуманы таким образом, чтобы передавать значение переменной и при этом именоваться, как угодно. Но стоит ли дать создавать новые параметры, когда среди уже имеющихся по умолчанию представлен исчерпывающий список имён, о котором не всем известно?
Рассмотрим основные и системные TV-параметры по умолчанию в CMS MODx Evo и Evolution СMS.
Параметр в MODX — элемент, который содержит определенную информацию для текущей страницы. Их можно непосредственно вывести на страницу или передать сниппету в качестве параметра.
Основные параметры содержат информацию о документе.
*pagetitle* - заголовок документа
*longtitle* - расширенный заголовок документа
*description* - описание документа
*introtext* - аннотация документа
*content* - содержимое документа
*id* - идентификатор (номер) документа
*parent* - номер (ID) родительского документа
*pub_date* - дата публикации дкоумента
*unpub_date* - дата завершения публикации
*createdby* - Идентификатор пользователя создавшего документ
*createdon* - Дата создания документа
~идентификатор~ - URL документа по указанному идентификатору
Дополнительно
*alias* - псевдоним документа
*editedby* - Идентификатор пользователя редактировавшего документ
*editedon* - Дата редактирования документа
*type* - вариант (документ, папка или ссылка)
contentType* - тип содержимого (например, text/html)
*published* - опубликован ли документ (1|0)
*isfolder* - является ли документа папкой (1|0)
*richtext* - используется ли при редактировании документа визуальный редактор
*template* - номер (ID) используемого шаблона для документа
*menuindex* - порядковый номер отображения в меню
*searchable* - доступен ли документ для поиска (1|0)
*cacheable* - Кэшируется ли документ (1|0)
*deleted* - Документ удален (1|0)
*deletedby* - Идентификатор пользователя удалившего документ
*menutitle* - Заголовок меню.
*donthit* - Слежение за количеством посещений отключено (1|0)
*haskeywords* - Документ содержит ключевые слова (1|0)
*hasmetatags* - Документ имеет метатеги (1|0)
*privateweb* - Документ входит в частную группу пользовательских документов (1|0)
*privatemgr* - Документ входит в частную группу менеджерских документов (1|0)
*content_dispo* - Вариант выдачи содержимого (1 - для отображения | 0 - для скачивания)
*hidemenu* - Документ не отображается в меню (1|0)
Назначение полей
Имя параметра — используется для вызова TV-параметра. Можно использовать как английский так и русский язык, а также дефис (-) и знак подчеркивания (_). Пробел использовать нельзя!
Заголовок — используется для обозначения TV-параметра в документе при редактировании.
Описание — используется для более расширенной информации о TV-параметре в документе при редактировании, а также в общем списке TV-параметров.
Тип ввода — определяет вид получаемой информации. В зависимости от выбранного типа интерфейс меняется. Более подробно смотрите Типы ввода TV-параметров.
Значение по умолчанию — определеяет значение TV-параметра по умолчанию при редактировании документа.
Возможные значения — используются в некоторых типах ввода (например Radio Options, Check Box) для предоставления вариантов выбора. Более подробно смотрите Определение значений TV-параметра.
Визуальный компонент — определеяет вариант вывода TV-параметра на страницу сайта. Более подробно смотрите Вид TV-параметра.
Порядок в списке — определяет порядок TV-параметра в документе.
Ограничить доступ к редактированию параметра — если включить флажок, то никто кроме администраторов не сможет редактировать этот TV-параметр.
Типы ввода
- Text — поле ввода. Поле ввода MODX Evo. Возможные значения не используются. Значение по умолчанию автоматически записывается в поле при первом редактировании.
- Raw Text, Raw Textarea. Устарели и не рекомендуются к использованию. Вместо них рекомендуется использовать Textarea и Textarea (Mini).
- Textarea и Textarea (Mini) — текстовое поле. Текстовое поле в MODX Evo. Возможные значения не используются. Значение по умолчанию автоматически записывается в поле при первом редактировании.
- RichText — поле с визуальным редактором. Визуальный редактор (RichText) в MODX Evo. Возможные значения не используются. Значение по умолчанию автоматически записывается в поле при первом редактировании.
- DropDown List Menu — раскрывающийся список. Выпадающий список в MODX Evo. Поле Возможные значения задает конечный список значений и определеляется специальным форматом. Более подробно смотрите Определение значений TV-параметра. Значение по умолчанию определяет выбранный пункт при первом редактировании.
- Listbox (Single-Select) и Listbox (Multi-Select) — список множественного выбора. Список с множественным выбором в MODX Evo
- Single-Select и Multi-Select отличаются только тем, что в первом варианте можно выбрать одно значение, а во втором несколько (+Ctrl). Поле Возможные значения задает конечный список значений и определеляется специальным форматом. Более подробно смотрите Определение значений TV-параметра. Значение по умолчанию определяет выбранный пункт при первом редактировании.
- Radio Options — Переключатели (Radio) в MODX Evo. Поле Возможные значения задает конечный список значений и определеляется специальным форматом. Более подробно смотрите Определение значений TV-параметра. Значение по умолчанию определяет выбранный пункт при первом редактировании.
- Check Box — флажки. Переключатели (checkbox) в MODX Evo. Поле Возможные значения задает конечный список значений и определеляется специальным форматом. Более подробно смотрите Определение значений TV-параметра. Значение по умолчанию определяет выбранный пункт при первом редактировании.
- Image — изображение. Выбор изображения в MODX Evo. При нажатии кнопки Вставить открывается файловый менеджер, который позволяет выбрать необходимое изображение и загрузить его при необходимости. Возможные значения не используются. Значение по умолчанию автоматически записывается в поле при первом редактировании.
- File — Выбор файла в MODX Evo. При нажатии кнопки Вставить открывается файловый менеджер, который позволяет выбрать необходимый файл и загрузить его при необходимости. Возможные значения не используются. Значение по умолчанию автоматически записывается в поле при первом редактировании.
- URL — ссылка. Ссылка — TV-параметр в MODX Evo. Возможные значения не используются. Значение по умолчанию автоматически записывается в поле при первом редактировании.
- Email — Email — TV-параметр в MODX Evo. Возможные значения не используются. Значение по умолчанию автоматически записывается в поле при первом редактировании.
- Number — число. Число — TV-параметр в MODX Evo. Возможные значения не используются. Значение по умолчанию автоматически записывается в поле при первом редактировании.
- Date — Дата — TV-параметр в MODX Evo. Первая кнопка вызывает календарик, с помощью которого можно выбрать дату. Вторая кнопка стирает дату. Возможные значения не используются. Значение по умолчанию автоматически записывается в поле при первом редактировании.
Информация о технологии хостинговой платформы EvoGov
Информация о технологии хостинговой платформы EvoGov
Многих ИТ-менеджеров интересует, что находится «под капотом» нашего программного обеспечения и хостинга.
Мы верим в полную прозрачность, поэтому вместо расплывчатых описаний того, как мы создаем и размещаем наше программное обеспечение, на этой странице подробно описывается наш стек технологий.
Центры обработки данных
Время работы и безопасность вашего веб-сайта так же важны для нас, как и для вас. Вот почему мы используем лучших поставщиков центров обработки данных, лучшие облачные функции и сочетание проверенных технологий для запуска наших веб-приложений. Мы используем Amazon Web Services (AWS) как крупнейшего и лучшего поставщика облачных услуг в мире. Мы используем четыре разных периферийных местоположения, в том числе одно в Канаде. Наша платформа приложений полностью работает на AWS.
Программная платформа Evo.Cloud
Evo.cloud ( www.evo.cloud ) — наша новейшая система управления веб-сайтом. Все наши приложения входят в стандартную комплектацию нашего хостинга.
Многие федеральные правительственные учреждения в настоящее время используют Amazon AWS (https://aws.amazon.com/federal/) из-за его мощности, масштабируемости, рентабельности и повышенной безопасности.
Перечисленный ниже стек предназначен для evo.cloud.
Прикладное ПО
- Система управления контентом (CMS) — www.evo.cloud
- Сервер приложений — Python (https://www.python.org)
- Программное обеспечение базы данных — PostgreSQL (http://www.postgresql.org)
Скрипты и фреймворки внешнего интерфейса
- Адаптивный фреймворк — CSS Grid или Bootstrap (можно использовать любой фреймворк внешнего интерфейса)
- CSS – встроенный редактор CSS. CSS3 с автоматическим сжатием.
- JavaScript Framework — используйте ЛЮБОЙ, который вам нравится.
- Платформа приложений — Django — (https://www.djangoproject.com)
- Наша CMS предоставляет ВЕСЬ код дизайна, css, сценарии и шаблоны со встроенным управлением версиями и редакторами.
Система управления версиями кода (CVS)
- Фиксация кода — все обновления нашей платформы имеют версии.
Серверы и службы
- Веб-сервер — Apache и nginx
- Сервер приложений — экземпляры AWS Elastic Beanstalk с балансировкой нагрузки и автоматическим масштабированием, работающие под управлением Python и 64-разрядной версии Amazon Linux
- Кэширование — Amazon Cloudfront
- SSL — 2048-битные SSL-сертификаты включены БЕСПЛАТНО для всех доменов, которые мы размещаем (ваш сайт может иметь несколько доменов)
- База данных — AWS RDS под управлением PostgreSQL
- Хранилище — Amazon S3
- DNS — Amazon Route53 (мы рекомендуем использовать избыточный распределенный DNS от Amazon, а не GoDaddy и других поставщиков DNS).
- SMTP — массовая рассылка электронных писем с использованием служб SendGrid.com для повышения эффективности и скорости доставки информационных бюллетеней.
Защита от DDOS — Защищен ли ваш сайт?
Знаете ли вы, что одна из крупнейших муниципальных компаний по разработке веб-сайтов пережила несколько массовых распределенных атак типа «отказ в обслуживании» (DDOS), которые привели к отключению многих веб-сайтов их клиентов? Оценивая поставщика вашего веб-сайта, СПРОСИТЕ ИХ, была ли у них такая атака, почему это произошло в первую очередь и что они сделали, чтобы исправить уязвимость. Если они упоминают об использовании CloudFlare для предотвращения DDOS, знайте, что CloudFlare — это дополнительные расходы.
Хотя DDOS-атаки невозможно полностью предотвратить, наши системы НАМНОГО более устойчивы к этим типам атак. Спросите своего поставщика, имеют ли веб-сайты, которые они размещают, общие IP-адреса и как они распределяются. Традиционные веб-серверы, DNS которых использует IP-адрес для своей записи A в DNS, очень уязвимы. Благодаря природе облака вам больше не нужно использовать статический или общий IP-адрес для сервера вашего веб-сайта. На самом деле наши серверы используют МНОЖЕСТВО IP-адресов, которые часто меняются, что делает ваш сайт намного более безопасным.
Выводы:
- Спросите у поставщика, случались ли у него DDOS-атаки за последние 5 лет, и попросите их подробно объяснить это.
- Не тратьте больше денег на сложную DNS-службу CloudFlare.
- Выберите более масштабируемого и надежного поставщика облачных услуг, который понимает безопасность.
- Получите копию соглашения об уровне обслуживания (SLA) вашего хоста.
- Настаивайте на том, чтобы ВСЕ доменные имена, связанные с вашим веб-сайтом, включали 2048-битные SSL-сертификаты без дополнительной оплаты (мы предоставляем это).
- EvoGov — единственный провайдер, который хорошо справляется со всеми этими важными аспектами вашего хостинга.
Злоупотребление заблокированными учетными записями в Evolution CMS Атаки с внедрением SQL
Подробная информация о двух уязвимостях в портале управления опубликована через несколько недель после исправления.
Evolution — это основанная на PHP система управления контентом (CMS) с открытым исходным кодом, используемая для управления серверной частью веб-сайтов.
8 февраля компания Synactiv, занимающаяся кибербезопасностью, публично сообщила о наличии двух недостатков безопасности в CMS и о том, как можно использовать «заблокированную учетную запись» для выполнения «неаутентифицированного SQLi в Evolution CMS с использованием заголовка X-Forwarded-For».
Написанный Николя Бискосом и Томасом Этриллардом из Synacktiv, совет по безопасности (PDF) подробно описывает уязвимость инъекции SQL без аутентификации на странице входа в диспетчер Evolution.
Узнайте больше о последних исследованиях в области информационной безопасности со всего мира
Этот недостаток безопасности был вызван тем, как приложение обрабатывает SQL-запросы. Если пользователь должен был отправить созданные данные, запрос можно было изменить перед попаданием в базу данных Evolution.
Поскольку CMS регистрирует действия в интерфейсе менеджера и вставляет данные в базу данных, поле IP очищается неправильно, поэтому заголовок X-Forwarded-For может быть изменен.
Когда учетная запись в интерфейсе менеджера заблокирована, вызывается определенная функция, которую злоумышленник может использовать без аутентификации для извлечения записей из базы данных SQL.
Злоумышленник также может активировать блокировку учетной записи, если он того пожелает, выдав недопустимые попытки входа в систему.
Перечисление пользователей на основе времени
Вторая ошибка, обнаруженная Synactiv, также связана с ошибками в интерфейсе управления. Чтобы узнать, существует ли учетная запись, злоумышленники могут воспользоваться изменениями поведения на этапе аутентификации.
По словам исследователей, «определить присутствие пользователя можно по времени отклика приложения», а при отсутствии учетной записи «полный процесс аутентификации» не происходит.
Объединение сведений о существующей учетной записи и ее преднамеренная блокировка могут быть использованы для запуска уязвимости SQL-инъекций.
Synacktiv сообщил The Daily Swig, что уязвимость перечисления на основе времени не очень распространена, поскольку «эта ошибка зависит от времени и от того, как сервер ее обрабатывает».