Друзья, привет!
Рад сообщить, что мы выпустили новую версию InstantCMS! В ней учтены все ваши отчёты об ошибках и пожелания. Релиз прошёл тестирование на следующем окружении:
- Apache 2.4.58
- PHP 8.5.6
- MariaDB 10.11.14
📋 Что нового и исправлено
Улучшения функционала:
- Поле характеристик планов Биллинга теперь необязательное;
- В виджет «Элементы шаблона» добавлена опция позиции вывода уведомлений;
- Добавлено отображение количества иконок во вкладках настроек шаблона;
- Для каждого типа контента можно использовать свой шаблон наборов;
- В трейте formItem теперь вызывается метод afterStore() для полей формы;
- В трейте deleteItem можно указывать имя связанной формы — перед удалением вызывается метод delete();
- Добавлена возможность создавать форму опций для дополнений;
- В разделе «Контент» типы контента со связями теперь подсвечиваются и имеют подсказку;
- В разделе «Виджеты и страницы» — быстрый поиск по страницам;
- Добавлена зависимость полей (как в форме) в фильтре и виджете фильтра типов контента.
Исправленные ошибки:
- Выбор пресетов обложки категорий в виджете;
- Отображение галерей в списках (когда галерея была одна для всех);
- CSRF-токен для уведомлений в админке;
- Опция «Добавлять в тег title страницы название сайта» после установки CMS;
- Присвоение ID записи при загрузке фото в визуальных редакторах;
- Инлайн-редактирование пунктов меню;
- Сохранение по Enter при массовом редактировании в гридах;
- Ошибки в библиотеке Spyc (вертикальная черта).
🔒 Безопасность:
- Защита от SSRF (redirect / DNS rebinding) для загрузок по ссылке и удалённых скачиваний;
- Защита от Zip Slip: запрет символических ссылок в ZIP-архивах;
- Защита от Zip Bomb: лимиты на количество файлов, размер архива и файлов;
- Запрет .htaccess и .user.ini в пакетах дополнений;
- Временные директории создаются со случайными именами, пакеты сохраняются с контролем целостности по SHA-256;
- Установка дополнений через временную директорию — недоступность распакованных файлов по URL;
- Валидация изображений из пакетов дополнений;
- ЮMoney: учёт нового параметра sign.
⚙️ Технические изменения:
- Единообразие метода getOption в cmsController + опция по умолчанию;
- cmsCacheFiles переписан на хранение в JSON;
- VueJS обновлён до версии 3.5.34;
- Переработаны хелперы string_random, files_copy_directory, files_remove_directory, files_delete_file(), files_sanitize_name(), files_get_upload_dir();
- Убраны лишние нотификации и код (actionGroupsGroupMembers, fieldUrl, actionAuthRestore).
И, конечно, очередная порция мелких косметических правок и рефакторинга :) — об этом расскажет вам dif.
Подробнее об изменениях можно узнать из описаний всех коммитов с прошлого релиза.
⚡ Как установить обновление
⚠️ ВАЖНО! Убедитесь, что сейчас вы используете версию 2.18.1, иначе сначала обновитесь до неё.
Обязательно сделайте резервную копию сайта и дамп базы данных. Мы не несем ответственности за любые потери данных при неправильном обновлении.
Перед началом обновления:
- Убедитесь, что версия PHP — не ниже 7.4.0
- Отключите кеширование в настройках сайта
- Отключите объединение JS и CSS
- Если у вас свой шаблон с файлами из пакета обновления — обновите их
- При «белом экране» читайте эту статью
- Если в обновлении есть изменения в шаблоне — ознакомьтесь с нашей статьёй
Дополнительно:
- Если в вашем шаблоне есть JavaScript-файлы с правками (из /templates/default/js/ или /templates/modern/js/) — замените или смержите их из пакета обновления. Не забудьте очистить кэш браузера (например, через счетчик версий для посетителей).
- Для кастомной урезанной сборки: распакуйте пакет, удалите ненужные контроллеры, запакуйте обратно и обновитесь.
Механизм установки подробно описан в документации.
📦 Пакет обновления для ручной установки: скачать
🌐 Демо-сайт обновлён.
Огромное спасибо за сообщения об ошибках, донаты и пул-реквесты. Спасибо, что выбираете InstantCMS!
💙 Поддержите проект
Ваша поддержка помогает нам развиваться и делать InstantCMS лучше каждый день.
- Станьте спонсором — постоянная поддержка с привилегиями
- Отправьте донат — разово или регулярно, в том числе в криптовалюте
- Поставьте ⭐ звезду на GitHub — это помогает проекту расти и находить новых пользователей
Каждое ваше действие имеет значение. Спасибо, что вы с нами!
ауфф, крутяк
Ну у меня прошло так:
Это от обновления 2.18.0 -> 2.18.1. Просто можно было пересохранить настройки биллинга, в новости я писал об этом. А в целом пакет обновления это делал, почему у вас не сделал, не могу знать.
Как обычно, ни одного из пунктов не понял :), но спасибо!
спасибо, обновился без пробелем
Класс. Спасибо
Просто хотелка — «временные директории создаются со случайными именами» — вот бы еще админка инсталилась с случайным именем как престашоп
Почему может быть не видна обнова?
Скрин:
Возможно с вашего хоста сервер upd.instantcms.ru недоступен или же попробуйте удалить файл /cache/update.dat перед проверкой обновления.
Каталог дополнений не доступен, это значит скорее проблема на хостинге
/cache/update.dat — файл не обнаружен.
Спасибо/ понял куда копать
это можно сделать один раз при установке и забыть, не обязательно это в инстралл пихать чтобы потом искать. Не нужно этого делать. Грамотнее самому один раз настроить при установке и всё.
что именно Это? Установка была в варианте английского языка, у меня уже это второе обновление которое ставлю в ручную. Нет сообщения об обновлении. Рубильник поиска обновлений включен. Обновился в ручную
Тоже была такая мысль. Может и сделаю. Но вообще урл удминки можно менять очень давно.
Внесите себе в диструбутив эти изменения и при установке можно будет поставить чекбокс «Генерировать рандомный URL админки». Или воспользуйтесь версией с гита или завтра уже — ночной сборкой.
Поясните кратко что это за «Ночная сборка»? Темная тема?
Дистрибутив, который собирается раз в сутки на основе текущего кода InstantCMS на гитхабе.
Ясно. «Zip Git'а». Все про все не прочитаешь. Я исходил из «Темная тема мне не нужна».
Приветствую. Спасибо за очередное обновление, при установке которого возникли трудности.
Появилась ошибка 500 и отладка ругалась на файл install.php После замены файла на текущий появилась следующая ошибка:
Fatal error: Trait «icms\controllers\admin\traits\packageInstallerTrait» not found in /var/www/_usr/data/www//system/controllers/admin/actions/install.php on line 8
Не думаю что проблема именно в обновлении. У вас два слэша подряд. Убедитесь что в файле /system/config/config.php нет двойных слэшей.
В целом, в данном обновлении структура базы данных не менялась, можно просто заменить файлы.
Я просто не до конца подтёр домен и не стёр отделяющие слэши. Проблема не в этом. При последнем обновлении на 2.18.1 всё обновилось, но выпала в конце ошибка 500. Я тогда не придал значения этому, а сейчас при попытке обновиться — сразу 500 error и отладка ругается на:
Тогда просто обновитесь вручную. Все содержимое папки package из архива обновления загрузите в корень вашего сайта, заменяя файлы. И всё.
Обновился. Спасибо.
Отличная новость. Множество небольших, но важных изменений.
Спасибо большое! Как всегда радуете нас)))
Ну а мы должны порадовать вас)))
Донат обязательно отправлю, но немного позже)))
Молодцы, хорошее обновление!
Установка чистой систем с демо данными на локалке php8.1
Так же установка чистой 2,18,1 с апдейтом до 2,18,2
При попытке установить любые дополнения выдает ошибку: Ошибка распаковки пакета: Extraction escaped target directory
Откройте файл /system/controllers/admin/traits/packageInstallerTrait.php и строку
замените на
И покажите ошибку ещё раз.
При попытке вывести переменную "$destination_dir_real" ничего не происходит, т.е. даже нотис перестает выводить.
вывел через exit(),
$destination_dir_real = W:\userdata\temp\cms_install_95e953309f6626727ff3471518f33a6f
$tmp_dir = w:/userdata/temp\cms_install_95e953309f6626727ff3471518f33a6f
Теперь понятно в чём причина, sys_get_temp_dir() возвращает не с windows слешами, а должен.
Замените строку в том же файле
На строку:
Ок, найду windows и поставлю опенсервер. Пофисю, отпишусь.
Благодарю, буду ждать!
Это должно помочь
Так у меня на локалке (php8.2), при обновлении:
1. в админке указываю пакет с обновлениями
2. заливаю в ручную папки с обновлениями в движок
3. жму в админке на кнопку продолжить, появляется вторая страница с информацией о пакете и появляется плашка с предупреждением об обновлении...
4. жму кнопку продолжить, появляется плашка «Ошибка распаковки...»
Систему 2.18.1 поднимаю каждый раз для эксперимента из бекапа...
Изменения в файл пакета обновления /system/controllers/admin/traits/packageInstallerTrait.php внёс до заливки файлов в движок… куки удалял...
И да… я в этом файле сделал два изменения и это:
и это
(может только одно надо было?) попробовал и оба и только второе… одинаково.
ЗЫ: до этих изменений в файле, ошибка распаковки появлялось сразу (при указании пакета и нажатии кнопки продолжить), даже вторая страница с информацией о пакете не появлялась...( насколько помню)
Попробуйте применить изменения из коммита
github.com/instantsoft/icms2/commit/bfa061a9c5606d3983c289a4e7502d75a9b18ed7
Честно говоря, варианты кончаются.
Вот такой у меня файл получился (проверьте может не правильно)
disk.yandex.ru/d/quQatZRqAYon4A
С ним не работает, по всякому пробовал… и из другого браузера заходил. Пробовал после обновления установить это дополнение:
instantcms.ru/blogs/sokraschatel-ssylok.html
Тоже ошибка...
Надо что бы ещё кто то проверил установку в ручную, даже просто после обновления поставить какое нить дополнение...
У меня ещё проблема, что я Виндой почти не пользуюсь из браузеров только Фаерфокс, и даже локальный недавно поставил Опенсервер 6.5, а в нём, вдруг какие модули не включены...
Может AtlantisWeb появится… Или ещё кто проверит. Не может быть что бы проблема была такой избирательной))
Завтра днём, ещё попробую, поэкспериментировать… может где то закэшировалось...
Я проверил чистую 2.18.2 с последним коммитом под windows и под linux, всё устанавливается. Странно почему первый шаг работает, а второй нет. Дайте вводные побольше, как повторить. Как я понял проблема на windows.
Завтра попробую чистую 2.18.2 поставить и посмотреть...
Не однозначно) я же свой рабочий (на хостинге) сайт тоже обновил и на нём тоже (насколько помню) при обновлении выскочила эта ошибка...
Не хотелось рабочий сайт терзать, но завтра попробую на него какое нить дополнение установить… проверить...
ЗЫ: может конечно на рабочем сайте что то закэшировалось, но это уже совсем мистика...)
Проверил на чистой системе на локалке и на хостинге.
Что бы не повторятся, результаты в теме:
instantcms.ru/forum/openserver-2-18-2-problemy-s-ustanovkoi-dopolnenii.html#post-370887
Заменил файл packageInstallerTrait.php из этого коммита и все заработало на 2.18.2
Так же попробовал установку с Гита последнюю на 15.06.2026 2.18.3, тоже все ок.
Спасибо!!!
Если поможет при локализации проблемы… При обновлении в ручную с 2.18.1 до 2.18.2 тоже была такая же проблема (Ошибка распаковки пакета...) и на локальном (Опен Сервер) и на реальном сайте. PHP8.2...
Версия в админке сменилась, вы написали, обновление БД не затрагивает, поэтому подумал такая фича у этого обновления)
Спасибо за обновление. Всё работает. Донат отправлен.
Спасибо!
Ребята, я извиняюсь что не совсем по теме… Короче делаю в project.ini так:
Установка нормально запускается. Но так как на хостинге только Nginx + php-fpm делаю на локальном так
И постоянно на адресе instant.loc/install/ — постоянно Error 503 — сервис недоступен… В журнале и логах пусто. Помогите пожалуйста что за нюанс такой… может кто то сталкивался? На реальном хостинге без танцев все устанавливается...
Только логи укажут в чём конкретно у вас проблема. CMS работает на php8.5 точно.
Спасибо за обновление. Почему то на PHP 7.4 выдает, что нет доступного варианта хранения сессий, хотя хостер говорит, что все есть и в самой информации о системе есть, что файловое хранение сессий доступно.
А вообще дальнейшая разработка движка продолжается. Или все, заброшен? ((((
Есть какие-то проблемы в текущей версии движка? Она довольно стабильная, закрыты все известные уязвимости. Вышла 4 месяца назад. Почему сразу
Я ничего против не имею. Просто разработчик один, и я понимаю, и все понимают, что ему все равно тяжело, как бы оно не было. Просто решил поинтересоваться, Я просто сейчас на dle активно сижу, и вот ищу, на какой движок можно перейти, городской портал строю. Вот и решил узнать, вообще будет ли инстант жить и дальше обновлятся с добавлением нового функционала как для Админа, так и просто для юзера. Но спасибо за ответ))))
обновляется 2 раза в году, лучше для городского портала не найти
Продолжается. Следить за изменениями кода можно на гитхабе. Заодно поставить там нам звезду. Забрасывать не планируется.
Спасибо большое. Звезду поставлю))))))
был удивлён узнав, что свойства категорий не работают с компонентом мультиязычности, буду рад увидеть в обновлении
обсмотрелся)