Ergebnis 1 bis 4 von 4

Thema: Erweiterung .ics-Download für einzelne Events

  1. #1
    Contao-Fan
    Registriert seit
    01.07.2009.
    Beiträge
    348

    Standard Erweiterung .ics-Download für einzelne Events

    Hallo zusammen

    Ein Kunde wünscht sich, dass sich jeder Event einzeln als .ics-Datei herunterladen lässt, damit Teilnehmende ihn direkt in die Agenda übernehmen können.

    Ich kenne [calendar_ical], mit dem sich ganze Kalender abonnieren lassen – es ginge aber nur um einzelne Veranstaltungen und Termine.

    Kennt jemand einen Weg, mit dem sich das umsetzen liesse?

    Grüsse, Chris

  2. #2
    Contao-Nutzer
    Registriert seit
    06.09.2016.
    Beiträge
    125

  3. #3
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.108
    Partner-ID
    10107

    Standard

    Viele Wege führen zum Ziel. Mit dem IcalBundle könntest du in einem Controller in Contao 4 bspw. folgendes machen:
    PHP-Code:
    /**
     * @Route("/ics/{eventId}")
     *
     * @return JsonResponse
     */
    public function icsAction(Request $request$eventId)
    {    
        
    $this->container->get('contao.framework')->initialize();

        
    $objEvent CalendarEventsModel::findById($eventId);

        if (
    null === $objEvent)
        {
            throw new 
    NotFoundHttpException('Event not found.');  
        }

        
    $provider $this->get('bomo_ical.ics_provider');

        
    $tz $provider->createTimezone();
        
    $tz->setTzid('Europe/Paris')
           ->
    setProperty('X-LIC-LOCATION'$tz->getTzid());

        
    $cal $provider->createCalendar($tz);

        
    $cal->setName('Calendar Name');

        
    $event $cal->newEvent();

        
    $event->setStartDate(new \Datetime($objEvent->startTime));

        if (
    $eventData->endDate)
        {
            
    $event->setEndDate(new \Datetime($eventData->endTime));
        }

        
    $event->setName($objEvent->title);

        
    $calStr $cal->returnCalendar();

        return new 
    Response(
            
    $calStr,
            
    200,
            array(
                
    'Content-Type' => 'text/calendar; charset=utf-8',
                
    'Content-Disposition' => 'attachment; filename="event.ics"',
            )
        );

    In Contao 3 musst du dir halt irgendwo einen Einstiegspunkt schaffen, wo du etwas ähnliches machen kannst. Dabei kann dir generell iCalcreator behilflich sein. Du könntest das auch notfalls in einem Template machen, wo du den Response ausgibst und mit exit aussteigst.

  4. #4
    Contao-Fan
    Registriert seit
    01.07.2009.
    Beiträge
    348

    Standard

    Besten Dank für die Hinweise –*ich werde das mal prüfen! Installierbare Erweiterungen ohne Code-Einfügen und Templateanpassungen sind mir als Nicht-Programmierer grundsätzlich sympathischer ;-)

    Grüsse, Chris

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •