Всем привет!
Выкладываю для тестирования релиз-кандидат InstantCMS 2.17.0.
От того, как мы с вами выявим баги в новой версии, зависит стабильность релиза. Прошу всех неравнодушных присоединиться к тестированию.
Цель релиз-кандидатов
- Тестирование участниками сообщества заявленной новой функциональности чистого движка новой версии;
- Тестирование участниками сообщества обновления с предыдущей версии на копиях сайтов, чтобы по выходу релиза спокойно обновить;
- Дать возможность разработчикам дополнений неспешно ознакомиться с новшествами и при необходимости обновить свои разработки.
Что не нужно делать с релиз-кандидатами
- Создавать новый сайт на нём;
- Обновлять рабочий сайт, работающий на предыдущей версии;
- НЕ нужно при тестировании искать что-то иное, кроме багов (ошибок).
Что такое баг?
Баг — это ошибка при которой движок ведет себя не так, как от него ожидается. Т.е. когда какая-либо функция есть, но не работает или работает неправильно. Пожелания, предложения и замечания писать не нужно. Их оставим на следующие релизы.
Как тестировать
Установите движок на локальную машину или реальный хостинг. InstantCMS теперь можно кастомизировать, создавая собственные сборки: об этом ниже опишу подробнее.
Включите режим отладки в общих настройках.
Поставьте себя на место пользователя вашего сайта и попробуйте проделать все типовые операции (регистрация, редактирование профиля, загрузка фото, добавление статей, комментариев и тд). Проделайте все операции в админке, которые вы обычно делаете. Если что-то сделать не получилось — записывайте в список. Если нашли баг — не публикуйте его сразу, а поищите еще и потом напишите обо всем найденном одним комментарием. Так удобнее обрабатывать.
По мере обработки комментарии будут удаляться, чтобы не путаться. Поэтому не пугайтесь если ваш комментарий пропал — это значит его приняли к сведению.
Еще один очень важный момент: когда пишите сообщение о баге, описывайте ошибку максимально подробно. В случае, если вы в процессе тестирования увидели «белый экран», прочитайте, пожалуйста, этот пост, чтобы понять, как вместо белого экрана увидеть текст ошибки.
Как тестировать процесс обновления
В первую очередь убедитесь, что вы сделали всё правильно. Если у вас свой шаблон, то убедитесь, что обновили файлы шаблонов от новой версии. Если во время загрузки пакета обновления и самого процесса возникли ошибки — напишите об этом — не продолжайте дальнейшее тестирование, т.к. оно уже будет некорректным.
На что обратить внимание при тестировании
Из ключевых моментов я прошу обратить отдельное внимание на;
- новый компонент Content Security Policy;
- поскольку библиотека PHPMailer обновлена до версии 6.9.2, проверьте работу почтовых уведомлений;
- установку дополнений в админке;
- работу под PHP 8.3 и выше.
Примерный список изменений:
- Исправлен баг с набором «Участие в группах» компонента «Группы»;
- Исправлен баг с опцией сортировки полей-списков;
- Управление MIME-типами в админке. Все проблемы с ними решены;
- Исправлен баг со сменой языка при ремапе;
- В компонент подписок добавлены опции «Показывать кнопку подписки в списке», «Показывать кнопку подписки в фильтре» и управление позицией показа кнопки;
- Mobile Detect 3.74.3;
- ScssPhp 1.13.0;
- TinyMCE 7.5.1 + исправлены баги;
- Редактор Ace обновлён до версии 1.36.5;
- jQuery UI, CroppeJS, jquery.inputmask, VueJS актуальных версий;
- Минимальная версия PHP: 7.2.0;
- Исправлена XSS в exif параметрах;
- Автоспойлер для больших описаний фотографий в фотоальбомах;
- Добавлен опциональный показ кол-ва записей в категориях ТК;
- В опцию «Тип вывода» в связях добавлен пункт «Список в поле»;
- Добавлена поддержка отрицательных масок для конкретного виджета;
- Новый класс cmsResponse для работы с HTTP ответом, функция header теперь не вызывается нигде в коде напрямую;
- Класс cmsRequest дополнен для работы с HTTP заголовками запроса, с массивом $_SERVER и методом HTTP запроса;
- Опции полей свойств, опции валидации для свойств, фильтры для свойств в админке, поддержка разных файлов email писем об успешной модерации для типов контента;
- События от пользователей, помеченных как удалённые, теперь не выводятся в активности;
- Исправлена ошибка в быстром подборе масок;
- Добавлены хуки: content_category_before_delete, users_profile_before_update_notices;
- Добавлен трейт fieldsParseable для единой обработки полей в ТК, профилях и группах;
- Исправлена фильтрация по скрытым родителям записей ТК;
- Добавлена мультиязычность для кнопки виджета «All news by the author»;
- Исправлено отсутствие языковой константы в уведомлении об оценке материала;
- Тег video теперь может быть пустым в типографе;
- Исправлены некоторые проблемы при работе на Windows-системах;
- Добавлено отображение имени файла в email-письме при отправке формы конструктора форм;
- В трейте formItem теперь можно использовать свойство submit_title;
- Исправлена работа некоторых WYSIWYG-редакторов в комментариях и на стенах в Firefox;
- В поле «список изображений» добавлен CSS для блока загрузки DnD;
- Новый компонент Content Security Policy;
- Атрибут nonce для script тегов;
- Большое количество правок по избавлению от инлайновых onclick (для Content Security Policy);
- Отделение инлайнового js кода от многих шаблонов админки;
- Опция placeholder для редактора Tiny;
- Для забытых разделов админки добавлен csrf_token;
- Почти вся админка приведена к единому набору иконок;
- Экспериментальная поддержка прав доступа для разделов админки (управление не реализовано, только через БД);
- Единый CSS класс icms-click-select для инпутов, которые должны по клику выделять свой текст;
- Новое свойство use_default_tool_buttons для трейта icms\traits\controllers\actions\formItem (для кнопок сохранить и отмена);
- Токены через random_bytes;
- Метод $request->getContent() для получения php://input;
- Вкладка формы с полем ошибки HTML валидации теперь становится автоматически активной;
- В манифестах установочных пакетов добавлена возможность указывать минимальную версию PHP;
- Добавлены опции CSS классов для полей в записи и в списке;
- Поддержка виртуальных полей в группах, профилях и виджетах;
- Исправлено отсутствие расширения файла во вложениях из конструктора форм;
- Исправлена работа уведомления в модальном окне конструктора форм;
- Магия с cms_users/model_content и т.п. вынесена в трейт и доступна теперь в том числе и в виджетах;
- Полное наследование в SCSS для дочерних шаблонов, включая внутренний импорт;
- CSS класс для ссылок icms-action-confirm, наличие которого вместе с атрибутом data-confirm делает переход по ссылке с автоматическим подтверждением;
- Добавлены описания для тегов;
- Аватарка в админке в меню ограничена в размерах;
- Для поля связей «Родитель» добавлена опция вывода только в глубиномере;
- В разделе виджеты и страницы админки добавлен показ подсказки на фантомном виджете с названием страницы, к которой он привязан;
- Добавлен механизм смены автора записи ТК;
- Увеличено кол-во символов для полей SEO;
- Добавлен hookAfterUpdate для полей свойств;
- Исправлена ошибка с валидацией параметров подписок для гостей;
- Добавлен шаблон вывода виджета списка записей для ТК фотоальбомы;
- В админке в списке комментариев добавлена фильтрация по ТК и вывод имени комментируемой записи;
- Исправлено формирования SEO паттернов компонентов при включенной мультиязычности;
- Для TinyMCE добавлены опции «Блочный элемент» (вместо Перевод каретки) и «Поведение новой строки»;
- Для комментариев добавлена опция «Скрывать комментарии удалённых пользователей»;
- Добавлена поддержка мультиязычности для связки Запись ТК -> Группа;
- Убран вызов mysqli->ping() как устаревший и неработающий с php8.2;
- PHPMailer 6.9.2;
- Корректная версия SQL сервера в разделе «Информация о системе»;
- Поддержка переменной окружения ICMS_CONFIG_DIR для пути к директории конфигураций;
- Всё, что лежит в system/config/ теперь можно выносить за корневую директорию;
- Поддержка массового удаления пользователей в админке;
- При удалении виджетов теперь вызывается методы полей $field>delete();
- Классы google_authenticator и idna_convert теперь совместимы с php8.3+;
- Новый класс cmsAutoloader и механизмы автозагрузки;
- Поддержка английского языка для каталога дополнений в админке;
- В компоненте «Авторизация и Регистрация» а также в поле «Защита от спама» добавлена опция выбора конкретной капчи;
- Опция «Показывать капчу после неудачной авторизации» переименована в «Показывать капчу при авторизации», т.е. при включении её, капча будет всегда;
- Переписан механизм установки пакетов дополнений, добавлен класс cmsInstaller для работы с ними;
- Исправлен баг с utf8_general_ci;
- Добавлены фильтры по пользователям для массовой рассылки сообщений;
- Много рефакторинга и исправление мелких ошибок.
Так же изменения вы можете узнать, ознакомившись с описаниями всех коммитов с прошлого релиза и взглянуть на закрытые тикеты / пулреквесты.
Кастомизация установочного архива InstantCMS
Начиная с этого релиза вы можете делать свои сборки. В комплекте установщика теперь есть скрипт для кастомной сборки, InstantCMS можно установить без 16 компонентов, что бывает полезно для некоторых разработок. Кроме того, это теперь позволит нам интегрировать в официальную сборку любое количество своих компонентов (так проще поддерживать).
Но это ещё не всё. Вы можете добавлять любое бесплатное дополнение из нашего каталога в сборку, всё так же, используя скрипт.
Сложно в скрипт? Без проблем. Мы сделали отдельную страницу генерации сборок на этом сайте. Она в тестовом режиме и на основе текущей версии релиз-кандидата. В выбор сторонних дополнений в форме мы добавляем сами, помечая проверенные. Пока что для тестов там выведены только мои дополнения, но, честно говоря, я не тестировал их на совместимость ;) Обязательно займусь в ближайшее время.
Механизмы сборки желательно тоже протестировать.
Скачать для тестирования
Пакет обновления 2.16.3 => 2.17.0RC
Чистый релиз InstantCMS 2.17.0 RC
Приглашаем всех, кому не безразлична стабильность новой версии InstantCMS, принять участие в тестировании.
Спасибо тем, кто откликнется.
UPD
Тестирование завершено. Всем спасибо за участие.