2014-11-15 1 views
0

Я строю приложение для планирования для клиента. Это позволяет учителям создавать календарь заданий для своих учеников. Я хотел бы предложить студенту возможность добавлять ВСЕ назначения в свой календарь за один раз. Предположим, что за 4 недели было 20 заданий. Эта функция позволит студенту загружать один файл или следовать определенному каналу, чтобы одновременно добавить все 20 назначений в свой календарь.Экспорт нескольких записей базы данных в iCal или gCal

В моей голове это будет один файл iCal, но я не уверен, работает ли iCal таким образом. В качестве альтернативы, каждый курс /course/basket-weaving-101_51/ будет иметь RSS-канал /course/basket-weaving-101_51/cal/, который может быть выполнен.

У кого-нибудь есть опыт работы с этим или может предложить руководство?

ответ

1

Да, одна программа подачи, которая принимает параметры через URL-адрес, может использоваться для подачи подписной календарной ленты на любом уровне детализации. Я говорю, что подписаться на это, на уровне ученика .../student_id_or_name? Feed = ics предложит студентам самое удобное решение. Они могут подписаться один раз, а затем все назначения курсов, которые они подписали на все курсы со временем, могут автоматически отображаться, поскольку их приложение календаря обновляет фид.

Одно задание также может предлагать фид одного «события». Но это, вероятно, должно быть импортировано в основной календарь, а не подписываться!

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

Импорт (или добавление в календарь) является однократным и не будет обновляться новыми событиями/назначениями.

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

+0

Это похоже на то, что я ищу. Возможность обновления элементов календаря на основе изменений, сделанных инструктором, является привлекательной. Итак, вы думаете, что один подписываемый календарь может позволить студенту «импортировать» несколько курсов? Здесь я использую импорт в общий термин. – commadelimited

+0

Да, конечно, вы должны иметь правильную логику при выборе событий для канала календаря студентов. Большинство приложений для календаря позволяют подписываться и обновлять календарь как регулярные интервалы. Обновление не происходит, если вы импортируете события - тогда это как если бы вы сделали свою собственную копию. Вам должно быть довольно быстро продемонстрировать концепцию для себя, используя календарь Google или ваш смартфон. – anmari

1

Перед тем, как вы сможете решить, как лучше всего их настроить, вам нужно познакомиться с обработкой iical различными клиентами календаря (Outlook, веб-почта). В общем, у них есть два режима для обработки: «принять приглашение» и «подписаться на интернет-календарь».

Большое преимущество «Принять приглашение» заключается в том, что ваши события входят в календарь пользователя и генерируют напоминания и т. Д., Как если бы пользователь создал событие. Недостатком является то, что вам нужно отправлять приглашения по одному «событию» за один раз по электронной почте, и, особенно в Outlook, их, возможно, нужно будет просмотреть как почту, прежде чем они появятся в календаре. Если вы отправляете 20 или более заданий, это может стать нежелательным для получателя.

«Подпишитесь на интернет-календарь» немного вводит в заблуждение, так как фид не является фидом. Вы помещаете «весь календарь» на веб-сайт, и клиент связывает веб-сайт. Клиенты Outlook и веб-почты, как правило, счастливы отображать эти календари, но «импорт» событий в собственный календарь пользователя является немного неуклюжим. Gmail и webmail отображают информацию по той же сетке по умолчанию. Outlook отображает новую сетку для каждого календаря.

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

Несмотря на это, если у вас есть база данных с курсами, студентами и зачислениями, вы можете сделать небольшое небольшое приложение, которое генерирует ical для каждого ученика, называет его номером своего ученика и удаляет его в папке с календарями. Студент подписывается один раз на http://myuniversity.com/calendars/12345.ical, и каждый семестр все их задания автоматически входят в свой веб-календарь.

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

+0

Похоже, ваше предложение в пятом абзаце - это то, что я хочу. Файл .ical может быть динамически генерирован по запросу или может быть сгенерирован после того, как определенные события будут запущены, а затем кэшируется на сервере. В любом случае пользователь получает то, что хочет. Я думаю, что это направление, в котором я хочу войти. Является ли создание файла iCal довольно простым? Это просто XML? Я просто придерживаюсь спецификации, и я хорош? – commadelimited

+0

И что касается ссылки на подписку, это совершенно новое приложение, созданное для того, чтобы клиент мог подать в университеты. Масштабирование - проблема, у нас не будет мало, по крайней мере, нескольких месяцев. – commadelimited

+0

Вы можете кэшировать фиды студентов ics (их уникальные URL-адреса) и обновлять только в том случае, если есть изменения, чтобы избежать дополнительной ненужной обработки, когда календарные опросы приложений «ics» подаются. Я согласен с тем, что отправка приглашений похожа на спам, и не все знают, как «принимать» приглашения - это не всегда работает гладко, даже если календарь Google отправляет приглашения через gmail в другую учетную запись google mail. – anmari

Смежные вопросы