InstantCMS 2.10.1

Здравствуйте, друзья! Настало время очередного релиза InstantCMS. Обновление в основном включает в себя исправление различных недочётов и мелких доработок, о которых писали нам на GitHub и по другим каналам связи.

Итак, ниже, как обычно, подробности этого релиза.

  • исправлена ошибка 503 при удалении связи, если дочерний тип контента уже был удален;
  • исправлена ошибка с RSS лентами;
  • убраны все нотисы PHP;
  • добавлены хуки для отправки email, HTML готовой страницы и на удаление фотографий;
  • исправлена проблема с комментариями и доступами при добавлении их;
  • исправлена работа виджета "Фильтр контента" при показе во вкладке связей;
  • выбор срока публикации теперь от большего к меньшему;
  • исправлены недочёты в некоторых модальных окнах;
  • исправлена проблема с очисткой уведомлений;
  • добавлено условие "не содержит" для строк в фильтры;
  • исправлена проблема с постоянным обновлением страницы подтверждения регистрации;
  • убран лишний элемент в виджете "Список фотографий";
  • библиотека Owl Carousel обновлена до версии 2.3.4;
  • библиотека Mobile Detect обновлена до актуальной версии;
  • добавлена поддержка WebP для изображений;
  • исправлена проблема с полем "Автор" (user) в фильтре;
  • поле "Местоположение" при участии его в генерации SEO параметров теперь не учитывает группировку;
  • в обработку типографом добавлены теги figure и figcaption;
  • исправлено некорректное формирование ссылок в виджетах "Список контента" при настройке "Тип контента по-умолчанию";
  • исправлен недочёт при привязке картинок к статьям в Wysiwyg Redactor;
  • в редакторе Redactor добавлена поддержка смайлов и спойлера;
  • в комментариях и записях стен, если они были отредактированы, теперь это отображается, вместе с датой редактирования;
  • компонент "Стена" обзавёлся опциями, где можно указать количество записей на странице, количество видимых записей и сортировку: по дате добавления или по дате последнего ответа;
  • исправлена проблема, когда в Redactor не сохранялась заливка текста;
  • в поле "Число" добавлена опция разделителя тысяч;
  • множество других мелких исправлений и улучшений.

Как установить обновление

Перед началом обновления обязательно сделайте резервную копию своего сайта и дамп базы данных. Обновляться лучше на копии сайта, поднятом локально на ПК или иным подобным способом. Мы не несем никакой ответственности за любые потери данных, произошедшие в результате неправильных действий при обновлении.

  • Отключите кеширование в настройках сайта;
  • Если вы используете свой шаблон и в нем есть файлы, присутствующие в пакете обновления, то обновите их;
  • При возникновении "белого экрана" категорически читать здесь;
  • Для тех, у кого свой шаблон мы подготовили статью как быть, если в обновлении CMS есть изменения в шаблоне, рекомендуем к прочтению.

Автоматическая установка

  1. Включите режим отладки в админке.
  2. Воспользуйтесь функцией "Проверить обновления" в панели управления InstantCMS 2.
  3. Система сама обнаружит обновление, предложит скачать его и установить.
  4. Для установки потребуется указать реквизиты для доступа по FTP.

Ручная установка

Убедитесь, что вы используете InstantCMS 2.10.0 (версию можно посмотреть внизу любой страницы в админке или на главной странице админки в соответствующем блоке).

  1. Включите режим отладки в админке;
  2. Загрузите архив с обновлением.
  3. Перейдите в панель управления сайтом;
  4. Перейдите в раздел компоненты;
  5. Нажмите установить пакет дополнения;
  6. Очистите кеш браузера;
  7. Сверните окно браузера;
  8. Все содержимое папки package из архива обновления, скаченного в п.1 загрузите в корень вашего сайта;
  9. Вернитесь в свернутое в п. 5 окно браузера, нажмите F5 на клавиатуре и выберите архив, который вы скачали в п.1;
  10. На странице «Информация о пакете» нажмите установить;
  11. На странице ввода реквизитов ftp поставьте чекбокс "Пропустить этот шаг" и нажмите "Установить";
  12. Выключить режим отладки в админке;
  13. Обновление завершено.

Заключение

Спасибо всем, кто указывал на ошибки, помогал готовым кодом и в целом участвовал в жизни проекта.

Спасибо, что выбираете InstantCMS!

Поддержите проект

Поскольку InstantCMS является open-source проектом, продукт которого поставляется конечным пользователям бесплатно, мы заинтересованы в привлечении спонсоров.

Вы можете стать официальным спонсором или оказать другую поддержку. Вы также здорово поможете, если поставите звезду на GitHub.

Скачать InstantCMS

