Вход • Регистрация

Интеграция плагина Full Calendar в Diafan.

  • 06 апреля 2015 г. , редакция: 06 апреля 2015 г.
  • Здравствуйте. А как бы по проще интегрировать в диафан плагин FullCalendar http://fullcalendar.io/
    Пытаюсь сейчас запихнуть его в JS-сценарий своего модуля да не пашет. То ajax запросы не работают, то сам плагин не подгружается.
    Стабильно работает только если его подгружать через сам шаблон site.php (тегами <script>). Но это не дело, получается огромный костыль. Я считаю, так оставлять нельзя
    Так долго его настраивал и прикручивал под свой сайт, что хочется уж закончить дело и нормально впилить в CMS. Реально это вообще самому осилить? С чего начать? Оставлять костыльное решение не хочется.
    • 06 апреля 2015 г.
    • а что консоль хромовская пишет?
      • 07 апреля 2015 г.
      • вместо календаря выводятся поля. к ним не подгружается скрипт календаря.
        • 07 апреля 2015 г.
        • Куда прописывал скрипт (для загрузки)
          • 07 апреля 2015 г. , редакция: 07 апреля 2015 г.
          • в example.show.js который автоматически подключается к example.show.php
            • 07 апреля 2015 г.
            • Прописывал куда... код
              В какой фаил интегрировал...
              • 07 апреля 2015 г. , редакция: 07 апреля 2015 г.
              • В модуль свой интегрирую, конкретно в js сценарий (файл example.show.js) своего модуля (файл example.view.show.php). Конкретно с календарем разобрался вроде, грузится норм. Проблема была в скобках (их там тысяча я лишних наставил, вот он и ломался).
                Вот теперь думаю как с ajax обработкой кнопочек разобраться. Надо из js сценария как то сослаться в action и потом вернуть оттуда результат в календарь.
  • 07 апреля 2015 г.
  • Тут я тебе не помощник =)
    Вот - хотя ты наверно это видел)))
    http://www.diafan.ru/dokument/full-manual/developers/architecture/module/js/#Standartnaya-obrabotka-Ajax-zaprosov
    • 08 апреля 2015 г.
    • Мануалы по Ajax вообще не помогают Мне осталось понять как вызвать файл example.action.php, там вся обработка у меня описана.
      • 08 апреля 2015 г.
      • Может это поможет как-то

        http://vk-book.ru/prostaya-forma-obratnoj-svyazi-na-php-i-ajax/
        • 08 апреля 2015 г.
        • Я разобрался как это делается на чистом php и Ajax, уже реализовал. Я не разберусь до конца как с Ajax работать в Diafan
          Ниже кусок кода из Вашего примера, Александр:
          // отправляем данные
          $.ajax({
          url: "action.php", // куда отправляем
          type: "post", // метод передачи
          dataType: "json", // тип передачи данных
          data: { // что отправляем
          "user_name": user_name,
          "user_email": user_email,
          "text_comment": text_comment
          },
          // после получения ответа сервера
          success: function(data){
          $('.messages').html(data.result); // выводим ответ сервера
          }
          });
          У меня сейчас очень похожая обработка на моем модуле. Вызывается url: "action.php" - файл с серверной логикой, в котором написана сама обработка Ajax запросов на php (это получается отдельный файл, который, так сказать, не вписывается в архитектуру Diafan, лежит отдельно себе в корне движка, к нему не прикрутить Диафановских функций, и в нём даже приходится вручную инициализировать соединение с нашей базой функциями mysql connect и пр.). Вот тут-то я и понял что это получается "Костыль". Если вдруг сайт переедет или изменится база, то придётся в этот файл (action.php) ручками прописывать пароли от базы, пользователя, и каждый раз этот файл перекидывать на новый сайт если мы хотим им воспользоваться. Понятно что нужно от него избавиться и сделать Ajax обработку как в Diafan.
          А она тупо не вызывается у меня

          По диафановской документации алгоритм обработки Ajax,Post таков:
          При отправлении Ajax, или Post запроса в контроллере модуля срабатывает скрипт

          public function action()
          {
          if(! empty($_POST["action"]))
          {
          switch($_POST["action"])
          {
          case 'example':
          return $this->action->example();
          }
          }
          }
          Этот скрипт вызывает функцию "example" из модуля "example.action.php".
          В "example.action.php" происходит вся обработка.
          Но вот у меня тупо не вызывается "example.action.php" и вообще не понятно как данные сгенерированные в "example.action.php" потом вывести.
      • 08 апреля 2015 г.
      • через контроллер.

        вам осталось перестать писать на форум, а открыть исходники и посмотреть как это работает в соседнем модуле)

Новости

  • 18 июня
  • В сборке большое обновление demo-шаблона, дополнительная защита от спама, улучшение YML-импорта и еще много важного и интересного.
  • 24 апреля
  • В новой сборке совершили революцию в структурировании кастомизированной информации в шаблонах, добавили авторегистрацию пользователей, усовершенствовали защиту от спама, актуализировали накопительную скидку, а также улучшили производительность и стабильность работы системы.
  • 12 января
  • После выхода сборки 7.1 мы выпустили уже три патча, в каждом из которых улучшаем административную часть сайта. Сборка DIAFAN.CMS 7.1.3 уже доступна к установке. 

Форум