[myCalendar] Календарь для MODX

Есть прикольный календарик на javascript — fullCalendar. Много настроек, красивый вид, поддерживается разработчиками. Но он расчитан только на рендеринг событий. Лично мне он понравился и поэтому я решил познакомить его с MODX Revolution.


Вызывается так
[[!myCalendar?]]
У сниппета есть несколько параметров из настроек fullCalendar, которых вполне достаточно для работы. Если нужны дополнительные настройки, то их можно добавить в скрипт самостоятельно.
Добавлять события можно либо просто кликом на нужное время, либо выделением диапазона. В первом случае конечное время события определяется согласно параметру defaultDuration. А во втором случае, начальное и конечное время определяются по границам выделения.
События можно перемещать, ресайзить, удалять.

Календарь может работать с Google Calendar. Для этого нужно в системных настройках указать Google Calendar API Key, а в сниппете через запятую указать google календари
[[!myCalendar? &googleCalendars=`ru.russian#holiday@group.v.calendar.google.com`]]
Как настроить можно прочитать тут.
С событиями Google календаря манипуляции ограничены. Их можно только редактировать, да и то только в собственном Google интерфейсе.

Собственно это все.

Проект на Github
В главном магазине MODX страны.

Update. В новой версии можно вызывать несколько календарей одновременно.
Сергей Шлоков
10 апреля 2015, 04:34
modx.pro
12
9 741
+13
Поблагодарить автора Отправить деньги

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

Василий Наумкин
10 апреля 2015, 07:42
1
0
Очень рад, что кто-то вспомнил про замечательный fullCalendar.

