Здравствуйте, сообщество 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.
Реклама #
My-InstantCMS.Ru 8 лет назад #
Вячеслав 8 лет назад #
Loadырь 8 лет назад #
MiMoHOD 8 лет назад #
Fuze 8 лет назад #
Вячеслав 8 лет назад #
Raiden 8 лет назад #
Александр 8 лет назад #
В компонент "Регистрация и авторизация" добавлены опции "Авторизовать пользователя сразу после регистрации" и опции что делать после первой/последующих авторизации на сайте; - это очень удобно!!!
Romanovcmc 8 лет назад #
Владимир Савенко ✝️ 8 лет назад #
Fuze 8 лет назад #
Для 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'; аналогично как описано выше.
iWeb 8 лет назад #
Владимир Савенко ✝️ 8 лет назад #
На первый взгляд мапс работает и без правки файла, но наверное какие то подводные камню имеются (ждем обновленный файл от r2)
lesterkey 8 лет назад #
solntsev 8 лет назад #
Еще есть проблема после обновления файла modal.js, перестает подгружаться карта при редактировании объекта.
Разработчику уже отписался по данной проблеме.
Donto 8 лет назад #
Fuze 8 лет назад #
Birles 8 лет назад #
Fuze 8 лет назад #
kirkr 8 лет назад #
Birles 8 лет назад #
Birles 8 лет назад #
Val 8 лет назад #
Вячеслав 8 лет назад #
Birles 8 лет назад #
Вячеслав 8 лет назад #
А конкретно об instantcms могу сказать следующие,сама система предполагает : грамотность!В свое время английский инженер разработал процессор zilog ,тогда еще корпорация ibm где то летала на крайних местах рейтинга.В нем 16 килобайт ОЗУ могут сделать так многое,что до сих пор его применяют в телефонах на АОН ,в денди- применяли-сега,я не полезу за точной информацией в интернет,смысл?
InstantCMS только повзрослел...И ВСЕ ЕЩЕ ВПЕРЕДИ!
Birles 8 лет назад #
Raiden 8 лет назад #
Val 8 лет назад #
Вячеслав 8 лет назад #
Вячеслав 8 лет назад #
Zau4man 8 лет назад #
mic 8 лет назад #
Sbsv 8 лет назад #
Def 8 лет назад #
Спасибо за такую приятную новость перед выходными!!!
Fuze 8 лет назад #
Def 8 лет назад #
Петрмаг 8 лет назад #
Fuze 8 лет назад #
NA 8 лет назад #
Эмоции только положительные, отличная работа, спасибо!
Есть, конечно, мелкие потери в гибкости из-за "стандартизации" вывода контента, но плюсы новой модели перевешивают в разы.
Вот жаль только, базы областей и городов всё ещё устаревшие лет на 15 минимум (это хорошо видно по структуре Казахстана, например).
Для "Соцсети имени Пети Мокина" это, конечно, по барабану, но для более-менее ответственных проектов (особенно, если хотя бы косвенно связано с госучреждениями, как, например, городской или студенческий молодёжный портал) - фатально.
Хотя я 1.5-2 года назад дал всю необходимую информацию для её актуализации, причём полностью готовые дампы в нескольких форматах и на нескольких языках. Стоит надеяться на обновление?
SEOrigin 8 лет назад #
Пользуясь случаем хочу узнать: вообще реализация простого текстового описания для категорий планируется когда-нибудь?
Fuze 8 лет назад #
mic 8 лет назад #
SergeyD 8 лет назад #
BoAnRo 8 лет назад #
Stecc 8 лет назад #
Еще бы форум.
R161Net 8 лет назад #
fanat21 8 лет назад #
Пожалуйста добавьте функцию добавление обновления гостям. Плиииз.
Игорь ФИН 8 лет назад #
Remi 8 лет назад #
Fuze 8 лет назад #
Remi 8 лет назад #
Fuze 8 лет назад #
skewes 8 лет назад #
А также всем, кто помогал!
Респект! Молодцы ребята!
Алексей Т 8 лет назад #
Старый балбес 8 лет назад #
Администраторы +2481 Fuze 28815
Администраторы +1115 R2 28498
НЕ позволяют мне выразить свое одобрение позитивным плюсом, тогда когда я считаю нужным это сделать.
Не пора ли, ввести свободную форму поощрения наших Уважаемых Разработчиков Системы ?
Fuze 8 лет назад #
Старый балбес 8 лет назад #
Рубеж разработчиков и пользователей на официальном сайте одинаков.
Я хочу поставить + а не могу.
Знаю что есть. Тут бы найти что поесть!
Fuze 8 лет назад #
репостами в соцсетях;
при случае рекомендациями в выборе CMS;
написать обзор CMS на каком-нибудь популярном сайте, указав только, что вы не разработчик CMS;
рекомендовать премиум компоненты, т.к. от их продаж зависит "живучесть" движка в целом (других инвестиций нет);
любое другое на ваш выбор.
Но самое главное в таких рекомендациях и такой помощи не переборщить, в частности ни в коем случае нельзя писать "все CMS фигня, а вот InstantCMS крутая вещь". Важно описать положительные стороны без перехода "на личности".
Владимир Савенко ✝️ 8 лет назад #
Oleg_z75 8 лет назад #
Респект разработчикам!!!
Василич 8 лет назад #
Кстати, идея для разработчиков, запилите кто такой компонент :)
Алексей Т 8 лет назад #
Raiden 8 лет назад #
neoplanet 8 лет назад #
Вопрос к разработчикам: Нужно ли обновлять код (InstantMaps) в templates/default/content/places_item.tpl.php ?
Посмотрел что во всех файлах в папке с контентом обновлен этот код:
Fuze 8 лет назад #
&& $item[$field['name']] !== '0'
Чтобы цифра ноль отображалась. Можете добавить, на работу в целом это не влияет.
neoplanet 8 лет назад #
SALIK 8 лет назад #
solntsev 8 лет назад #
SALIK 8 лет назад #
teego 8 лет назад #
Возникла проблема! После обновления сайт не грузится вообще, зашел на сервер, а там база с ума сходит, запустилось несколько миллионов процессов MySql. Помогла перезагрузка MySql, но нагрузка растет, появилась проблема после установки обновления
teego 8 лет назад #
До обновления новости
После обновления той де новости
Fuze 8 лет назад #
А приведенные ниже скриншоты вообще говорят о снижении нагрузки. Кроме того, нагрузка показывается для сервера в целом, а не для конкретного сайта.
Donto 8 лет назад #
Dmitry 8 лет назад #
Dmitry 8 лет назад #
надоело ждать ответа 5 дней)))))
Fuze 8 лет назад #
То, что выделено зелененьким - добавить.
Jestik 8 лет назад #
Fuze 8 лет назад #
Сергей Сергеевич 8 лет назад #
Ошибка выскочила после отметки "Запомнить реквизиты ftp в сессии" на странице установки компонентов.
Дальше пока не заглядывал.
Fuze 8 лет назад #
Сергей Сергеевич 8 лет назад #
Beatboxer 8 лет назад #
Я как раз мучился над тем, чтобы прикрутить Chosen и зависимые select'ы, а тут бац и все готово! Хотя обнаружил, что Select2 лучше чем Chosen для серверной работы.
Fuze 8 лет назад #
В принципе, вы можете по аналогии заменить текущее решение на Select2.
Dorimen 8 лет назад #
Fuze 8 лет назад #
Dorimen 8 лет назад #
Fuze 8 лет назад #
Soul 8 лет назад #
Василий 8 лет назад #
Василий 8 лет назад #
GluK 8 лет назад #
Василий 8 лет назад #
Василий 8 лет назад #
vgorode 8 лет назад #
Василий 8 лет назад #
Из папки templates\default\assets\ui скопировал все содержимое в свой шаблон. Скопировал все так как эти файлы не переделывал под себя. Если их затрагивали, то смержить надо
Попробуй, может поможет
Алексей 8 лет назад #
Fuze 8 лет назад #
Андрей 8 лет назад #
Fuze 8 лет назад #
taleh 8 лет назад #
Birles 8 лет назад #
Birles 8 лет назад #
Fuze 8 лет назад #
Birles 8 лет назад #
Dorimen 8 лет назад #
My-InstantCMS.Ru 8 лет назад #
BoAnRo 8 лет назад #
BoAnRo 8 лет назад #
My-InstantCMS.Ru 8 лет назад #
Khushruz 8 лет назад #
GluK 8 лет назад #
Def 8 лет назад #
Fuze 8 лет назад #
Александр Сергеевич 8 лет назад #
vgorode 8 лет назад #
Пожалуйста подскажите как в админке - пользователи, отменить поиск одинаковых ip?
Из любопытства нажал на искать похожие ip, и теперь только пользователь с этим ip и виден, как сбросить этот поиск? )))
Fuze 8 лет назад #
vgorode 8 лет назад #
MiMoHOD 8 лет назад #
kdv1978 8 лет назад #
Sergon 8 лет назад #
Fuze 8 лет назад #
заменить
$is_html_empty_avatar=false
на
$is_html_empty_avatar=true
Sergon 8 лет назад #
Андрей 8 лет назад #
Birles 8 лет назад #
Андрей 8 лет назад #
My-InstantCMS.Ru 8 лет назад #
Андрей 8 лет назад #
Андрей 8 лет назад #
Fuze 8 лет назад #
Андрей 8 лет назад #
Fuze 8 лет назад #
Андрей 8 лет назад #
Fuze 8 лет назад #
Андрей 8 лет назад #
Единственное:
1. Буква маленькая на странице юзера. - http://joxi.ru/9E2pYKxf85eOAY
2. И на главной все равно дефолтные. - http://joxi.ru/lJ2b0bQivjEXr6
Андрей 8 лет назад #
Олег Васильевич я 8 лет назад #
Андрей 8 лет назад #
Андрей 8 лет назад #
AndroS 8 лет назад #
Сайт www.site пока не может обработать этот запрос."
Кто-нибудь подскажет, как в таком случае правильно обновиться? Полагаю, можно просто заменить файлы и выполнить запрос в бд.
Fuze 8 лет назад #
AndroS 8 лет назад #
Fuze 8 лет назад #
Никита 8 лет назад #
У кого такое было, куда капнуть
My-InstantCMS.Ru 8 лет назад #
Fuze 8 лет назад #
Никита 8 лет назад #
Хотя другие компоненты устанавливались и с теми что были
Еще раз спасибо
Джехутимери 8 лет назад #
http://demo.instantcms.ru/users/1 - По нажатию на ответ. (http://prntscr.com/arnsah).
Fuze 8 лет назад #
saytovik 8 лет назад #
AndroS 8 лет назад #
Владимир Савенко ✝️ 8 лет назад #
AndroS 8 лет назад #
Владимир Савенко ✝️ 8 лет назад #
MAKS-IT 8 лет назад #
Fuze 8 лет назад #
MAKS-IT 8 лет назад #
AndroS 8 лет назад #
Sergon 8 лет назад #
Fuze 8 лет назад #
Василий 8 лет назад #
https://i.gyazo.com/d1b56e6be43855e25028e9e0e4b9836b.png
Birles 8 лет назад #
Василий 8 лет назад #
Андрей 8 лет назад #
Василий 8 лет назад #
DELLитант 8 лет назад #
Василий 8 лет назад #
DELLитант 8 лет назад #
Олег Васильевич я 8 лет назад #
Fuze 8 лет назад #
2. Последовательно. Сначала в админке будет предложение обновиться до 2.5.0, после обновления до 2.5.1. В 2.5.1 правок минимум - только правка ошибок и неточностей.
Олег Васильевич я 8 лет назад #
rudnin 8 лет назад #
taleh 8 лет назад #
https://github.com/instantsoft/icms2/blob/803ede7a2fe13371ed47d65107b29fd25c06b8d4/templates/default/js/datagrid.js#L26
событие search в firefox не работает.
Birles 8 лет назад #
Donto 8 лет назад #
Birles 8 лет назад #
Андрей 8 лет назад #
Birles 8 лет назад #
kdv1978 8 лет назад #
Birles 8 лет назад #
kdv1978 8 лет назад #
Donto 8 лет назад #
Может что получится)))) должны появиться категории))))
Donto 8 лет назад #
Birles 8 лет назад #
Donto 8 лет назад #
noszone 8 лет назад #
При открытии этого файла выходит зашифрованный код, являемся покупателями instantmaps.
F_a_R_i_D 8 лет назад #
Обновился до 2.5.0 и 2.5.1 за один день, установил обновление, отправленное вами на почту (Инстантвидео)
После этого, вышеперечисленное всеравно нужно делать?
Fuze 8 лет назад #
F_a_R_i_D 8 лет назад #
Ne OS 8 лет назад #
Файл /system/controllers/admin/actions/content_cats_order.php
найти
Def 8 лет назад #
skewes 8 лет назад #