InstantCMS — это программное обеспечение, предназначенное для создания, организации структуры, редактирования веб-сайта и управления им. Если говорить обывательским языком, то это «движок сайта», где любая страница генерируется динамически, а управляется всё через удобную админку.
В связи с тем, что сейчас достаточно распространены такие сервисы, как CloudFlare, определение реального ip адреса посетителя становится проблемой. Поэтому для удобства мы дали возможность задавать любой ключ массива $_SERVER, где в вашем случае может храниться реальный ip посетителя. Например, все для того же CloudFlare это HTTP_CF_CONNECTING_IP.
Основная причина данной доработки это то, что предыдущая схема учета приватных записей вызывала большую нагрузку на базу данных, особенно, если записей много. Кроме этого, измененная схема показа приватных записей в общих списках более эффективна для конечных пользователей.
Еще более расширенное управление приватностью (по группам) как в самих записях, так и в категориях будет в следующем релизе, который также намечен на ближайшее время, к сожалению, не успели сделать это до нового года.
О реализации механизма удаления в своих компонентах вы можете прочитать на этой странице.
Опция «Кешировать ленту» полноценно работает, для каждой ленты можно выбрать шаблон. В комплекте два шаблона: обычный, какой был раньше и шаблон согласно требований Яндекс для RSS лент. Обе ленты полностью валидные и проходят все проверки.
Раньше полнотекстовый индекс не создавался в искомых полях. Теперь по умолчанию создан индекс на поле заголовка и движок ищет совпадения в названиях. Однако, если вы желаете, чтобы cms искала и в других полях записей, а поддерживаются записи типа «Текст» и «Текст HTML», то в настройках поля необходимо поставить чекбокс «Участвует в полнотекстовом поиске». После его включения индекс будет перестроен и в поиске будет учитываться заданное поле. Как следствие этого, производительность поиска увеличилась в десятки раз, если записей очень много.
Кроме всего прочего, была добавлена поддержка OpenSearch.
Обновленный установщик CMS
При установке теперь можно задать тип движка базы данных (MyISAM или InnoDB) и опционально установить CMS без демо данных. Также мы дополнили соответствующий раздел в документации.Новые опции в общих настройках сайта
Теперь можно включать или выключать глубиномер, ограничивать по ip доступ в админку, выбирать HTML-редактор по умолчанию, который будет показан, например, в текстовом виджете, в настройках группы и так далее.В связи с тем, что сейчас достаточно распространены такие сервисы, как CloudFlare, определение реального ip адреса посетителя становится проблемой. Поэтому для удобства мы дали возможность задавать любой ключ массива $_SERVER, где в вашем случае может храниться реальный ip посетителя. Например, все для того же CloudFlare это HTTP_CF_CONNECTING_IP.
Новая, информативная главная страница админки
На главной странице теперь показана удобная статистика в виде диаграммы, где вы сможете узнать когда, что и сколько было добавлено на вашем сайте. Технически все реализовано на хуках, поэтому в своем компоненте вы можете дополнить эту статистику. Кроме этого, добавлен хук на вывод других блоков главной страницы админки, таким образом, в своих компонентах вы можете дополнять главную страницу админки как вам угодно. Подробная документация на эту тему будет позже.Увеличение производительности CMS в целом
Мы плодотворно поработали и проанализировали любезно предоставленные нам сайты на InstantCMS с большим количеством информации (более 150 000 записей в типах контента). Как итог, мы полностью пересмотрели работу с индексам, изменили типы некоторых полей в таблицах. Теперь индексы используются там, где нужно и какие нужно. При создании набора для типа контента в админке, движок автоматически анализирует фильтрацию и сортировку, после чего формирует индекс для конкретного набора. При чем, если уже есть подходящий индекс в базе данных, то новый, дублирующийся, не создастся.Изменение вывода приватных записей
Для каждого типа контента добавлена опция «Как показывать приватные записи в списке», которая имеет значения:- Не показывать;
- Показывать только название;
- Показывать полностью.
Основная причина данной доработки это то, что предыдущая схема учета приватных записей вызывала большую нагрузку на базу данных, особенно, если записей много. Кроме этого, измененная схема показа приватных записей в общих списках более эффективна для конечных пользователей.
Еще более расширенное управление приватностью (по группам) как в самих записях, так и в категориях будет в следующем релизе, который также намечен на ближайшее время, к сожалению, не успели сделать это до нового года.
Удаление и выключение компонентов из админки
В админке теперь можно отключать некоторые компоненты. Те, которые не могут быть отключены не имеют соответствующей возможности. Удалять вы сможете только сторонние компоненты, добавленные через установку дополнений.О реализации механизма удаления в своих компонентах вы можете прочитать на этой странице.
Улучшенная RSS лента
Компонент RSS лент полностью переписан. Теперь он не привязывается к типам контента и может быть использован в любом вашем контроллере.Опция «Кешировать ленту» полноценно работает, для каждой ленты можно выбрать шаблон. В комплекте два шаблона: обычный, какой был раньше и шаблон согласно требований Яндекс для RSS лент. Обе ленты полностью валидные и проходят все проверки.
Изменения в компоненте поиск
В результатах поиска теперь выводятся изображения, если таковые есть у записи.Раньше полнотекстовый индекс не создавался в искомых полях. Теперь по умолчанию создан индекс на поле заголовка и движок ищет совпадения в названиях. Однако, если вы желаете, чтобы cms искала и в других полях записей, а поддерживаются записи типа «Текст» и «Текст HTML», то в настройках поля необходимо поставить чекбокс «Участвует в полнотекстовом поиске». После его включения индекс будет перестроен и в поиске будет учитываться заданное поле. Как следствие этого, производительность поиска увеличилась в десятки раз, если записей очень много.
Кроме всего прочего, была добавлена поддержка OpenSearch.
Прочие изменения
- Обновлена капча reCAPTCHA;
- Для ручной установки дополнений теперь не нужно удалять папку package из архива установки;
- Добавлен еще один специальный пункт меню, который выводит приватные списки контента;
- В списке записей типов контента теперь добавлена колонка с указанием статуса модерации;
- Добавлено правило доступа, позволяющее удалять комментарии полностью, а не скрывать их;
- В настройки компонента комментарии добавлена опция «Рейтинг комментариев повлияет на рейтинг автора», при включении которой оценки к комментариям влияют на рейтинг комментатора;
- Добавлена возможность отключать комментарии для любой записи, если это разрешено правами доступа;
- В настройки виджетов списка записей контента и слайдера добавлена опция «Обрезать текст при просмотре списка»;
- В пресетах теперь можно задавать качество изображений (от 1 до 100);
- Ватермарк теперь накладывается на все типы изображений корректно;
- Компонент «Генератор карты сайта» теперь разбивает файлы карты сайта, ограничивая каждую 45000 записями, теперь, если у вас записей более указанной цифры, поисковые системы будут корректно принимать файлы карты;
- В админке на странице виджетов добавлена кнопка «Отвязать все виджеты»;
- Существенно улучшен класс загрузчика файлов (cmsUploader). Он стал еще безопасней и в нем исправлены все известные ошибки;
- Для личных сообщений теперь есть поддержка HTML5 desktop notifications. Это значит, что если у вас открыта переписка на сайте, а окно браузера свернуто, то когда придет новое сообщение вы его увидите в стандартном уведомлении операционной системы;
- В виджете «Меню» теперь можно задавать свой шаблон генерации html кода пунктов меню, также шаблон формирования меню существенно упрощен;
- Редактор Live обновлен до последней версии;
- Исправлено/добавлено множество других мелких улучшений и исправлений, которые вы при желании найдете сами ;-)
Список изменений для разработчиков
- Объект модели контроллера в бекэнде теперь подключается автоматически;
- Обновленный механизм установщика дополнений, документация для него написана здесь;
- В админке своего компонента вы теперь можете использовать универсальное действие для переключения состояния поля;
- Функции работы с изображениями вынесены в файл-хелпер и называются теперь img_add_watermark и img_resize;
- Добавлены функции валидации для форм: «slug» и «color», их предназначение очевидно из названий;
- В класс базы данных добавлены методы: getIndex, getTableIndexes, isIndexExists, dropIndex, addIndex — все методы имеют описание в коде;
- В основную модель добавлены методы distinctSelect (добавляет к select запросу DISTINCT), indexHint (Управляет индексами в запросе) и его управляющие методы forceIndex, ignoreIndex, useIndex;
- Добавлен хук before_print_head;
- В класс cmsTemplate добавлены методы addJSFromContext и addCSSFromContext, которые подключают соответствующие файлы в зависимости от контекста запроса (ajax или обычный);
- В файле схемы шаблона (scheme.html) теперь можно использовать php код, например так, как сделано в дефолтном шаблоне;
- Все файлы полей теперь не используют html код вообще, а генерируют либо через шаблон, либо через соответствующую функцию-хелпер;
- Функции-хелперы из файла html.helper.php, содержащие html код вынесены в отдельный файл template.helper.php. Как следствие этого, теперь можно стилизовать вывод этих функций в своем шаблоне так, как это необходимо. Для этого вы делаете копию файла template.helper.php по пути /templates/ваш_шаблон/assets/ и называете этот файл helper.php. Обратите внимание, в этом файле должны быть определены все функции из файла template.helper.php;
- Все HTML-редакторы теперь могут запускаться на страницах, загруженных по ajax;