Мы вновь вас приветствуем :)
Не прошло и недели, как мы выпускаем еще одно обновление. У нас был выбор: или просто обновить архивы с учётом пары багов, описанных вами в предыдущей новости, либо выпускать полноценное обновление. Мы выбрали второе. Но выпускать обновление с исправлением пары файлов как-то маловато, поэтому мы изменили порядка 70-ти и добавили немного.
Итак, что на этот раз изменилось
- Исправлена ошибка с полем "Число";
- Исправлена ошибка сохранением формы настроек;
- Исправлена ошибка сохранения некоторых фраз в настройках комментариев типа контента;
- Исправлен недочёт в генерации урл, где поля в значениях имеют только цифры;
- Исправлена проблема, когда ремаппинг типов контента работал некорректно в наборах;
- Исправлена проблема со счетчиком ответов в статусах пользователей;
- Исправлено регулярное выражение валидации URL;
- На главной в админке теперь есть настройки того, что выводить на ней;
- На главной в админке теперь есть виджет ленты активности;
- Инфо бар в списках типов контента теперь тоже формируется унифицировано;
- Мы перешли на новую систему хранения паролей, используя механизм PHP функцией password_hash;
- Длина паролей теперь допустима от 6 до 72 символов;
- В установщик InstantCMS добавлено поле для указания пути к директории сессий;
- В настройках сайта в админке в опцию пути к директории сессий добавлено пояснение, учитывающее значение PHP директивы open_basedir вашего сервера (такое же пояснение есть и при установке движка);
- Выполнена очередная порция правок по мультиязычности. По сути уже сейчас можно делать мультиязычный сайт, но без управления в админке, только через базу данных;
- Если "Дружба" выключена, то вкладка друзей при приглашении в группу не показывается;
- Добавлена функция шаблона renderWidgetHtml, позволяющая из шаблона контроллера его часть выводить на любые позиции виджетов;
- Библиотека PHPMailer обновлена до последней версии пятого релиза;
- И, конечно же, много мелких исправлений, о которых вам расскажет diff.
Отдельно хочу уточнить о смене алгоритма хэширования паролей. Начиная с этой версии InstantCMS пароли хранятся в виде хешей, используя сильный, необратимый алгоритм хеширования CRYPT_BLOWFISH в виде строки в 60 символов. До версии 2.12.1 пароли хранились в виде MD5-хеша пароля + соли, уникальной для каждого пользователя и обёрнуто всё это было еще раз в MD5. Так как мы не можем мигрировать пароли, то в настройки компонента "Авторизация и регистрация" мы добавили опцию "Показывать предупреждение о смене пароля". Если опция включена (по умолчанию выключена), то всем пользователям, которые не меняли пароль, после авторизации будет показан инфо блок с предложением сменить пароль. Как только все пользователи сменять пароли, опция исчезнет из админки.
Как установить обновление InstantCMS
Перед началом обновления обязательно сделайте резервную копию своего сайта и дамп базы данных. Обновляться лучше на копии сайта, поднятом локально на ПК или иным подобным способом. Мы не несем никакой ответственности за любые потери данных, произошедшие в результате неправильных действий при обновлении.
- Убедитесь, что версия PHP у вас не ниже 5.5;
- Отключите кеширование в настройках сайта;
- Отключите кеширование js и css;
- Если вы используете свой шаблон и в нем есть файлы, присутствующие в пакете обновления, то обновите их;
- При возникновении "белого экрана" категорически читать здесь;
- Для тех, у кого свой шаблон мы подготовили статью как быть, если в обновлении CMS есть изменения в шаблоне, рекомендуем к прочтению.
Автоматическая установка
- Включите режим отладки в админке.
- Воспользуйтесь функцией "Проверить обновления" в панели управления InstantCMS 2.
- Система сама обнаружит обновление 2.12.1, предложит скачать его и установить.
- Для установки потребуется указать реквизиты для доступа по FTP.
- Проверьте, что версия InstantCMS изменилась в админке.
- Очистите кэш браузера.
- Обновление завершено.
Ручная установка
Убедитесь, что вы используете InstantCMS 2.12.0 (версию можно посмотреть внизу любой страницы в админке или на главной странице админки в соответствующем блоке).
- Включите режим отладки в админке;
- Загрузите архив с обновлением.
- Перейдите в панель управления сайтом;
- Перейдите в раздел компоненты;
- Нажмите установить пакет дополнения;
- Очистите кеш браузера;
- Сверните окно браузера;
- Все содержимое папки package из архива обновления, скаченного в п.1 загрузите в корень вашего сайта;
- Вернитесь в свернутое в п. 7 окно браузера, нажмите F5 на клавиатуре и выберите архив, который вы скачали в п.2;
- На странице «Информация о пакете» нажмите установить;
- На странице ввода реквизитов ftp поставьте чекбокс "Пропустить этот шаг" и нажмите "Установить";
- Выключить режим отладки в админке;
- Обновление завершено.
Заключение
Как обычно, всем спасибо за сообщения об ошибках и в целом фидбэку! Это здорово помогает делать InstantCMS лучше.
Спасибо, что выбираете InstantCMS!
Поддержите проект
Вы можете стать официальным спонсором или отправить донат, в том числе в криптовалюте. Вы также здорово поможете, если поставите звезду на GitHub, для нас это очень важно.
Я сижу на работе значит и этот смайлик мое лицо -
Спасибо большое, большие молодцы)))
Что не так?
Спасибо за релиз.
Создайте несколько наборов с сортировкой по полям и будет сортируемая таблица.
Если сможете понятнее объяснить задачу - напишите мне в личку.
Ну не считая, что вначале немного перекосило настройки в админке
Почистил кэш и все встало на свои места.
Спасибо, что работаете над проектом!
Notice: Undefined index: user_id in C:\OSPanel\domains\2121\system\controllers\moderation\frontend.php on line 22
Notice: Undefined index: user_id in C:\OSPanel\domains\2121\system\controllers\moderation\model.php on line 244
Notice: Undefined index: id in C:\OSPanel\domains\2121\system\controllers\moderation\model.php on line 245
Notice: Undefined index: title in C:\OSPanel\domains\2121\system\controllers\moderation\model.php on line 247
Notice: Undefined index: slug in C:\OSPanel\domains\2121\system\controllers\moderation\model.php on line 248
Notice: Undefined index: slug in C:\OSPanel\domains\2121\system\controllers\content\actions\item_add.php on line 320
Warning: Cannot modify header information - headers already sent by (output started at C:\OSPanel\domains\2121\system\controllers\moderation\frontend.php:22) in C:\OSPanel\domains\2121\system\core\controller.php on line 960
Warning: Cannot modify header information - headers already sent by (output started at C:\OSPanel\domains\2121\system\controllers\moderation\frontend.php:22) in C:\OSPanel\domains\2121\system\core\controller.php on line 962
Комментарии и весь остальной (кроме альбомов) контент модерируется вроде бы нормально.
Исправлено тут https://github.com/instantsoft/icms2/commit/a451ec446e09797c9d661e2dc9b9fc25cddb2b83
У кого нибудь имеется подобное?
У меня на одном сайте все хорошо, на втором вот такая штука)))
Ошибка в запросе БД:
Неизвестный столбец 'page_id' в 'where clause'
DELETE FROM cms_widgets_bind WHERE (page_id = '201')
Последние вызовы:
cmsDatabase->delete() @ /system\core\model.php : 542
cmsModel->deleteFiltered() @ /system\controllers\widgets\model.php : 32
modelWidgets->deletePage() @ /system\controllers\admin\actions\widgets_page_delete.php : 9
actionAdminWidgetsPageDelete->run()
call_user_func_array() @ /system\core\controller.php : 546
cmsController->runExternalAction()
call_user_func_array() @ /system\core\action.php : 29
cmsAction->__call() @ /system\controllers\admin\actions\widgets.php : 9
actionAdminWidgets->runExternalAction() @ /system\controllers\admin\actions\widgets.php : 9
actionAdminWidgets->run()
call_user_func_array() @ /system\core\controller.php : 546
На рабочем сайте, обновленном до 2.12.1, тоже такая же ошибка.
Стоит написать на гитхаб https://github.com/instantsoft/icms2/issues и ожидать фикса в следующей версии.
Исправлено тут https://github.com/instantsoft/icms2/commit/a451ec446e09797c9d661e2dc9b9fc25cddb2b83
аналогично и со стилями.
Warning: file_get_contents(http://geoip.nekudo.com/api/192.168.0.165/ru): failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in /home/alekskrug/web/алекскруг.рф/public_html/system/controllers/positions/hooks/engine_start.php on line 32
Notice: Constant LANG_PERM_OPTION_PREMOD already defined in /home/alekskrug/web/алекскруг.рф/public_html/system/languages/ru/controllers/video/video.php on line 313
Notice: Constant LANG_PERM_OPTION_PREMOD already defined in /home/alekskrug/web/алекскруг.рф/public_html/system/languages/ru/controllers/video/video.php on line 313
2) попробуйте в файле system/languages/ru/controllers/video/video.php найти и удалить строку с LANG_PERM_OPTION_PREMOD
Warning: Division by zero in /home/alekskrug/web/алекскруг.рф/public_html/system/controllers/loadaverage/frontend.php on line 43
Notice: Undefined index: cpu_count in /home/alekskrug/web/алекскруг.рф/public_html/system/controllers/loadaverage/frontend.php on line 43
Warning: Division by zero in /home/alekskrug/web/алекскруг.рф/public_html/system/controllers/loadaverage/frontend.php on line 43
Notice: Undefined index: cpu_count in /home/alekskrug/web/алекскруг.рф/public_html/system/controllers/loadaverage/frontend.php on line 43
Warning: Division by zero in /home/alekskrug/web/алекскруг.рф/public_html/system/controllers/loadaverage/frontend.php on line 43
Делаете копию сайта на поддомене (без папки upload сайт весит копейки), или поднимаете копию локально, с помощью Openserver, например.
И обновляете. Получили ошибки, спросили на форуме, обратились к авторам дополнений, поправили.
Ой как обновится хочется.. Лучше подожду.. Посмотрю на вас, полюбуюсь, по учусь.. Может и уму разуму наберусь
Нигде ничего вроде не вылезло...
Так что не надо бояться, надо пробовать... только грамотно)) с бекапами, первый раз на локалке, что бы посмотреть что и как и т.д...
Parse error: syntax error, unexpected '[' in /var/www/user/data/www/site.ru/system/core/config.php on line 110
буквально на днях ставил все было хорошо
Ошибка в запросе БД:
Неизвестный столбец 'i.is_enabled' в 'where clause'
SELECT i.*
FROM cms_content_types i
WHERE (i.is_enabled = '1')
ORDER BY i.ordering
LIMIT 1000
Последние вызовы:
cmsModel->get() @ /system/controllers/content/model.php : 319
modelContent->getContentTypesFiltered() @ /system/controllers/content/model.php : 277
modelContent->reloadAllCtypes() @ /system/controllers/content/model.php : 267
modelContent->loadAllCtypes() @ /system/controllers/content/model.php : 14
modelContent->__construct() @ /system/core/core.php : 304
cmsCore::getModel() @ /system/core/controller.php : 99
cmsController->__construct() @ /system/core/core.php : 390
cmsCore::getController() @ /system/core/eventsmanager.php : 58
cmsEventsManager::hook() @ /index.php : 35
Но не пойму как теперь можно получить id виджета из таблицы cms_widgets_bind в tpl.php шаблоне виджета?
С чем это может быть связано ?
Работает только чистая установка с нуля. Но при ней исчезает весь контент.
Как то так.
Ну я конечно в шоке от скорости выхода обновлений
Рейтинг звезды формируется из последнего проголосовавшего.
То есть если он поставил 3 то будет 3, несмотря, что проголосовали три человека перед этим на 5.
Будет ли доработка по рейтингу в виде звезд?
Parse error: syntax error, unexpected '[' in /htdocs/www/system/core/config.php on line 110
Поменял задание на с указанием версии php от которой выполняется задание, так:
/usr/local/php/php-7.2/bin/php...
заработало...
php -f %disk%:/OSPanel/www/site.ru/cron.php site.ru > /dev/null 2>&1
а комуто фича:)дело в том, что создание страниц работает некорректно
https://docs.instantcms.ru/manual/widgets/pages
***
Статья на сайте имеет адрес http://your-site/articles/my-article.html. Вы хотите привязать к ней виджеты.
Положительная маска:articles/my-article.html
***
сам движок генерирует маску без "articles" и если оставить так, т.е. "my-article.html", то выджеты не выводятся на страницу. приходится вручную дописывать "articles" , т.е. маска должна быть в виде articles/my-article.html.
У меня на Redactor такой проблемы не заметил:
string_ucfirst - Преобразует первый символ строки в верхний регистр
string_strip_br - Вырезает теги <br> из строки
Пробую передвигать виджеты. Получаю следующее:
1. Было
2. Стало:
Ничего не делал - просто передвинул один блок выше.
1.
2.
При этом нет виджета про динамику регистраций и тд.
Скрипт системный из коробки - templates/default/js/core.js
Косячить начинает при включенной опции "Объединять JS-файлы"
Если отключить - все ок становится.
1. Нельзя проскроллить до конца всех списков
2. Не выбирается никакой из списков.
На сайте кроме видео других ТК нет, поэтому проверить нигде больше это поле не могу.
Зачем вы оставляете комментарий в новости 2.12.1, а пишите об обновлении 2.12.0, где в первой строке ваша проблема описана как исправленная, а в комментариях в новости для 2.12.0 как минимум несколько раз описаны решения.
Обновился дальше. Заработало.
если это не баг, то прошу тнуть носом где править?
Должно быть так
Проверила на чистой установке 2.12.1, проблема действительно есть.
Подскажите, пожалуйста, как можно исправить?
Добавил пару строчек в \system\controllers\contentfrontend.php
1 Не срабатывают аккордеоны в типах контента при сжатии HTML и JS
2 Авто установка так же не работает, при сжатии HTML и JS пишет Соединение с ftp://// Ошибка подключения. Проверьте правильность хоста и порта
Других критических ошибок не обнаружил пока
Проверьте у себя ребята как ведет себя установка и типы контента при сжатии HTML и JS
Шаблон boxed сжатие работает нормально.
В типах контента тоже все нормально открывается-закрывается.
В дефолте проблемы нет.
И/или очистите кэш сжатия js.
Fuze. спасибо!
https://www.loom.com/share/5d1a393f79be4196964bd049b2027cea
UserPay отключил
Проверю на чистом еще без дополнений и отпишусь
Я бы их поменял на /*====================================================================*/
Проверьте свои файлы таким образом:
Если никнейм пользователя состоит из 2-х слов то генератор генерирует пробел между ними и в итоге этот url не читается браузерами и выдаёт ошибку 404, при просмотре записи.
В прошлых версиях до 2.11 всё было нормально с этим генерировался не пробел, а тире.
Ошибка в запросе БД:
Неизвестный столбец 'page_id' в 'where clause'
DELETE FROM cms_widgets_bind WHERE (page_id = '169')
У меня стоит пресет: ширина - 500, высота - 338, Обрезать строго по размеру - да, качество - 85.
Загружаю картинку размером 1280*854 https://cloud.mail.ru/public/3ZFN/4cMnBZ5TP
На выходе получаю изображение 500*500 https://cloud.mail.ru/public/28Sd/XVegaHp2s
Не понимаю, в чем причина.
На сколько я понимаю, изображение должно уменьшиться пропорционально пресету и стать 507*338, а далее обрезаться до указанного размера 500*338 из центра изображения.
На выходе ожидается получить изображение https://cloud.mail.ru/public/2yNB/3BzXLs1ht
Помогите...
было: $idest = imagecreatetruecolor($maxwidth, $maxwidth);
изменил на: $idest = imagecreatetruecolor($maxwidth, $maxheight);
Видимо опечатка в файле.
Изображение обрезается нормально, но справа черная полоса, не могу понять причину.
https://cloud.mail.ru/public/5M7t/2BA1kY9Ht
imagecopyresampled($idest, $isrc, 0, 0, round(( max($new_width, $new_height) - min($new_width, $new_height) ) / 2), 0, $maxwidth, $maxheight, $maxwidth * ($new_height / $maxheight), $new_height);
Но здесь мозг рвется...
2. Функцию img_resize замените полностью на
1. Пресет: 500*338, строгая обрезка - нет.
Загрузил фото 1280*854, на выходе получил 500*333. Ожидал 500*334, т.к. при расчете получается 333,59375 пикселей, при округлении 334, но это мелочь. Скрипт отработал хорошо, получил ожидаемое изображение.
2. Пресет: 500*338, строгая обрезка - да.
Загрузил фото 1280*854, на выходе получил 500*338. Скрипт отработал хорошо, получил ожидаемое изображение.
3. Пресет: 500*338, строгая обрезка - нет.
Загрузил фото 800*800, на выходе получил 338*338. Ожидал 500*500, скрипт ведь должен по бОльший стороне уменьшать?
4. Пресет: 500*338, строгая обрезка - да.
Загрузил фото 800*800, на выходе получил 500*338. Скрипт отработал хорошо, получил ожидаемое изображение.
5. Пресет: 500*338, строгая обрезка - нет.
Загрузил фото 853*1150, на выходе получил 250*338. Ожидал 500*674, скрипт ведь должен по бОльший стороне уменьшать?
6. Пресет: 500*338, строгая обрезка - да.
Загрузил фото 853*1150, на выходе получил 500*338. Скрипт отработал хорошо, получил ожидаемое изображение.
7. При загрузке фото размером меньше, чем пресет, масштабирование не происходит. Отлично.
8. Нет обработки ошибок при указании в пресете только одного параметра (ширина или высота) и строгая обрезка - да.
Фото не обрабатывается, что логично, но многие не поймут причину.
Когда указывал ширину, но не указывал высоту и строгая обрезка - да, то ошибка тоже выходила, хотя в функции img_resize стоит $maxheight = 160, как значение по умолчанию. Он разве не должен его взять? Но это не суть, нужно просто "защиту от дурака сделать". В редактировании пресета стоит проверка, но на странице "списка пресета" можно активировать строгую обрезку при отсутствии одного из значений.
Перекачайте еще раз, проверьте, должно быть всё нормально, а лучше вообще проверить на чистой версии с GitHub.
На других сайтах обновился, но вот в одном никак
Подскажите решение. Спасибо.