Всем привет!
Новая версия InstantCMS доступна для скачивания и обновления. Мы учли все ваши сообщения об ошибках и пожелания с предыдущей версии.
Релиз тестировался на:
- Apache 2.4.58
- PHP 8.5.6
- MariaDB 10.11.14
Основной список изменений
- Поле характеристики планов Биллинга теперь необязательное;
- Исправлен баг с выбором пресетов обложки категорий в виджете;
- В виджет «Элементы шаблона» добавлена опция с позицией вывода уведомлений;
- Исправлен недочёт с полем галерей в списках, когда галерея была одна для всех;
- Добавлено количество иконок во вкладках настроек шаблона;
- CSRF токен на уведомления в админке;
- Единообразие метода getOption в cmsController, добавление возможности задать опцию по умолчанию;
- Убран нотис в actionGroupsGroupMembers;
- Добавлена возможность для каждого типа контента использовать свой шаблон наборов;
- Правки ЮMoney в контексте их нового параметра sign;
- Исправлен баг в Spyc (yaml библиотеки) когда появлялась вертикальная черта;
- Исправлен баг с опцией «Добавлять в тег title страницы название сайта» после установки CMS;
- Исправлен баг с присвоением id записи при загрузке фото в визуальных редакторах;
- В трейте formItem теперь вызывается для полей формы метод afterStore();
- В трейте deleteItem теперь можно указывать имя связанной с записью формы и перед удалением для полей формы вызывается метод delete();
- Удалён ненужный код в actionAuthRestore;
- cmsCacheFiles переделан на хранение в JSON;
- Исправлена ошибка при инлайн редактировании пунктов меню;
- Сохранение по enter при массовом редактировании в гридах;
- VueJS обновлён до версии 3.5.34;
- Исправление безопасности SSRF redirect/DNS rebinding для загрузок как по ссылке в полях изображений, так и в целом удалённых скачиваний;
- Установка дополнений через временную директорию, отсутствует возможность доступа к распакованным файлам по URL;
- Защита от Zip Slip для дополнений, проверка и запрет символических ссылок (symlink) в ZIP-архивах, защита от Zip Bomb (лимит количества файлов, размера архива и размера файлов), запрещены файлы .htaccess и .user.ini в пакетах, временные директории создаются со случайными именами, загруженные пакеты сохраняются под случайными именами с контролем целостности по SHA-256, изображения из пакетов дополнений проходят валидацию;
- Функции хелперов string_random, files_copy_directory, files_remove_directory переработаны;
- Добавлена возможность создавать форму опций пакетам дополнений;
- В разделе «Контент» типы контента, имеющие связи, теперь подсвечиваются и имеют подсказку;
- В разделе «Виджеты и страницы» добавлен быстрый поиск по страницам;
- Убран нотис в поле fieldUrl;
- Переработаны функции files_delete_file(), files_sanitize_name(), files_get_upload_dir();
- Добавлена зависимость полей (как в форме) в фильтре и в виджете фильтра типов контента;
- В гридах в админке исправлена проблема выделяемых записей при попытке выделить текст;
- Очередная порция мелких косметических правок и рефакторинга, о которых расскажет вам dif :)
Подробнее об изменениях вы можете узнать, ознакомившись с описаниями всех коммитов с прошлого релиза.
Как установить обновление InstantCMS
Важно! Убедитесь, что сейчас вы используете версию 2.18.1, иначе, обновитесь сначала до неё.
Перед началом обновления обязательно сделайте самостоятельно резервную копию своего сайта и дамп базы данных. Мы не несем никакой ответственности за любые потери данных, произошедшие в результате неправильных действий при обновлении.
- Убедитесь, что вы используете версию PHP не ниже 7.4.0;
- Отключите кеширование в настройках сайта;
- Отключите объединение js и css в настройках сайта;
- Если вы используете свой шаблон и в нем есть файлы, присутствующие в пакете обновления, то обновите их;
- При возникновении «белого экрана» категорически читать здесь;
- Для тех, у кого свой шаблон у нас есть статья как быть, если в обновлении CMS есть изменения в шаблоне, рекомендуем к прочтению.
Если в вашем шаблоне присутствуют JavaScript файлы со своими правками (взяты из /templates/default/js/ или /templates/modern/js/), замените/смержите их из пакета обновления. Не забывайте о сбросе кэша браузера абстрактным счетчиком для посетителей ваших сайтов.
Если у вас кастомная урезанная сборка, то распакуйте пакет обновления, удалите ненужные контроллеры, запакуйте обратно и обновитесь.
Механизм установки обновлений подробно описан по этой ссылке в документации.
Пакет обновления для ручной установки можно скачать по этой ссылке. Демо сайт обновлён.
Огромное спасибо за сообщения об ошибках. Спасибо за донаты и пул-реквесты. Спасибо, что выбираете 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...
Версия в админке сменилась, вы написали, обновление БД не затрагивает, поэтому подумал такая фича у этого обновления)
Спасибо за обновление. Всё работает. Донат отправлен.
Спасибо!