Комментарии (49)
Kreator 5 июля 2018 в 18:19 +4
small user social cms
Сказочно) Спасибо)
AlekS 6 июля 2018 в 21:39 0
small user social cms
Когда обновится шаблон "SiteStroi" под эту версию?:)
Zau4man 5 июля 2018 в 18:27 +3
small user social cms
Спасибо. Обновление очень ждал.
Алексей Тимофеев 5 июля 2018 в 18:30 +2
small user social cms
Спасибо! Неожиданно. :)
Александр Сергеевич 5 июля 2018 в 18:58 +3
small user social cms
Спасибо за исправления!
Александр Сергеевич 5 июля 2018 в 19:03 +3
small user social cms
особенно поддержка WebP для изображений, давно хотелось.
@alexandr22 7 июля 2018 в 05:56 0
small user social cms
поддержка WebP, а что это такое ?
Ris 7 июля 2018 в 10:31 +1
small user social cms
Endroid 16 июля 2018 в 09:10 0
small user social cms
Для всех, кто будет пользоваться webp, нужно учесть, что работает только на новых версиях PHP (на 7.2 точно, на 7.0 - нет).
Александр Сергеевич 5 июля 2018 в 19:11 +1
small user social cms
в поле "Число" добавлена опция разделителя тысяч; v Очень нужная вещь для цен в магазине( UCart от Kreator)
Александр Сергеевич 5 июля 2018 в 21:16 0
small user social cms
Не пойму как работает? Ставлю разделитель точку, пересохраняю товар(публикацию) и ничего, так же слитно.

Разделитель можно использовать только в виде символа(точки, запятой...) а пробел никак? Пробел не сохраняется и в других форматах типа   нельзя, т.к. можно только один символ использовать.
Александр Сергеевич 5 июля 2018 в 21:32 0
small user social cms
Александр Сергеевич 5 июля 2018 в 22:15 +1
small user social cms
Установил чистую, пробовал по всякому, не работают разделители. http://демо.сайт/board
Fuze, и на вашем демо сайте тоже нет разделителей, попробуйте в объявлениях сделайте желательно с пробелом.
Александр Сергеевич 10 июля 2018 в 18:01 0
small user social cms
Fuze, ответьте пожалуйста, может я чего не так делаю?
Fuze 10 июля 2018 в 18:10 +1
small user social cms
На данный момент это работает, если указано ненулевое количество разрядов в опции.
Александр Сергеевич 16 июля 2018 в 08:24 0
small user social cms
Количество разрядов целой части нельзя сохранить 0 или пустое.
skewes 5 июля 2018 в 19:04 +1
small user social cms
Спасибо большое!!! love dance
WebMan 5 июля 2018 в 20:28 +3
small user social cms
Отличное обновление, спасибо! Исправлено и добавлено много полезных мелочей.

Для шаблоноделов добавлю: обновлена функция string_short() в system/libs/strings.helper.php, которая используется для обрезки текстов в тизерах (анонсах).
Добавлены две возможности:

1. Если строка обрезается, то можно опционально добавить к ней заданную строку (постфикс). Если строка короче заданной длины, до постфикс добавляться не будет.
Я добавил третьим параметром в вызове функции строку '<span class="postfix"></span>' и стилем
.postfix:after { content: ' ...'; }
добавил после анонсов многоточие. Так оно не будет частью текста и его можно оформить как угодно под шаблон, например, жирным или чуть увеличенным шрифтом.
Но вообще можно передавать любую строку, хоть ссылку на "Читать далее...".

2. Четвёртый необязательный параметр при вызове функции определяет тип обрезки строки:
's' (sentence) - по последнему предложению (как было раньше, осталось по-умолчанию);
'w' (word) - по последнему слову;
пустая строка или любой другой символ - обрезать в любом месте.

Единственное, мне неудобно, когда в длину итоговой строки учитывается длина постфикса, поэтому я у себя закомментировал строку 647:
$length -= min($length, mb_strlen($postfix));
Так строка обрезается до нужного количества символов, а потом к ней добавляется постфикс.
Олег 5 июля 2018 в 20:44 +1
no avatar
Спасибо!

Когда уже форум в коробке будет?
Val 5 июля 2018 в 23:04 +2
small user social cms
Тфу, тфу, тфу (через плечо smile ).
Вы установить отдельно не можете? Поверьте это не сложно! Тем более каталог дополнений внедрен в админку. Вопрос пары кликов.
Олег 6 июля 2018 в 02:08 +1
no avatar
Зачем, если в коробку будет добавлен форум http://instantcms.ru/forum/thread29012-1.html ? Давно жду.
Нэйтал И 9 июля 2018 в 10:54 +1
no avatar
да тоже жду давно форум - уже давно обещают но все никак не добавят look
nmsk 5 июля 2018 в 21:27 +3
small user social cms
Fuze, красавчик, однозначно. v Спасибо.. hoho
Val 5 июля 2018 в 23:01 +3
small user social cms
Fuze, спасибо!

