Здравствуйте, сообщество InstantCMS!
Этот релиз задумывался как легкое исправление существующих неточностей, но, как водится, все затянулось на полноценную минорную версию ;-)
Итак, основные изменения, исправления и улучшения в этой версии InstantCMS.
Обновление сторонних библиотек
В этом релизе обновлены до последних версий:
- PHP библиотека Phpmailer;
- Chartjs;
- jQuery;
- jQuery UI;
- jQuery Dynatree;
- jQuery MiniColors;
- wysiwyg редактор Redactor (также в этом редакторе добавлено управление таблицами и вставка видео по ссылке с Facebook).
Добавлены библиотеки:
- Chosen — для стилизации и удобного выбора в select тегах форм. Также эта библиотека используется в выборе дополнительных категорий, который стал существенно удобнее;
- PHP библиотека Mobile Detect Library — для определения устройства пользователя.
Изменения в виджетах
- Все виджеты теперь привязываются к шаблонам;
- Виджеты можно отключать, не убирая со схемы;
- Новые опции в виджете "Облако тегов";
- Схемы виджетов переключаются в админке налету, без смены шаблоны в настройках;
- Во всех виджетах во вкладке "Дизайн" теперь шаблоны выбираются из выпадающего списка доступных;
Изменения в шаблонах и полное управление мобильностью сайта
- Теперь можно задавать свои шаблоны для админки, мобильных устройств, планшетов и ПК. По умолчанию основной шаблон для всего. Движок для каждого посетителя один раз определяет его тип устройства и запоминает значение в куках. После чего класс определения устройства по умолчанию не подключается. В layout шаблона доступна переменная $device_type с типом устройства;
Правки безопасности
- Изменен алгоритм функции string_random (была сложно реализуемая уязвимость);
- При загрузке дополнений и последующему вводу ftp реквизитов добавлена опция, позволяющая не сохранять введенные данные в сессии. По умолчанию сохранение реквизитов в сессии отключено;
- Типизация всех входящих данных;
- Исправлены, дополнены все функции валидации в контроллере;
- Показ вероятных предупреждений PHP при выключенном режиме отладки теперь отключен (error_reporting) — т.е. гипотетическое "раскрытие путей" теперь невозможно;
- Рефер (getBackURL контроллера) теперь определяется безопасно и гарантировано принадлежит текущему сайту.
SEO улучшения
- Добавлена поддержка стоп-слов для каждого из языков. Теперь в директории /system/languages/язык/ есть файл stopwords.php, к котором перечислены все стоп слова. Они вырезаются при формировании перечисления самых часто используемых слов из текста. Например, этот механизм выполняется при формировании ключевых слов страницы (meta keywords) и при формировании поискового запроса внутреннего поиска InstantCMS;
- Вывод meta description добавлен при просмотре профилей, при просмотре групп, фотографий;
- Ссылки на несуществующие страницы при пагинации отдают 404 ошибку;
- Вывод даты теперь осуществляется тегом time с указанием атрибута datetime в формате ISO 8601.
Изменения в полях форм
- Конечно же, мы не могли не сделать полноценное поле выбора города. Теперь это поле называется "Местоположение". При помощи него можно создавать как отдельные поля для выбора страны/области/города, так и создать группу полей, объединив их между собой для последовательного выбора. Поля могут использоваться в фильтре и соответственно можно выполнять поиск отдельно по стране/области/городу. Для типа поля "город" работает автоматическое определение местоположения — страна — область — город;
- В настройки полей добавлена опция доступа "Показывать в фильтре". Теперь показ поля в фильтре может ограничиваться этой опцией;
- Для полей профилей добавлена опция "Показывать в профиле";
- В полях добавления изображений добавлена возможность импорта по ссылке;
- HTML5 валидация форм (разумеется серверную валидацию никто не убирал);
- Для полей типа string и text при вводе ведется подсчет символов. В настройки этих полей включены соответствующие опции. По умолчанию это включено при вводе SEO данных;
- У поля "Список" все теги select унифицированы и стилизованы, но самое главное, что теперь при больших списках выбирать нужно значение существенно удобнее;
- GIF изображения теперь стилизуются при выводе отдельно с возможностью просмотра анимации при клике (должно быть включено сохранение оригиналов);
- В поле "Возраст" добавлена опция "Считать от указанной даты";
- В поле "Список: мультивыбор" добавлена опция "Максимальное количество пунктов списка" — т.е. вы теперь сможете делать списки более 64 пунктов;
- В поле "Изображения" добавлена опция "Выделять первое изображение в записи";
Изменения в типах контента
- В категории контента добавлена опция "Группы, участники которой могут добавлять записи в эту категорию";
- Более удобный выбор дополнительных категорий, при этом старый механизм также будет работать;
- Везде, где только было разумно, добавлены опции количества записей в списках;
- В свойства категорий добавлены поля: список мультивыбор, чекбокс, цвет;
Изменения в профилях пользователей
- Для табов профилей пользователей добавлены опции доступа: "Показывать вкладку только владельцу профиля", "Показывать группам", "Не показывать группам";
- В компонент "Регистрация и авторизация" добавлены опции "Авторизовать пользователя сразу после регистрации" и опции что делать после первой/последующих авторизации на сайте;
- В админке в списке пользователей теперь показывается информация о статусе (онлайн/последний визит), последний IP с возможностью поиска юзеров с таким же ip, подсветка и поиск администраторов;
- При разлогивании возвращает на предыдущую страницу.
Другие изменения
- В редакторе markItUp добавлена кнопка добавления видео по ссылке с Facebook. Собственно, тег будет работать в любом редакторе, если для этого типа поля включен типограф;
- Все вставляемые видео (VK, YouTube, Vimeo и другие, вставляемые через iframe при включенном типографе) теперь адаптивные;
- По умолчанию опция "Показывать капчу после неудачной авторизации" компонента "Регистрация и авторизация" выключена;
- Для каждого языка теперь задается необходимая локаль (setlocale);
- Корректная работа remap для типов контента, плюс корректный редирект со старого адреса;
- Автоопределение языка установки в зависимости от локализации браузера;
- Исправлены все известные нам ошибки.
Владельцам премиум компонентов
Для InstantVideo
Открыть файл /system/languages/ru/controllers/video/video.php и удалить строку define('LANG_BY_DEFAULT', 'По-умолчанию');
Открыть файл /system/fields/setcoordinates.php и добавить строку public $var_type = 'string'; после строки public $allow_index = false;
Открыть файл /system/fields/ivideo.php и добавить строку public $var_type = 'string'; после строки public $sql = 'TEXT NULL DEFAULT NULL';
Или же скачать обновленный архив в своем профиле на сайте instantvideo.ru и просто заменить указанные файлы.
Для InstantMaps
Открыть файл /system/fields/coordinates.php и добавить строку public $var_type = 'string'; аналогично как описано выше.
Применить это исправление, правки файла /templates/default/js/modal.js
Вниманию разработчиков
- Мы продвинулись еще на шаг к простоте написания дополнений. Теперь, если того не требует задача, необязательно создавать шаблон формы настроек компонентов и шаблон списка прав доступа. Но при этом мы сохранили функциональность использования своих шаблонов. Этот момент мы уже описали в документации;
- Для классов полей добавлено новое свойство $var_type. Оно может принимать значения boolean | integer | double | string | array | object | resource. Свойство позволяет автоматически типизировать входящие переменные из форм от пользователя. Обратите внимание, это свойство не для полноценной валидации входящих переменных (полноценной валидацией занимается контроллер). В большинстве случаев значения могут быть integer | string | array;
- Новое (чтобы исключить коллизии) именование класса опций шаблона, при этом классы опций со старым названием будут работать, однако поддержка такой совместимости будет убрана через пару релизов;
- В поле "fieldListMultiple" добавлена возможность использования generator;
- Для правил доступа можно писать подписи, используя константы по принципу: LANG_RULE_{RULE_CONTROLLER}_{RULE_NAME}_HINT, где RULE_CONTROLLER — название контроллера, а RULE_NAME — название правила;
- В контроллерах доступно свойство lock_explicit_call, которое если установлено в true, запрещает прямой вызов экшенов;
- Новый, удобный механизм работы с системными классами и объектами из контроллеров;
- Экспериментальная возможность переопределять текущий язык через сессию — $_SESSION['language'];
- Авто определение протокола — http или https. Протокол доступен через cmsConfig::get('protocol');
- Для формы опций поля вы теперь можете создавать js файл, разместив его по пути /templates/ШАБЛОН/js/fields/ИМЯ_ПОЛЯ.js;
- Для списка контроллеров используются их языковые константы, если таковые есть;
- Новые хуки: wall_before_list, parse_text, wall_before_update, wall_before_add, profile_edit_menu, profiles_list_filter, profiles_datasets, publish_delayed_content, comments_datasets, comment_before_update, comment_before_add.
В шаблонах в основном все изменения носят либо эстетический характер, либо дополняющий. Вам нужно сделать мерж (например так]) css файлов, чтобы оценить изменения (например вот так). Изменены практически все файлы шаблонов полей. Но опять же, большинство изменений не носят фатальный характер (т.е. все должно продолжать работать, но не будет новых функций), за исключением поля "Город" или в новой версии оно уже называется "Местоположение".
Как установить обновление
Перед началом обновления обязательно сделайте резервную копию своего сайта и дамп базы данных. Обновляться лучше на копии сайта, поднятом локально на ПК или иным подобным способом. Мы не несем никакой ответственности за любые потери данных, произошедшие в результате неправильных действий при обновлении.
Отключите кеширование в настройках сайта.
Если вы используете свой шаблон и в нем есть файлы, присутствующие в пакете обновления, то обновите их.
При возникновении "белого экрана" категорически читать здесь.
Для тех, у кого свой шаблон мы подготовили статью как быть, если в обновлении CMS есть изменения в шаблоне, рекомендуем к прочтению.
Автоматическая установка
Воспользуйтесь функцией "Проверить обновления" в панели управления InstantCMS 2.
Система сама обнаружит обновление, предложит скачать его и установить.
Для установки потребуется указать реквизиты для доступа по FTP.
Ручная установка
Убедитесь, что вы используете InstantCMS 2.4.0 (версию можно посмотреть внизу любой страницы в админке).
- Загрузите архив с обновлением.
- Перейдите в панель управления сайтом;
- Перейдите в раздел компоненты;
- Нажмите установить пакет дополнения;
- Сверните окно браузера;
- Все содержимое папки package из архива обновления, скаченного в п.1 загрузите в корень вашего сайта;
- Вернитесь в свернутое в п. 5 окно браузера, нажмите F5 на клавиатуре и выберите архив, который вы скачали в п.1;
- На странице «Информация о пакете» нажмите установить;
- На странице ввода реквизитов ftp поставьте чекбокс "Пропустить этот шаг" и нажмите "Установить";
- Обновление завершено.
Заключение
Спасибо всем [Evanescence, mafru, Atid — Gorec, Loadырь, lokanaft, bitbybit — кого забыл, не обижайтесь], кто участвовал в разработке на GitHub, присылал Pull requests, сообщал об ошибках и активно тестировал.
Спасибо, что выбираете InstantCMS.
Поддержите проект
Вы можете стать официальным спонсором или отправить донат, в том числе в криптовалюте. Вы также здорово поможете, если поставите звезду на GitHub, для нас это очень важно.
В компонент "Регистрация и авторизация" добавлены опции "Авторизовать пользователя сразу после регистрации" и опции что делать после первой/последующих авторизации на сайте; - это очень удобно!!!
Для InstantVideo
Открыть файл /system/languages/ru/controllers/video/video.php и удалить строку define('LANG_BY_DEFAULT', 'По-умолчанию');
Открыть файл /system/fields/setcoordinates.php и добавить строку public $var_type = 'string'; после строки public $allow_index = false;
Открыть файл /system/fields/ivideo.php и добавить строку public $var_type = 'string'; после строки public $sql = 'TEXT NULL DEFAULT NULL';
Или же скачать обновленный архив в своем профиле на сайте instantvideo.ru и просто заменить указанные файлы.
Для InstantMaps
Открыть файл /system/fields/coordinates.php и добавить строку public $var_type = 'string'; аналогично как описано выше.
На первый взгляд мапс работает и без правки файла, но наверное какие то подводные камню имеются (ждем обновленный файл от r2)
Еще есть проблема после обновления файла modal.js, перестает подгружаться карта при редактировании объекта.
Разработчику уже отписался по данной проблеме.
А конкретно об instantcms могу сказать следующие,сама система предполагает : грамотность!В свое время английский инженер разработал процессор zilog ,тогда еще корпорация ibm где то летала на крайних местах рейтинга.В нем 16 килобайт ОЗУ могут сделать так многое,что до сих пор его применяют в телефонах на АОН ,в денди- применяли-сега,я не полезу за точной информацией в интернет,смысл?
InstantCMS только повзрослел...И ВСЕ ЕЩЕ ВПЕРЕДИ!
Спасибо за такую приятную новость перед выходными!!!
Эмоции только положительные, отличная работа, спасибо!
Есть, конечно, мелкие потери в гибкости из-за "стандартизации" вывода контента, но плюсы новой модели перевешивают в разы.
Вот жаль только, базы областей и городов всё ещё устаревшие лет на 15 минимум (это хорошо видно по структуре Казахстана, например).
Для "Соцсети имени Пети Мокина" это, конечно, по барабану, но для более-менее ответственных проектов (особенно, если хотя бы косвенно связано с госучреждениями, как, например, городской или студенческий молодёжный портал) - фатально.
Хотя я 1.5-2 года назад дал всю необходимую информацию для её актуализации, причём полностью готовые дампы в нескольких форматах и на нескольких языках. Стоит надеяться на обновление?
Пользуясь случаем хочу узнать: вообще реализация простого текстового описания для категорий планируется когда-нибудь?
Еще бы форум.
Пожалуйста добавьте функцию добавление обновления гостям. Плиииз.
А также всем, кто помогал!
Респект! Молодцы ребята!
Администраторы +2481 Fuze 28815
Администраторы +1115 R2 28498
НЕ позволяют мне выразить свое одобрение позитивным плюсом, тогда когда я считаю нужным это сделать.
Не пора ли, ввести свободную форму поощрения наших Уважаемых Разработчиков Системы ?
Рубеж разработчиков и пользователей на официальном сайте одинаков.
Я хочу поставить + а не могу.
Знаю что есть. Тут бы найти что поесть!
репостами в соцсетях;
при случае рекомендациями в выборе CMS;
написать обзор CMS на каком-нибудь популярном сайте, указав только, что вы не разработчик CMS;
рекомендовать премиум компоненты, т.к. от их продаж зависит "живучесть" движка в целом (других инвестиций нет);
любое другое на ваш выбор.
Но самое главное в таких рекомендациях и такой помощи не переборщить, в частности ни в коем случае нельзя писать "все CMS фигня, а вот InstantCMS крутая вещь". Важно описать положительные стороны без перехода "на личности".
Респект разработчикам!!!
Кстати, идея для разработчиков, запилите кто такой компонент :)
Вопрос к разработчикам: Нужно ли обновлять код (InstantMaps) в templates/default/content/places_item.tpl.php ?
Посмотрел что во всех файлах в папке с контентом обновлен этот код:
&& $item[$field['name']] !== '0'
Чтобы цифра ноль отображалась. Можете добавить, на работу в целом это не влияет.
Возникла проблема! После обновления сайт не грузится вообще, зашел на сервер, а там база с ума сходит, запустилось несколько миллионов процессов MySql. Помогла перезагрузка MySql, но нагрузка растет, появилась проблема после установки обновления
До обновления новости
После обновления той де новости
А приведенные ниже скриншоты вообще говорят о снижении нагрузки. Кроме того, нагрузка показывается для сервера в целом, а не для конкретного сайта.
надоело ждать ответа 5 дней)))))
То, что выделено зелененьким - добавить.
Ошибка выскочила после отметки "Запомнить реквизиты ftp в сессии" на странице установки компонентов.
Дальше пока не заглядывал.
Я как раз мучился над тем, чтобы прикрутить Chosen и зависимые select'ы, а тут бац и все готово! Хотя обнаружил, что Select2 лучше чем Chosen для серверной работы.
В принципе, вы можете по аналогии заменить текущее решение на Select2.
Из папки templates\default\assets\ui скопировал все содержимое в свой шаблон. Скопировал все так как эти файлы не переделывал под себя. Если их затрагивали, то смержить надо
Попробуй, может поможет
Пожалуйста подскажите как в админке - пользователи, отменить поиск одинаковых ip?
Из любопытства нажал на искать похожие ip, и теперь только пользователь с этим ip и виден, как сбросить этот поиск? )))
заменить
$is_html_empty_avatar=false
на
$is_html_empty_avatar=true
Единственное:
1. Буква маленькая на странице юзера. - http://joxi.ru/9E2pYKxf85eOAY
2. И на главной все равно дефолтные. - http://joxi.ru/lJ2b0bQivjEXr6
Сайт www.site пока не может обработать этот запрос."
Кто-нибудь подскажет, как в таком случае правильно обновиться? Полагаю, можно просто заменить файлы и выполнить запрос в бд.
У кого такое было, куда капнуть
Хотя другие компоненты устанавливались и с теми что были
Еще раз спасибо
http://demo.instantcms.ru/users/1 - По нажатию на ответ. (http://prntscr.com/arnsah).
https://i.gyazo.com/d1b56e6be43855e25028e9e0e4b9836b.png
2. Встречал на форуме сообщение Fuze, что скоро 2.5.1 выйдет: обновляться прийдётся последовательно или будет возможность мигрировать с 2.4.0 на 2.5.1?
2. Последовательно. Сначала в админке будет предложение обновиться до 2.5.0, после обновления до 2.5.1. В 2.5.1 правок минимум - только правка ошибок и неточностей.
https://github.com/instantsoft/icms2/blob/803ede7a2fe13371ed47d65107b29fd25c06b8d4/templates/default/js/datagrid.js#L26
событие search в firefox не работает.
Может что получится)))) должны появиться категории))))
При открытии этого файла выходит зашифрованный код, являемся покупателями instantmaps.
Обновился до 2.5.0 и 2.5.1 за один день, установил обновление, отправленное вами на почту (Инстантвидео)
После этого, вышеперечисленное всеравно нужно делать?
Файл /system/controllers/admin/actions/content_cats_order.php
найти