Максим Кузнецов

Максим Кузнецов

Был в сети 04 августа 2021, 21:51
Заказы принимаю
Ну, тогда смотрим консоль браузера после публикации тикета (на момент когда отправка была уже совершена, но страница не обновилась).

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

В любом случае, проблема в скриптовой составляющей.

Не за что..)
Uncaught TypeError: Cannot read property 'ticket' of undefined
Насколько я понял, скрипт пытается подцепиться визуальный редактор, не находит форму с id=ticket-editor и возвращает ошибку.

По этому моменту особо не подскажу (не использую встроенный визивиг), но могу предложить поменять в файле assets/components/tickets/js/web/default.js (а лучше предварительно скопировать его содержимое и перенести в отдельный файл, после чего указать новый путь в системной настройке tickets.frontend_js, чтобы изменение не затёрлось при обновлении) заменить строку:

if (TicketsConfig.enable_editor == true) {

На строку:

if (TicketsConfig.enable_editor == true && TicketsConfig.editor !== "undefined" && TicketsConfig.editor !== undefined) {

Плюс ошибки:
Uncaught TypeError: jQuery(...).fancybox is not a function
Uncaught TypeError: jQuery(...).isotope is not a function
Обе ругаются на отсутствие соответствующих функций в подключаемых скриптах.
Решается, соответственно, подключением фансибокса и isotope (не знаю что это).
Ну, в любом случае, это что-то не нормальное — если у вас есть вышеописанные теги, а скрипты и стили указаны в системных настройках, то нужно смотреть напрямую в коде страницы (во фронэнде), подключены ли файлы tickets.js и другие.

Если не подключены — смотреть журнал ошибок MODX'a.
Если подключены — смотреть консоль (во фронэнде) на наличие других ошибок в скриптах, которые могут прерывать работу скриптов тикетсов. Если ошибок в консоле нет, то, скорее всего, вы удалили какие-то классы в чанках TicketForm, по которым инициализируются функции скриптов.
Насколько я понял, они остаются только когда изображения в процессе загрузки/сжатия отклоняются от занесения в бд.

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

Если нужно убрать вложенность по какому-либо принципу, который можно систематизировать, то вы можете вначале получить алиас для каждого ресурса, обработать, а уже после занести и сохранить (тогда автогенерация не произойдет).

//...

$alias = $resource->get('alias')
//махинации с $alias
$resource->set('alias', $alias);

//...
Проверил Ckeditor в связке с Tickets — и «содержимое» и дополнительные тв-поля с типом «текстовый редактор» обрабатываются корректно.

Подозреваю, что проблема в самом дополнении MarkItUp, т.к. его последняя версия вышла довольно давно и с тех пор, вероятно, что-то поменялось в процессорах админки.
Работа скриптов никак не связана с работой MODX'a (за очень редким исключением). Поэтому, почти наверняка проблема в том, что выполнение скрипта прерывает какая-то вышестоящая ошибка. Следовательно:

— заходим на страницу сайта, где прописан данный скрипт
— инициализируем работу вашего скрипта (нажимаем на кнопку, после которой он должен сработать)
— нажимаем f12 (консоль браузера)
— смотрим ошибки (красный крестик в правой верхней части появившегося окна) и по возможности исправляем их