Problem/Motivation
The iCal export functionality in the ServiceController currently does not decode HTML entities for the title and description fields. This can result in issues when these fields contain HTML-encoded characters, such as apostrophes and quotes.
Steps to reproduce
1. Export an event with a title or description containing HTML-encoded characters, such as ’ for apostrophes.
2. Download the exported iCal file.
3. Observe that the special characters are not properly decoded in the iCal event.
Proposed resolution
This issue proposes to decode HTML entities in the title and description fields using the `html_entity_decode` function before setting them in the iCal event object. This change will ensure that special characters are correctly displayed in the exported iCal data.
**Code Changes:**
protected function createEvent(array $field_settings, \DateTime $dtStart, \DateTime $dtEnd, bool $noTime = FALSE) {
$event = new Event();
// Decode HTML entities in the title and description
$decodedTitle = html_entity_decode($field_settings['title'], ENT_QUOTES, 'UTF-8');
$decodedDescription = html_entity_decode($field_settings['description'], ENT_QUOTES, 'UTF-8');
$event->setSummary($decodedTitle);
$event->setDescription($decodedDescription);
$event->setLocation($field_settings['location']);
$event->setNoTime($noTime);
$event->setDtStart($dtStart);
$event->setDtEnd($dtEnd);
return $event;
}
Remaining tasks
Implement the proposed code changes to decode HTML entities.
Test the modified iCal export functionality to ensure that HTML entities are correctly decoded.
Document the changes in the codebase and update any relevant documentation.
User interface changes
There are no user interface changes associated with this issue.
API changes
There are no API changes associated with this issue.
Data model changes
There are no data model changes associated with this issue.