В этом релизе обновлены до последних версий:
Открыть файл /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
- 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.