Contao-Summit 2026

Ankündigung

Collapse
No announcement yet.

Die Erweiterung contao-ical-export funktioniert nicht in Contao Version 4.4.54

Collapse
X
 
  • Filter
  • Zeit
  • Show
Clear All
new posts

    Die Erweiterung contao-ical-export funktioniert nicht in Contao Version 4.4.54

    Hallo zusammen, das Problem ist schon gelöst, wollte es nur noch hier posten, damit andere das nicht selber lösen müssen.

    Also, wenn man ein ics-File downloadet, dann ist im ICS-File folgender Content...

    Code:
    <div class="event layout_full block" itemscope itemtype="http://schema.org/Event">
      <h1 class="title">Testevent</h1>
      <div class="info">
      	<time datetime="2021-08-01" itemprop="startDate">2021-08-01</time>
      	  </div>
      <div class="clear"></div>
      
          testeventBEGIN:VCALENDAR
    VERSION:2.0
    PRODID:https://domainname.at
    BEGIN:VEVENT
    UID:6549f22312345
    DTSTART:20210801T000000
    SEQUENCE:0
    TRANSP:OPAQUE
    DTEND:20210801T235959
    SUMMARY:Testevent
    CLASS:PUBLIC
    DTSTAMP:20210415T075827Z
    END:VEVENT
    END:VCALENDAR
    Alte Hasen werden sofort sehen das der HTML-Code, der da nicht rein gehört und das ICS-File zerstört, vom event_full.html5 Template kommt. Ich habe vorher die ganze Erweiterung debugged bis ich das kapiert hatte . Lösen konnte ich das, indem ich das Template um eine If-Schleife außen rum erweitert habe wie folgt....

    Code:
    <?php if (!isset($_GET['ics'])): ?>
      <div class="event layout_full block<?= $this->class ?>" itemscope itemtype="http://schema.org/Event">
        <h1 class="title"><?= $this->title ?></h1>
        <div class="info">
          <time datetime="<?= $this->datetime ?>" itemprop="startDate"><?= $this->date ?><?php if ($this->time): ?>, <?= $this->time ?><?php endif; ?></time>
          <?php if ($this->location): ?>
            <p class="location"><?= $this->locationLabel ?>: <?= $this->location ?></p>
        <?php endif; ?>
        </div>
        <div class="clear"></div>
        <?php if ($this->recurring): ?>
          <p class="recurring"><?= $this->recurring ?><?php if ($this->until) echo ' ' . $this->until; ?>.</p>
        <?php endif; ?>
    
        <?php if ($this->hasDetails): ?>
          <?= $this->details ?>
        <?php else: ?>
          <div class="ce_text block" itemprop="description">
            <?= $this->teaser ?>
          </div>
        <?php endif; ?>
    
        <?php if ($this->enclosure): ?>
          <div class="enclosure">
            <?php foreach ($this->enclosure as $enclosure): ?>
              <p><?= Image::getHtml($enclosure['icon'], '', 'class="mime_icon"') ?> <a href="<?= $enclosure['href'] ?>" title="<?= $enclosure['title'] ?>" itemprop="url"><?= $enclosure['link'] ?> <span class="size">(<?= $enclosure['filesize'] ?>)</span></a></p>
            <?php endforeach; ?>
          </div>
        <?php endif; ?>
      </div>
    <?php else: ?>
    <?= trim($this->details) ?>
    <?php endif; ?>
    Wichtig: diese Zeile "<?= trim($this->details) ?>" muss genau so, mit trim() und ganz links, stehen. Ansonsten hat man Leerzeichen vor "BEGIN:VCALENDAR" und dann funktioniert das ICS-File nicht im Thunderbird.

    Ich weiß, echte Lösung ist das nicht, das sollte in der Erweiterung gefixt werden, aber für einen Pullrequest blicke ich zu wenig durch warum da das HTML gerendert wird.

    LG Mike
Working...
X