Ostrova

Ostrova

+1
Репутация
24
Рейтинг
#1 Для чего настройка - Часовой пояс 7 апреля 2025 в 18:53
Etc/GMT Ostrova по данному формату времени есть вопрос на stackoverflow stackoverflow.com/questions/7303580/understanding-the-etc-gmt-time-zone
Zau4man

Вот странь...

#2 Для чего настройка - Часовой пояс 7 апреля 2025 в 15:57

Плюсую. Есть какой-то баг в выборе часовых поясов. Как только не пробовал настроить — и отключал выбор пояса у пользователей, и включал. Даты скачут как им вздумается. Может кто подскажет как настроить часовой пояс изначально правильно?

Добавлено спустя 24 минуты

Что в настройках сервера стоит посмотреть?

Добавлено спустя 22 минуты

Покопался еще немного — проблема с указанием зоны в Etc/GMT + Идет какое-то смещение времени.

Если указываю пояс Asia/City, то время корректное. 

#3 Хотелки к Будущему релизу 3 апреля 2025 в 17:06
Ostrova, Поддержу. С уведомлением на ПМ — > «Вас упомянули в „Название темы“». Есть маленькое решение и нет уведомлений. Пользы нет. Разве что ссылка на профиль.
pupsik

Немного не понял про код. Как работает — понял, где использовать — не понял. 

Про уведомления о новых комментариях — у меня работает из коробки. Но нюанс-то в том, что пользователь должен подписаться на конкретный блок комментариев, через колокольчик. Тогда уведомления приходят. 

#4 Хотелки к Будущему релизу 2 апреля 2025 в 23:27

Я бы хотел предложить добавление функции отметок пользователя прямо в тексте. Как это сделано во всех соц сетях, через знак @nickname Движок в первую очередь социальный, а такая важная функция отсутствует. Плюсом можно было бы вкладку на странице пользователя с отметками. 

#5 И снова рубрика "помогите починить" 16 марта 2025 в 21:15

Что ж, интересная развязка истории. Раз уж вариантов решения не поступало, решил сформулировать вопрос правильно и задать его DeepSeek. Вот его внутренние размышления, а далее ответ:

Хорошо, давайте разберемся с проблемой. Пользователь обновил InstantCMS до версии 2.17, и теперь при нажатии на кнопку в компоненте Upjump возникает ошибка `Uncaught SyntaxError: "[object Object]" is not valid JSON` в файле `upjump.js`. Нужно понять, почему это происходит именно после обновления CMS.

Первым делом смотрю на предоставленный код `upjump.js`. Ошибка возникает при попытке парсить JSON из ответа сервера. В нескольких местах используется `$.parseJSON(response)` или `JSON.parse(response)`. В новой версии InstantCMS, возможно, изменился формат ответов сервера или способ отправки данных.

Замечаю, что в функции `loadForm` есть строка `result = $.parseJSON(response);`. Если сервер возвращает уже объект JSON, а не строку, попытка парсить его вызовет ошибку. Но раньше, возможно, ответ приходил в виде строки, а теперь приходит объект, из-за чего парсинг не нужен. Это частая проблема при обновлении библиотек или CMS, где методы обработки AJAX могут автоматически парсить JSON, если заголовок ответа правильный.

Также в других функциях, например, `upjumpBuy` и `calculate`, используется аналогичный подход. Если в InstantCMS 2.17 jQuery настроен на автоматическое распознавание JSON (через `dataType: 'json'`), то `response` уже будет объектом, и попытка его парсить вызовет ошибку.

Проверяю, есть ли в AJAX-запросах указание `dataType: 'json'`. В функции `calculate` и `upjumpBuy` используется `$.ajax` без указания `dataType`, поэтому jQuery пытается сам определить тип ответа. Если сервер теперь отправляет правильный заголовок `Content-Type: application/json`, jQuery автоматически парсит ответ в объект, и последующий `$.parseJSON` будет пытаться парсить объект, что приводит к ошибке.

Еще один момент: в InstantCMS 2.17 могли обновить версию jQuery. Если раньше использовалась версия, где `$.post` не парсил JSON автоматически, а теперь используется версия с другим поведением, это может вызвать проблему. Например, если в ответе сервера отсутствует заголовок, указывающий на JSON, jQuery раньше возвращал строку, а теперь может пытаться парсить ее как JSON, если `dataType` не указан явно.