Еще 0,6 версий и двойка догонит первую ветку! laugh
Александр Витальевич 6 июля 2018 в 07:28 +1
small user social cms
Неожиданно и очень приятно! Спасибо огромное за Ваш труд! dance v
Capitan 6 июля 2018 в 09:52 +1
small user social cms
Ждал сортируемую таблицу sad А так конечно ура.
dChirkis 6 июля 2018 в 15:19 +2
small user social cms
Спасибо.
Melon 6 июля 2018 в 15:21 +2
small user social cms
Спасибо за работу!
MrDinesh 8 июля 2018 в 22:15 +1
small user social cms
обновился, спасибо большое:)
WebMan 8 июля 2018 в 23:49 +3
small user social cms
Fuze:
компонент "Стена" обзавёлся опциями, где можно указать количество записей на странице, количество видимых записей и сортировку: по дате добавления или по дате последнего ответа;
Заметка для тех, кто обновляет уже существующий сайт: зайдите в настройки компонента "Стена" и пересохраните его опции. У меня почему-то после обновления сайта с ручным копированием файлов (когда из пакета обновления используется только обновление БД), не прописалась новая опция сортировки записей стены и это привело к ошибке SQL при просмотра профиля (отсутствовало поле для сортировки, так как его не было в старых опциях).
Fuze 10 июля 2018 в 18:11 +1
small user social cms
зайдите в настройки компонента "Стена" и пересохраните его опции
Пакет обновления делает это, странно, почему у вас опции не заполнились.
WebMan 11 июля 2018 в 22:31 0
small user social cms
Сам удивился. Никаких ошибок при обновлении не заметил. Ну ладно, понаблюдаю за работой, может что-то глюкануло при обновлении базы.
Павел 11 июля 2018 в 21:25 0
small user social cms
Товарищи мне показалось рейтингу удобнее будет ниже. там ничего не мешает при уменьшении страницы.
Павел 13 июля 2018 в 16:53 +1
small user social cms
Привет, В персональном меню при нажатии с телефона самсунг браузер яндекс (Панель управления) открывается меню и сразу переходит в админку, без возможности выбора, а при нажатии (Добавить) открывает список подменю. Как можно исправить чтобы и (Панель управления) тоже просто открывала список без перехода. На сафари работает как нужно.
Павел 14 июля 2018 в 02:21 -1
small user social cms
Баг в виджете при ( Объединять с предыдущим виджетом)
Скрытый текст виден только зарегистрированным пользователям