Я тоже делал что-то подобное давно, но потом забросил.
    Сергей Шлоков
    10 апреля 2015, 08:05
    0
    Я так понял, что ты начал с fullCalendar, а закончил eventCalendar2.
      Василий Наумкин
      10 апреля 2015, 08:47
      0
      Не, наоборот. eventsCalendar был вообще моим первым готовым дополнением для MODX.
    Андрей Сухомозгий
    10 апреля 2015, 08:24
    0
    крутой календарь)) это для фронтенда? правильно я понял?
      Сергей Шлоков
      10 апреля 2015, 08:24
      0
      Ага.
        Андрей Сухомозгий
        10 апреля 2015, 08:25
        0
        и перетаскивать, ресайзить и удалять события на фронте может только залогиненый в mgr?)
          Сергей Шлоков
          10 апреля 2015, 08:34
          +1
          Все кому не лень. :)
          Если нужно разрешить редактировать только авторизованным, то в сниппет перед перед сохранением параметров в сессию можно дописать условие
          if (!$modx->user->isAuthenticated($modx->context->get('key'))
          	$scriptProperties['readOnly'] = true;
          Тогда неавторизованный пользователь может только любоваться. :)
            Хулио Надда
            10 апреля 2015, 08:40
            +1
            Может эту фичу сразу в параметры вызова сниппета вынести? Мне кажется так будет востребовано.
              Сергей Шлоков
              10 апреля 2015, 09:00
              +1
              Наверно.
              А вообще это решение — вырезка из дополнения, которое я щас заканчиваю по заказу знакомого — с авторизацией, неограниченным количеством календарей с интерфейсом в админке, уведомлением пользователя на сайте и по почте, повторением событий. В дальнейшем хочет назначать задачи пользователям и следить за исполнением.

      yani
      10 апреля 2015, 09:03
      0
      тоже делала подобное, но с меньшим функционалом тут

      Любой мог добавить, но удалить \ изменить время мог только админ
        Сергей Шлоков
        10 апреля 2015, 09:10
        0
        Ваше решение на основе jquery.weekcalendar. Он не обновляется уже несколько лет. Плюс у него возможностей поменьше. Мне больше fullCalendar понравился.
          yani
          10 апреля 2015, 09:22
          0
          Я ж не спорю) просто говорю что тоже пришлось заморочить, там просто были определенные требования к календарю.
          Возможность менять период времени записи. тут 20 мин например, а сказали могут 10. + день как видите размет на 4 кабинки. это все надо было учесть. и самый оптимальный вариант на тот момент оказался этот
        Виктор
        10 апреля 2015, 12:13
        0
        Заметил, что тут никто никогда не задумывается о фронтенд оптимизации. Все компоненты, которые подключают скрипты/стили, почему то всегда подключают их несжатыми и не объединенными, но ведь же можно оставлять исходники, а рядом класть сжатый файл и подключать его. Все равно файл компонента нельзя править, в связи с его затиранием при апдейте, а кому надо изменить тот соберет себе новый из исходников.
        Может у этого есть, конечно, какой-то смысл?
          Alexei
          10 апреля 2015, 12:38
          0
          Разработчик сайта, сам должен или может минифицировать, конкатенировать, и компилировать асетсы как ему угодно
            Виктор
            10 апреля 2015, 12:52
            0
            Ну вы меня немножко не поняли, вот пример, как это сжать и объединить через MinifyX? Получается нужно выпилить из кода и вручную вставить там где вызывается компонент. Что очень странно.
              Сергей Шлоков
              10 апреля 2015, 13:16
              0
              А вот тут можно поспорить. Глядя на тот же код, можно заметить недокументированную возможность указывать свой путь к файлам.
              В системных настройках нужно указать свой путь в параметре mycalendar.assets_url и, соответственно, css и js файлы будут доступны по новому пути — «новое значение/css/» и «новое значение/js/». И пожалуйста, подключай свои файлы.
              Это к разговору о разработчиках. Для простого админа это не очень прозрачно.
                  Виктор
                  10 апреля 2015, 14:28
                  0
                  хм, действительно. Но почему тогда тут не включено сжатие? И на modhost тоже.
                  Илья Уткин
                  10 апреля 2015, 13:44
                  0
                  Как раз такие скрипты и стили MinifyX собирает в один файл и минимизирует.

                  UPD. Василий меня опередил))
                Сергей Шлоков
                10 апреля 2015, 12:49
                0
                … но ведь же можно оставлять исходники, а рядом класть сжатый файл и подключать его...
                Согласен.
                Сергей Шлоков
                16 апреля 2015, 10:07
                0
                Появился в репозитории modstore.pro
                  Сергей Шлоков
                  17 апреля 2015, 14:34
                  0
                  В продолжение темы про сжатие скриптов…
                  Разработчикам на PhpStorm будет полезно узнать про плагин File Watchers, который автоматически сжимает css и js файлы. Работаешь в нормальной версии, а рядом появляется сжатый вариант. После каждого редактирования обычного файла сжатый файл автоматом обновляется. Я себе настроил этот плагин. Очень удобно.
                    Viktor
                    19 апреля 2015, 00:05
                    -1
                    1. во время вызова календаря выдает ошибку There was an error while fetching events!
                    на оном ресурсе без ошибки, на другом с это ошибкой — оба сайта идентичны, разница только в домене.

                    2. И при изменении настройки разрешить редактировать только авторизованным доступ к изменениям становится недоступен всем пользователям, авторизованным и нет.

                    Подскажите куда копать?
                      Сергей Шлоков
                      19 апреля 2015, 09:22
                      0
                      1. во время вызова календаря выдает ошибку There was an error while fetching events!
                      на оном ресурсе без ошибки, на другом с это ошибкой — оба сайта идентичны, разница только в домене.
                      Можно посмотреть на сайт?
                      2. И при изменении настройки разрешить редактировать только авторизованным доступ к изменениям становится недоступен всем пользователям, авторизованным и нет.
                      Сниппет нужно вызывать не кэшированным, как в описании.
                        Viktor
                        19 апреля 2015, 11:56
                        0
                        1. Доступы должны на почту прийти;
                        2. Так и делал.
                          Сергей Шлоков
                          19 апреля 2015, 13:13
                          0
                          1. У тебя при обращении к скрипту action.php возвращается ошибка 404. Проверь права.
                          2. Ты вызываешь сниппет кэшированным
                          [[myCalendar? &allowGuestEdit=`1` &allDaySlot=`0` &defaultColor=`0` &height=`auto` &minTime=`07:00` &maxTime=`22:00`]]
                          Чтобы вызвать его некэшированным нужно указывать восклицательный знак перед именем сниппета.
                          [[!myCalendar...]]
                          Кроме того, в параметре defaultColor нужно указывать значение цвета в css формате. Если нужен черный цвет, то так
                          &defaultColor=`#000000`
                            Viktor
                            19 апреля 2015, 13:58
                            0
                            1. Права проверял, делал по аналогии с другим сайтом где работает, все без изменений. Уже несколько дней с этим бьюсь, прочитал кучу мануалов, рекомендаций и т.п., делал по всякому, но без результатно;

                            2. Спасибо, исправил, но все равно тоже самое (проверяю на другом сайте, не где ошибку выдает) при вызове [[!myCalendar? &allowGuestEdit=`0`]] авторизованному пользователю не дает возможность редактировать, но выводит календарь на странице. при вызове [[!myCalendar? &allowGuestEdit=`1`]] выводит календарь всем, авторизованным и нет, и дает возможность редактировать
                              Viktor
                              19 апреля 2015, 14:02
                              0
                              после манипуляций с allowGuestEdit(изменеия значений с 0 на 1 и обратно), календарь не выводиться не авторизованным посетителям, только залогиненым
                                Сергей Шлоков
                                19 апреля 2015, 15:40
                                0
                                1. Права проверял, делал по аналогии с другим сайтом где работает, все без изменений.
                                Убей не знаю в чем причина. Почему-то ajax запросы не проходят- отдается 404. Тут может старшие товарищи подскажут.
                                А хостинг один и тот же?
                                  Viktor
                                  19 апреля 2015, 16:08
                                  0
                                  хостинг одинаковый мирахаб, но сервера разные. который едку даже пошустрее летает.
                                  1. Попробую еще тогда погуглить, спасибо за направление куда копать.
                                  видел вот такое решение с async:false вот только где прописывать это не понял.

                                  2. А по этому что скажешь? я уже и кеша чистил, и права перегружал и папку кеш сносил, ничего не помогает. может какие настройки с самим modx? я уже и не знаю куда копать (((

                                  пробовал по этим вопросам тестировать на двух разных хостингах и на локальном опенсервер все одинаково.
                                    Сергей Шлоков
                                    19 апреля 2015, 17:22
                                    0
                                    На алиф изменил сниппет и скрипт default.js. Все работает. Но при обновлении все слетит. Так что лучше сохранить под другими именами. А лучше разобраться, почему ajax не проходит.
                                    2. А по этому что скажешь? я уже и кеша чистил, и права перегружал и папку кеш сносил, ничего не помогает. может какие настройки с самим modx? я уже и не знаю куда копать (((
                                    Параметр allowGuestEdit работает как положено. Где проверить эту ошибку?
                                      Viktor
                                      19 апреля 2015, 20:28
                                      0
                                      Спасибо тебе!!! Надо сюда, наверное выложить код изменений? хоть и не пользуется спросом календарь (пока). Хотя на wp +30К загрузок Еще бы такой функционал получить) «из коробки»
                                      С аяксом обязательно буду разбираться, может что-то старшие товарищи подскажут.

                                      2. только что гонял туда — сюда этот параметр на алифе, все так-же. Думал кеша браузера, попробовал в двух разных и из под разных учеток.
                                        Сергей Шлоков
                                        20 апреля 2015, 08:55
                                        0
                                        Надо сюда, наверное выложить код изменений?
                                        Нет не надо.
                                        2. только что гонял туда — сюда этот параметр на алифе, все так-же.
                                        Только что погонял с авторизацией и без несколько раз. Ставлю allowGuestEdit =`1` -> F5. Ставлю allowGuestEdit =`0` -> F5. И так несколько раз. Все работает. Что-то видимо у тебя криво стоит. Или мы друг друга не понимаем.
                                          Viktor
                                          22 апреля 2015, 10:37
                                          0
                                          Спасибо.
                                          Скорее всего криво или с хостингом что-то, во общем буду искать. Сейчас сайт живет какой-то своей жизнью, BannerY вообще отвалились (в админке не отображаются). Хотя на другом сайте, все гуд.
                                          Проверю, отпишусь.
                                          Viktor
                                          23 апреля 2015, 03:24
                                          0
                                          пересобрал все с нуля и все равно с allowGuestEdit такакя же проблема.

                                          Ставлю allowGuestEdit =`1` -> F5, доступ к редактированию есть у всех. У тех кто авторизован и нет.

                                          Ставлю allowGuestEdit =`0` -> F5, доступа к редактированию нет ни у кого.

                                          Сергей Шлоков
                                          24 апреля 2015, 15:02
                                          0
                                          Это на алифе?
                                          Viktor
                                          24 апреля 2015, 16:40
                                          0
                                          да
                                          Сергей Шлоков
                                          24 апреля 2015, 18:21
                                          0
                                          Я не знаю как ты это делаешь. Вот на алифе (я не авторизованный).
                                          //Нельзя редактировать
                                          [[!myCalendar? &allowGuestEdit=`0`]]

                                          //Можно редактировать
                                          [[!myCalendar? &allowGuestEdit=`1`]]

                                          С авторизованным проверять не стал. Ибо итак работает.
                                          Viktor
                                          24 апреля 2015, 18:33
                                          0
                                          Проблема как раз в том что когда авторизованный точно такая же картина. Или я чего-то не понимаю в реализации allowGuestEdit.
                                          Хотя выше описана тобой-же верная логика.
                                          Еще раз повторюсь.
                                          Ставлю [[!myCalendar? &allowGuestEdit=`1`]]
                                          Доступ к редактированию есть у всех.

                                          Ставлю [[!myCalendar? &allowGuestEdit=`0`]]
                                          Редактировать ни кто не может, авторизованный и не авторизованный пользователь.
                                          Как я понял при &allowGuestEdit=`0` доступ к редактированию должен пропасть только у не авторизованных пользователей. исходя из твоего коммента
                                          Сергей Шлоков
                                          24 апреля 2015, 22:31
                                          0
                                          Проблема как раз в том что когда авторизованный точно такая же картина.
                                          Не такая же. Все работает как положено.
                                          Для неавторизованного пользователя
                                          //Нельзя редактировать гостям
                                          [[!myCalendar? &allowGuestEdit=`0`]]

                                          Для авторизованного пользователя
                                          //Нельзя редактировать гостям
                                          [[!myCalendar? &allowGuestEdit=`0`]]

                                          Как видишь, редактирование возможно.
                                          Дружище, я больше не знаю чем тебе помочь. Все работает как я и писал выше. Только теперь с подтверждением.
                                          Сергей Шлоков
                                          25 апреля 2015, 08:15
                                          0
                                          Кажись, я понял. Ты, видимо, авторизуешься в админке, а не во фронте. А если так, то получается, что ты всегда гость, не зависимо от того, авторизовался ты или нет. Поэтому и редактирование невозможно.
                                          Если ты хочешь, чтоб параметр allowGuestEdit работал и для авторизованных в админке, то нужно в условии указать контекст mgr, а не текущий
                                          if (!$modx->user->isAuthenticated('mgr')
                                          	$scriptProperties['readOnly'] = true;
                                          Viktor
                                          25 апреля 2015, 20:33
                                          0
                                          Спасибо! Все работает как надо
                      Сергей
                      23 апреля 2015, 18:57
                      0
                      День добрый. Подскажите как сделать так чтобы отображался только месяц, чтобы не было возможности выбора — день и неделя?
                        Сергей Шлоков
                        24 апреля 2015, 15:19
                        0
                        В файле default.js в указанной строчке оставить только «month». И не забыть у сниппета указать параметр defaultView=month.
                        Вообще, настроек огромадное количество. Они все описаны на сайте fullCalendar.
                        В следующей версии добавлю возможность подключать свои js и css файлы, чтоб не затирались изменения в настройках при обновлении.
                        Viktor
                        25 апреля 2015, 21:47
                        0
                        Как вывести описание события во всплывающем окне?
                          Сергей Шлоков
                          26 апреля 2015, 07:32
                          0
                          Вот тут написать так
                          text: event.title+'<b r>'+event.description
                          П.С. Пробел в теге br нужно убрать.
                            Viktor
                            26 апреля 2015, 13:39
                            0
                            Спасибо
                              Сергей Шлоков
                              26 апреля 2015, 13:42
                              0
                              А можно так
                              title:event.title,
                              text:event.description
                                Viktor
                                26 апреля 2015, 14:09
                                0
                                так и сделал) еще раз спасибо
                          Jury
                          27 апреля 2015, 13:38
                          0
                          Добрый день, не подскажите как сделать чтоб только определённая группа (manager) могла редактировать
                            Сергей Шлоков
                            27 апреля 2015, 14:37
                            0
                            В сниппете изменить/добавить условие
                            if (! $modx->user->isMember('manager')) {
                            	$scriptProperties['readOnly'] = true;
                            }
                            Ну уж такие простые вещи можно и самому попробовать сделать.
                              Jury
                              27 апреля 2015, 15:26
                              0
                              Спасибо, я примерно так и сделал, когда начал читать комменты )).
                              Ещё такой вопрос, у меня на одной странице 2 календаря, eventCalendar2 и myCalendar при попытки добавить запись евент преображается.
                                Jury
                                27 апреля 2015, 16:06
                                0
                                Разобрался, спс
                            Jury
                            27 апреля 2015, 14:23
                            0
                            Ещё у меня выдавал ошибку в консоле об отсутствие файла assets/components/mycalendar/js/lib/jquery.qtip.min.map
                            Создал пустой файл с эти именем
                              Jury
                              27 апреля 2015, 16:17
                              0
                              Подскажите пожалуйста как можно сделать 2 календаря на одной страницы?
                                Сергей Шлоков
                                27 апреля 2015, 16:45
                                0
                                Mission impossible.
                                П.С. Теперь знаю чем заняться вечерком.
                                  Jury
                                  27 апреля 2015, 17:08
                                  0
                                  хахаха ждём когда будет possible
                                    Сергей Шлоков
                                    27 апреля 2015, 17:24
                                    0
                                    В этой версии только один календарь. Есть вот такая версия. В ней можно использовать несколько календарей. Но скорее всего, если заказчик разрешит её выложить, то не бесплатно.
                                      Jury
                                      27 апреля 2015, 18:13
                                      0
                                      Конечно крутая версия, но мне такой много, хотя бы намекните что можно сделать чтоб 2 календаря вывести, если оторвать у eventCalendar механизм с возможностью &calendar_id=`cal3` должно работать?
                                        Сергей Шлоков
                                        27 апреля 2015, 19:13
                                        0
                                        Я так понимаю, что эти 2 календаря на странице должны отображать разные события. И соответственно сохранять в разные календари разные события. А это в текущей информационной модели невозможно. Как события в таблице разделить по разным календарям?
                                        если оторвать у eventCalendar механизм с возможностью &calendar_id=`cal3` должно работать?
                                        eventCalendar просто выводит события. Он не может их сохранять. Поэтому там все проще.
                                        Выход только один — переписывать все с нуля.
                                          Jury
                                          27 апреля 2015, 19:39
                                          0
                                          А если одни и те же?,
                                            Сергей Шлоков
                                            27 апреля 2015, 19:55
                                            0
                                            Подумаю. Пока ничего простого в голову не приходит.
                                          Сергей Шлоков
                                          29 апреля 2015, 16:50
                                          0
                                  Сергей Скат
                                  14 мая 2015, 01:03
                                  0
                                  Очень нужное дополнение, я так понимаю что пока с его помощью нельзя выводить ресурсы по времени/дате? в будущем планируется?
                                  Виктор
                                  24 июня 2015, 00:21
                                  0
                                  Приветствую! Календарь шикарный! Но пара вопросов имеется…

                                  1. При установке опции &allowGuestEdit=`0` вроде все гуд — гости смотрят, админы редактируют и добавляют. Но только админ не может удалить событие. Всплывает окно с предупреждением, а далее сообщение, что редактирование запрещено.

                                  2. Помогите подружить его с гугл-календарем! Вроде и api сделал, и id гугловского календаря прописал… но что-то где-то не так. Кстати, у меня id в виде e-mail, а здесь в примере вот так: &googleCalendars=`ru.russian#holiday@group.v.calendar.google.com`. Это как понимать?
                                    Никита
                                    26 июня 2015, 01:14
                                    0
                                    Ну, про 1, изменил в файле core/components/mycalendar/model/mycalendar/mycalendar.class.php в методе public function removeEvent (404 строка)
                                    if (!$this->config['allowGuestEdit'] && !$this->modx->user->isAuthenticated('mgr')) (406 строка).
                                    И всё заработало.

                                    Вообще, думаю, там следует учинять ровно такую же проверку, как и в коде сниппета. У меня, в частности, требуется, чтобы только залогиненный в админку пользователь мог редактировать календарь, поэтому и проверяю isAuthenticated('mgr').
                                      Сергей Шлоков
                                      26 июня 2015, 20:01
                                      0
                                      Вообще, думаю, там следует учинять ровно такую же проверку, как и в коде сниппета.
                                      Какой смысл дублировать код? Все манипуляции с правами вынесены в сниппет. Там, в зависимости от требуемых условий, выставляется флаг readOnly. А в классе просто должен проверяться этот флаг. В новой версии это дело поправлено.
                                        Никита
                                        27 июня 2015, 00:26
                                        0
                                        Я не так выразился. Для сиюминутного решения, чтобы работало, предложил Виктору решение, а не внёс предложение на улучшение кода.
                                        Конечно, дублировать код не надо.
                                        Благодарю за вашу работу.

                                      Сергей Шлоков
                                      26 июня 2015, 19:58
                                      0
                                      1. При установке опции &allowGuestEdit=`0` вроде все гуд — гости смотрят, админы редактируют и добавляют. Но только админ не может удалить событие. Всплывает окно с предупреждением, а далее сообщение, что редактирование запрещено.
                                      Есть такое дело. Логику с правами вынес в сниппет, а в классе забыл подправить это дело. Исправление будет доступно в новой версии. А пока можно самому поправить в файле core/components/mycalendar/model/mycalendar/mycalendar.class.php (строка 406)
                                      if ($this->config['readOnly'])

                                      2. Помогите подружить его с гугл-календарем!
                                      По инструкции должно быть 3 шага:
                                      1. Получить API Google календаря.
                                      2. Создать доступный всем (public) google календарь.
                                      3. Получить его ID. Он должен выглядеть как-то так abcd1234@group.calendar.google.com.
                                      API Google календаря прописать в системных настройках, а ID календаря в параметре &googleCalendars сниппета. Если все сделано правильно, то должно работать.
                                      Календарь ru.russian#holiday@group.v.calendar.google.com является общим календарем с праздниками, у Вас он тоже должен работать.
                                      Jury
                                      19 октября 2015, 12:43
                                      0
                                      Добрый день, подскажите пожалуйста как избавиться от шибки в логе
                                      (ERROR @ /assets/components/mycalendar/action.php) No class specified for loadClass
                                      Появилась после обновления движка и компонента
                                        Сергей Шлоков
                                        19 октября 2015, 15:33
                                        0
                                        Без понятия. Попробуйте выяснить в какой момент она появляется — при открытии страницы, при редактировании события и т.п. Тогда будем думать.
                                          Jury
                                          05 февраля 2016, 13:39
                                          0
                                          К сожалению не могу определить точно когда появляется ошибка, иногда при хождении по админке сайта, иногда по фронтенду, при логине пользователя появляется,
                                          Ещё присутствуют такие ошибки
                                          (ERROR @ /assets/components/mycalendar/action.php) Could not load class: myCalendarEvents from mysql.mycalendarevents.
                                          (ERROR @ /assets/components/mycalendar/action.php) myCalendarEvents::getSelectColumns() is not a valid static method.
                                        Artem
                                        04 декабря 2015, 12:04
                                        0
                                        А возможно ли сделать так чтобы при &allowGuestEdit=`0` нажатие на событие выдавало подсказку как при наведении, вместо открытия окна редактирования. Просто проверяю на телефоне и каждое касание открывает окно редактирования.
                                        Vladimir Kartashov
                                        31 октября 2016, 10:11
                                        0
                                        Отличный сниппет! Спасибо огромное!
                                        Если еще поделитесь фрагментом кода который добавляет в «eventform» возможность создавать периодические события, буду крайне Вам признателен!
                                        Александр Асланьян
                                        04 марта 2017, 12:21
                                        0
                                        Добрый день!
                                        Установил сниппет. Вызываю так:
                                        [[!myCalendar? &allowGuestEdit=`0`]]
                                        При этом всё равно, если пользователь не авторизован в админке — он может править события. Подскажите, что можно сделать и куда копать?
                                        Спасибо!
                                          Сергей Шлоков
                                          04 марта 2017, 16:28
                                          0
                                          Авторизация в админке не учитывается. Если пользователь авторизован на сайте, то он уже не гость и на него параметр allowGuestEdit не действует.
                                            Александр Асланьян
                                            04 марта 2017, 19:37
                                            0
                                            А если на сайте в принципе нет авторизации со стороны фронтенда?
                                            У меня чисто информационный сайт. И при просмотре календаря я захожу из другого браузера.
                                            Когда я сделал сниппет на основе вот этого кода из вашей доки:
                                            <?php
                                            // Если пользователь зарегистрирован и входит в группу "Manager", то редактирование календаря разрешено.
                                            if ($modx->user && $modx->user->isMember('Manager') {
                                                $scriptProperties['readOnly'] = true; // Редактирование запрещено
                                            } else {
                                                $scriptProperties['readOnly'] = false; // Редактирование разрешено
                                            }
                                            // А теперь передаём параметры в сниппет myCalendar
                                            return $modx->runSnippet('myCalendar', $scriptProperties);
                                            Допустим с названием и выводом [[!calendarPermission?]] сайт выпадает с ошибкой 500. Или же это опять же связано с авторизацией во фронтенде?
                                              Сергей Шлоков
                                              04 марта 2017, 19:55
                                              0
                                              Банальная опечатка — не хватает закрывающей скобки в конструкции if.
                                                Александр Асланьян
                                                04 марта 2017, 20:06
                                                0
                                                Да, спасибо! Ошибку 500 исчезла. Но всё равно неавторизованный нигде пользователь может нажать на событие и изменить его. Т.е. просто случайный посетитель сайта.
                                                  Сергей Шлоков
                                                  04 марта 2017, 20:18
                                                  0
                                                  Значит не судьба. Попробуйте другой календарь.

                                                  П.С. У меня на сайте почему-то всё работает как положено.
                                          Goryn Lexx
                                          25 июля 2017, 01:45
                                          -1
                                          Возможно ли сейчас подключить Google-календарь? Попытка вызвать как
                                          [[!myCalendar? &googleCalendars=`ru.russian#holiday@group.v.calendar.google.com`]]
                                          ни к чему не приводит — календарь на фронт-энде пустой, хотя выше указан именно этот календарь для примера. Другие календари тоже не подключались. В консоли выводится ошибка
                                          «Specify a googleCalendarApiKey. See fullcalendar.io/docs/google_calendar/»
                                          В гугле опять что-то наменяли, что перестало работать? С этими «обновлениями с последствиями» на других языках уже сталкивался.
                                            Сергей Шлоков
                                            25 июля 2017, 06:57
                                            +1
                                            Чтобы вызвать Гугл календарь, его нужно сначала настроить. Об этом и сообщается в ошибке. Проверить можно на демосайте.
                                              Goryn Lexx
                                              25 июля 2017, 11:07
                                              0
                                              А каким образом настроить? Я скопировал с демосайта код «Первый вызов» — все равно в нем пусто и та же ошибка в консоли.
                                          Сергей
                                          02 августа 2017, 00:57
                                          0
                                          Друзья. А как в сниппете или вызове выставить язык русский?
                                            Сергей Шлоков
                                            02 августа 2017, 17:49
                                            0
                                            Язык определяется в системной настройке cultureKey.
                                              Сергей
                                              02 августа 2017, 17:52
                                              0
                                              спасибо большое. Только начал работать с REVO
                                            evd1ser
                                            27 августа 2017, 12:56
                                            0
                                            Добрый день!
                                            Подскажите как на бэкенде возможно обработать добавление события?
                                              4itonada
                                              04 апреля 2018, 12:56
                                              0
                                              ребят как добавить поле в базу(то есть добавить колонку как ти title description и тп)?? хочу к событиям прикрутить возможность добавления ссылки…
                                                4itonada
                                                05 апреля 2018, 09:35
                                                0
                                                как удалить свой комментарий?
                                                  Прохор
                                                  21 июня 2018, 17:17
                                                  0
                                                  День добрый! Есть товары минишопа(обучающие курсы.) у каждого товара есть название описание и тв поле время старта курса. Как их вывести в данном календаре?
                                                  [[!pdoResources?
                                                      &tpl=`@INLINE <div>[[+start]]. [[+title]]</div><div>[[+description]]</div>
                                                  `
                                                      &class=`myCalendarEvents`
                                                      &loadModels=`mycalendar`
                                                      &sortby=`start`
                                                      &sortdir=`ASC`
                                                       &showLog=`1`
                                                  ]]
                                                  Такой вызов выводит простой список без рендера календаря из таблицы mycalendar… Каким образом можно приджойнить товары минишопа и возможно ли это??
                                                    Сергей Шлоков
                                                    22 июня 2018, 21:22
                                                    0
                                                    Этот календарь на такое не заточен. А вот этот могёт.
                                                      Прохор
                                                      24 июня 2018, 19:17
                                                      0
                                                      Благодарю за ответ! На след неделе приобрету в Модстор.
                                                    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
                                                    96