Также стоит обратить внимание на функцию `upjumpUpdElems`, которая использует `fetch` и `DOMParser`. Возможно, изменения в безопасности или политиках CORS в новой версии браузеров или CMS мешают корректной работе этой функции, но это менее вероятно связано с JSON-ошибкой.

Итак, основная проблема, скорее всего, в том, что ответ от сервера теперь приходит уже в виде JSON-объекта, а код компонента пытается его повторно парсить. Нужно убрать вызовы `$.parseJSON` там, где это не требуется, и убедиться, что AJAX-запросы правильно обрабатывают тип данных.

и ответ

Ошибка Uncaught SyntaxError: "[object Object]" is not valid JSON возникает из-за попытки парсить объект как JSON-строку. Скорее всего, в новой версии InstantCMS 2.17 изменился формат ответов сервера или обновились зависимости (например, jQuery), что привело к конфликту с кодом компонента Upjump. Давайте разберемся детально.

 
Основная проблема
В коде upjump.js есть несколько мест, где используется $.parseJSON(response) или неявный парсинг JSON. Однако, если сервер уже возвращает готовый JavaScript-объект (а не строку), эти вызовы становятся избыточными и вызывают ошибку. Вероятно, в InstantCMS 2.17:

Ответы сервера теперь автоматически парсятся в объект (например, из-за правильного заголовка Content-Type: application/json).
jQuery или InstantCMS изменили обработку AJAX-ответов.
 
Конкретные места в коде
Функция loadForm:

javascript
Copy
$.post(...).done(function(response) {
    result = $.parseJSON(response); // Ошибка здесь, если response уже объект
});
Если response — это объект (не строка), $.parseJSON попытается вызвать JSON.parse("[object Object]"), что и вызывает ошибку.
Функции upjumpBuy, calculate, upjumpFree:
Аналогичная проблема с $.parseJSON(response).
 
Почему проявилось в InstantCMS 2.17?
Изменения в ядре CMS: В новой версии InstantCMS могла появиться автоматическая обработка JSON-ответов (например, через хедер Content-Type), из-за чего response перестал быть строкой.
Обновление jQuery: Если InstantCMS 2.17 использует новую версию jQuery, метод $.post() мог начать автоматически парсить JSON при наличии правильного заголовка.
Изменения в API: Серверный компонент /upjump/… мог начать возвращать данные в другом формате.
 
Решение
Убрать лишний $.parseJSON:
Если сервер возвращает уже распарсенный объект, замените:

result = $.parseJSON(response);

result = response; // Если response уже объект

Ну и далее много всего, но мне хватило этой информации. В общем заменил в Upjump.js

result = $.parseJSON(response);
на:

result = response; // Если response уже объект

Все заработало. Спасибо ИИ. 

#6 И снова рубрика "помогите починить" 15 марта 2025 в 17:01
 Ostrova, у автора было 7 пятниц на неделе, в итоге он всё бросил видимо. без компонента Вам не помогут, возможно и с компонентом не помогут, но стоит попробовать
Александр

Я готов предоставить компонент, если Fuze позволит. 

#7 И снова рубрика "помогите починить" 15 марта 2025 в 14:07
Что это за компонент такой, 0 рубликов но «Купить»? Сложно сказать не имея его.
pupsik

Долгая история. Автор устроил складчину на выкуп компонентов, она не состоялась, участникам рассылали компонент на выбор. Потом закрыл продажи. 

Ну не суть, компонент хотелось бы починить, иначе получается деньги на ветер, так и не воспользовался им. А он важен. 

#1 И снова рубрика "помогите починить" 15 марта 2025 в 00:47

Всем доброго. Очевидно, никто не любит чинить чужие компоненты, но вдруг найдутся желающие размять мозги. 

Есть купленный компонент UpJump — продвижение записей. После обновления на 2.17 перестал работать (автор удалился с форума, к нему вопросов нет, поскольку компонент шел «как есть», без поддержки). Так вот, после нажатия на кнопку «продвижение» кнопка просто зависает и модалка с опциями продвижения не открывается. В консоли браузера в этот момент выдает ошибку:

Uncaught TypeError: $.parse is not a function
    at Object.<anonymous> (upjump.js?1660154113:4:20)
    at c (jquery.js?1660154113:2:25266)
    at Object.fireWith [as resolveWith] (jquery.js?1660154113:2:26015)
    at l (jquery.js?1660154113:2:77721)
    at XMLHttpRequest.<anonymous> (jquery.js?1660154113:2:80204)

Гугл выдал варианты возникновения ошибки, но мне не хватает знаний, чтобы понять в чем причина. Ищу помощи здесь и заранее благодарю за ответы. Вы очень помогаете!

#9 Ошибка 503 при подтверждении регистрации 7 марта 2025 в 17:02
Это долгий и нудный путь. Если вы упдате делать не собираетесь, то вам лутше проверить на чистой 2.16.3 а не на 2.17. И если на чистой 2.16.3 с теми же параметрами что у вас будет работать.
pupsik

Согласен с вами полностью. При первой же возможности просто обновлюсь (как только для нужного компонента появится совместимость с 2.17)

#10 Ошибка 503 при подтверждении регистрации 7 марта 2025 в 16:45
Ну то есть предлагаете откатится к состоянию чистой системы? Ostrova Нет. Вы не написали когда вы удалили группу. Просто написали что удалили на каком то этапе.
pupsik

В любом случае уже понятно, что дело не в группе, а в версии системы. На 2.17 при всех тех же параметрах ошибки нет. Осталось понять, почему она есть на 2.16.3

#11 Ошибка 503 при подтверждении регистрации 7 марта 2025 в 10:47
 Ostrova, создайте новую группу «Новые». Проставьте ей все права доступа в настройках. Выберите эту новую группу в компоненте Авторизация и регистрация. Проблемы быть не должно.
Zau4man

Все это сделал, проблема остается. В общем, все же дело в версии 2.16.3. Сделал копию сайта на локалке, обновил ее до 2.17, проблема ушла. Мой вопрос это не снимает, поскольку пока обновить до 2.17 не могу из-за несовместимости компонентов. 

Если у кого-то стоит 2.16.3, отпишитесь пожалуйста, нет ли такой же проблемы?

#12 Ошибка 503 при подтверждении регистрации 7 марта 2025 в 09:34
Страшно спросить чем вы там занимаетесь...  Вы backup DB делали? Восстановите и радуйтесь. Всегда делайте баккапы периодически. Решили делать дебуг? Делайте бакауп ДО. Убили сайт ища проблему?
pupsik

Ну а как вы считаете, делаю я бэкапы, или нет? Ну то есть предлагаете откатится к состоянию чистой системы? (А именно тогда я группу «новые» и удалил). Просто ошибка эта вылезла сейчас, когда включил подтверждение почты на уже готовом сайте, загруженном на хостинг. 

#13 Ошибка 503 при подтверждении регистрации 7 марта 2025 в 01:56

Новые вводные: на каком-то из этапов настройки сайта я удалил группу «новые». И что-то видимо пошло не так. Пока попробовал восстановить группу и прописал в базе ей id 3, но не помогло. Идеи?

#14 Ошибка 503 при подтверждении регистрации 5 марта 2025 в 16:51
Крон выполняет другие действия pupsik тут явно не крон. В запросе к базе нет групп у пользователя. Такого быть не может, если настройки заполнены. 
Zau4man

При загрузке на сервер опция автоматического добавления в группу была отключена, но был выбор из нескольких групп. Пользователь выбирал и всё работало на локалке. Здесь тоже работает: регистрация и подтверждение по факту происходит, добавление в выбранные группы тоже. Просто на этапе подтверждения почты выходит эта ошибка. 

Для теста я отключал выбор групп, ставил галочку добавлять пользователя в группу «пользователи». История та же — ошибка на этапе подтверждения. 

Добавлено спустя 9 минут
Крон выполняет другие действия pupsik тут явно не крон. В запросе к базе нет групп у пользователя. Такого быть не может, если настройки заполнены. 
Zau4man

В БД вручную эту опцию можно проверить\прописать для проверки?

#15 Ошибка 503 при подтверждении регистрации 5 марта 2025 в 16:18
Вот, дабы время не тратили на поиски: instantcms.ru/forum/registracija-i-gmail-opjat.html
pupsik

Эту тему я помню, читал. Тут больше про очередь e-mail. Сейчас не уверен что Cron как-то влияет на регистрацию и подтверждение. Но настраивать в любом случае надо. 

Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.