Не происходит добавление нового тикета в Tickets

Всем привет!
После установки Tickets 1.6.12-pl не добавляются новые тикеты.
В консоли вижу следующие ошибки:
Uncaught TypeError: $ is not a function - default.js:729
Uncaught TypeError: $ is not a function - files.js:2
Открываю default.js, в строке 729 следующий код:
wrapper: $('#comments-tpanel')
В строке 2 files.js:
var form = $('#ticketForm');
Чанк с формой добавления нового тикета не менял.
Помогите разобраться с проблемой.
Спасибо!
Алексей
13 февраля 2016, 09:45
modx.pro
3 418
0

Комментарии: 24

Сергей Фещуков
13 февраля 2016, 12:48
0
jQuery не подключён, видимо. Если подключён, то пробуйте заменить $ на jQuery.
    Алексей
    13 февраля 2016, 12:49
    0
    Как правильно его подключить?
      Сергей Фещуков
      13 февраля 2016, 12:53
      0
      Самый простой вариант — добавить в секцию head строку
      <script src="//code.jquery.com/jquery-1.12.0.min.js"></script>
      А лучше скачать файл с сайта и подключить локальный файл.
        Алексей
        13 февраля 2016, 12:57
        0
        Тикет также не добавляется:
        default.js:135 Uncaught TypeError: $(...).markItUp is not a function
        default.js:213 Uncaught TypeError: $(...).ajaxSubmit is not a function
          Сергей Фещуков
          13 февраля 2016, 14:07
          0
          Ещё что-то не подключено. Какой-то плагин к jQuery.
          Качайте jQuery плагины markItUp и jQuery Form Plugin.
          Странно, что они автоматически не подключились. Вроде должны идти вместе с компонентом.
            Алексей
            13 февраля 2016, 15:06
            0
            БООООЛЬШУЩЕЕ спасибо! Тикеты добавляются, но теперь не происходит обновления страницы после добавления тикета.
    Сергей Шлоков
    13 февраля 2016, 13:15
    0
    Проверьте в системных настройках Tickets продключены ли у вас стили и скрипты.
      Максим Кузнецов
      13 февраля 2016, 14:49
      0
      И заодно в шаблоне с вызовом формы для добавления тикетов проверьте наличие тегов body и head (обязательно в нижнем регистре).
        Алексей
        13 февраля 2016, 15:07
        0
        Вы имеете ввиду tpl.Tickets.form.create?
          Максим Кузнецов
          13 февраля 2016, 15:08
          0
          Нет, я имею ввиду шаблон, где вызывается TicketForm.
            Алексей
            13 февраля 2016, 15:13
            0
            С этим все в порядке, спасибо!
              Максим Кузнецов
              13 февраля 2016, 15:21
              0
              Ну, в любом случае, это что-то не нормальное — если у вас есть вышеописанные теги, а скрипты и стили указаны в системных настройках, то нужно смотреть напрямую в коде страницы (во фронэнде), подключены ли файлы tickets.js и другие.

              Если не подключены — смотреть журнал ошибок MODX'a.
              Если подключены — смотреть консоль (во фронэнде) на наличие других ошибок в скриптах, которые могут прерывать работу скриптов тикетсов. Если ошибок в консоле нет, то, скорее всего, вы удалили какие-то классы в чанках TicketForm, по которым инициализируются функции скриптов.
                Алексей
                13 февраля 2016, 15:33
                0
                Перед выводятся следующие:
                <script type="text/javascript" src="/assets/components/tickets/js/web/editor/jquery.markitup.js"></script>
                <script type="text/javascript" src="/assets/components/tickets/js/web/default.js"></script>
                <script type="text/javascript" src="/assets/components/tickets/js/web/lib/plupload/plupload.full.min.js"></script>
                <script type="text/javascript" src="/assets/components/tickets/js/web/files.js"></script>
                <script type="text/javascript" src="/assets/components/tickets/js/web/lib/plupload/i18n/ru.js"></script>
                Среди них tickets.js нет. Это ошибка?
                  Максим Кузнецов
                  13 февраля 2016, 15:46
                  0
                  Нет, default.js — все в норме.
                  Здесь же jquery.markitup.js и все прочее, необходимое для корректной работы (т.е. не нужно ничего повторно подключать).

                  Есть ли ошибки в консоли браузера на этой странице?
                    Алексей
                    13 февраля 2016, 16:04
                    0
                    Можете глянуть взглядом профессионала? — здесь
                      Алексей
                      13 февраля 2016, 16:30
                      0
                      Ошибка:
                      default.js:141 Uncaught TypeError: Cannot read property 'defaults' of undefined
                        Максим Кузнецов
                        13 февраля 2016, 16:57
                        0
                        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 (не знаю что это).
                          Алексей
                          13 февраля 2016, 17:06
                          0
                          Спасибо, но замена строки не помогла. После публикации тикета страница не обновляется…
                          Максим Кузнецов
                          13 февраля 2016, 17:09
                          0
                          Ну, тогда смотрим консоль браузера после публикации тикета (на момент когда отправка была уже совершена, но страница не обновилась).

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

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

                          Не за что..)
                          Алексей
                          13 февраля 2016, 17:19
                          0
                          Чтобы увидеть форму, нужно залогиниться с помощью соцсетей справа в сайдбаре.
                          Максим Кузнецов
                          13 февраля 2016, 17:28
                          0
                          Ага, вижу.
                          Попутно всплыли проблемы с jgrowl (по дефолту) и с sisyphus (при попытке отправить форму).

                          Похоже, почему-то не отрабатываются следующие строки:
                          if (!jQuery().ajaxForm) {
                          			document.write('<script src="' + TicketsConfig.jsUrl + 'lib/jquery.form.min.js"><\/script>');
                          		}
                          		if (!jQuery().jGrowl) {
                          			document.write('<script src="' + TicketsConfig.jsUrl + 'lib/jquery.jgrowl.min.js"><\/script>');
                          		}
                          		if (!jQuery().sisyphus) {
                          			document.write('<script src="' + TicketsConfig.jsUrl + 'lib/jquery.sisyphus.min.js"><\/script>');
                          		}
                          Попробуйте вначале убрать подключенные вами (руками) скрипты для markitup'a и jquery.form и если это не поможет, то вернуть их и до кучи подключить sisyphus и jgrowl.

                          А, да, если не секрет — для чего вы подключаете 2 разные версии jquery?
                          <script src="//code.jquery.com/jquery-1.12.0.min.js"></script>
                          <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.js"></script>
                          Алексей
                          13 февраля 2016, 17:38
                          0
                          После удаления подключенных руками скриптов появляется еще одна ошибка:
                          default.js:213 Uncaught TypeError: $(...).ajaxSubmit is not a function
                          И тикет на добавляется…
                          Алексей
                          13 февраля 2016, 18:00
                          0
                          Добавление sisyphus и jgrowl помогло, спасибо!
                          Остается понять, почему не работали скрипты tickets…
                          Алексей
                          13 февраля 2016, 17:28
                          0
                          После добавления тикета в консоли появляется еще одна ошибка:
                          default.js:225 Uncaught TypeError: $(...).sisyphus is not a function
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      24