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...
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 hatteCode:<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. Lösen konnte ich das, indem ich das Template um eine If-Schleife außen rum erweitert habe wie folgt....
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.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; ?>
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

. Lösen konnte ich das, indem ich das Template um eine If-Schleife außen rum erweitert habe wie folgt....
Zitieren