Накрайняк можно поиграть с паддингом .widget_tabbed .tabs ul li a { вместо padding: 0 15px; ставим (padding: 0 10 или 5;)
но это не лучшее решение. кто чего придумал?
Dezerit 14 июля 2018 в 03:14 +3
small user social cms
Наверное надо сокращать название чтобы вкладки помещались в узкий сайдбар
Старый балбес 15 июля 2018 в 10:37 0
small user social cms
Для авторизированного пользователя, дата авторизации create_data в таблице sessions_online, изменяется при каждой перезагрузке любой страницы.
Для меня это очень критично, поэтому решил так :
функция loadAuthUser в core/user.php
условие 166 строка
Код PHP:
  1.  
  2. if (!self::isSessionSet('user:date_log') || ((time()-self::USER_ONLINE_INTERVAL) >= strtotime($user['date_log']))){
  3. if (!self::isSessionSet('user:date_log')){
  4. self::sessionSet('user:date_log', $user['date_log']);
  5. }
  6. $model->updateUserDateLog($user_id);
  7. }
  8.  
заменил на
Код PHP:
  1.  
  2. # Обновить дату (date_create) таблицы session_online, если текущее время- (минус значение константы USER_ONLINE_INTERVAL =180) больше или равно времени авторизации
  3. if (((time()-self::USER_ONLINE_INTERVAL) >= strtotime($user['date_log']))){
  4. $model->updateUserDateLog($user_id);
  5. }
  6. # Создаем online-сессию если еще не создана
  7. if(!self::isSessionSet('user:date_log')){
  8. self::sessionSet('user:date_log', $user['date_log']);
  9. self::createSession($user_id);
  10. }
  11.  
и убрав строку 199
Код PHP:
  1.  
  2. // создаем online-сессию
  3. self::createSession($user_id);
  4.  
Fuze 15 июля 2018 в 12:00 +1
small user social cms
В чём смысл вашего комментария?
Так, как сделали вы - неправильно.
Старый балбес 15 июля 2018 в 12:42 +1
small user social cms
Fuze:
В чём смысл вашего комментария? Так, как сделали вы - неправильно.
.Запись обновляется с временем перезагрузки любой страницы каждый раз , зачем?
Я понимаю если в сессии обновлять время при каждом проходе сценария. Но в базе то зачем?
По факту в таблице create_data Вы сохраняете дату и время перезагрузки страницы. Я просмотрел 100 страниц и сто раз обновил запись в поле create_data с временем этой самой перезагрузки.
Расскажите смысл Вы, Уважаемый Fuze/
Fuze 15 июля 2018 в 21:35 0
small user social cms
Если вы что-то не понимаете, это ведь не значит, что это что-то сделано неверно.
Разобраться зачем так сделано вы можете. Наверное, если захотите. Достаточно сделать поиск по файлам с буквами "date_created".

Для меня это очень критично
Вы себе сделали как захотели - ваше право.

Менять этот функционал разумеется мы не будем.
Старый балбес 16 июля 2018 в 10:04 0
small user social cms
Fuze:
Если вы что-то не понимаете, это ведь не значит, что это что-то сделано неверно.
Очень странная позиция у вас , признать что функции createSession не обернута ни в одно условие , и она обновляет запись в таблице каждый раз при проходе, Вы не хочете. Вам лень посмотреть отладчиком что запрос выполняется каждый раз, и говорить что это некое date_created и близко не то что вы думает. Тупо перезагружайте любую страницу и смотрите изменение записи в таблице online_sessions, не через 180 секунд как вы задумали. Это результат постоянной работы функции createSession.
Fuze:
Менять этот функционал разумеется мы не будем.
Да как вам будет угодно.
Fuze 16 июля 2018 в 11:49 0
small user social cms
признать что функции createSession не обернута ни в одно условие
И не должна быть обёрнута.
и она обновляет запись в таблице каждый раз при проходе
И должна обновлять
Вам лень посмотреть отладчиком что запрос выполняется каждый раз, и говорить что это некое date_created и близко не то что вы думает
Я и без отладчика знаю, что поле date_created обновляется каждый раз.
не через 180 секунд как вы задумали
Задумано НЕ обновление этой даты через 180 секунд.

Итого, мой ответ не изменился.

Fuze:
Если вы что-то не понимаете, это ведь не значит, что это что-то сделано неверно. Разобраться зачем так сделано вы можете. Наверное, если захотите. Достаточно сделать поиск по файлам с буквами "date_created".

Может всё-таки вам стоит вникнуть в механизм работы?
WebMan 17 июля 2018 в 22:00 +2
small user social cms
Старый балбес:
Запись обновляется с временем перезагрузки любой страницы каждый раз , зачем?
Очевидно, таким образом фиксируется реальное присутствие пользователя на сайте. А потом уже при выводе статуса "онлайн" или нет, проверяется сколько времени прошло от этого момента и превышен ли порог для "онлайн". Так что всё сделано правильно..
Александр Сергеевич 16 июля 2018 в 08:09 0
small user social cms
Уже вторую неделю не работают обновления, на любом сайте любых версий нажимаю проверить обновления, пишет: Не удалось проверить наличие обновлений
Loadырь 16 июля 2018 в 10:13 +1
small user social cms
Тут http://instantcms.ru/forum/thread30027-1.html#293366 уже порешали этот вопрос. Надо поменять ip-шник.
Эндрю Ua 17 июля 2018 в 03:12 0
small user social cms
Всем привет!
В первую очередь хочу сказать спасибо Автору и разработчикам за релиз!
Есть 1 вопрос, который стоит давно уже ребром в моей жизни )
Вот скриншоты:

В Типы контента, ранее созданное Системное имя Блога не меняется. По умолчанию Это Пост и посты в instant и ссылка так же /posts , хотя это Блоги. Вот решил переименовать Пост в Блог и все что связывает... Но вот в разделе "Меню" ссылку(системное имя) менять можно , но при смене с /posts в /blogs после по переходу выдает ошибку, так как в разделе "Тип контента" Системное имя Поста(Блога) с /posts в /blogs нельзя....Приходиться удалять Тип контента и занаво создавать? Но ладно если бы можно было перенести все настройки в новый созданный Тип контента с системным именем /blogs.
когда меняешь ссылку


В общем хочу спросить, возможно это доработать в новом релизе ???
шэльдэ бердэ бельдэ 17 июля 2018 в 10:36 +2
small user social cms
Ris 17 июля 2018 в 12:11 +3
small user social cms
Но ладно если бы можно было перенести все настройки в новый созданный Тип контента с системным именем /blogs.
Можно.
Алхимик 20 июля 2018 в 09:25 +1
small user social cms
Спасибо за обновление, нотисы исчезли.
В плане развития Instantcms можно добавить в админку несколько интересных функций. Например, в JoomGallery есть автоматическая проверка галереи на потерянные файлы, оптимизация базы данных, исправление базы данных. Нужно чтобы эти функции работали автоматически и ничего не ломали)) потому что социальной сети галерея может быть огромной и база данных будет тормозить или изображения потеряются, у меня такое бывало на другой cms.