' . "\n"; $xml .= '' . "\n"; $xml .= $this->buildChannel(); $xml .= '' . "\n"; Log::debug("Generated RSS feed: " . strlen($xml) . " bytes"); return $xml; } public function getContentType(): string { return 'application/rss+xml; charset=utf-8'; } private function buildChannel(): string { Log::debug("Building RSS channel for " . $this->settings->siteTitle); ob_start(); ?> <?php echo Util::escape_xml($this->settings->siteTitle . ' RSS Feed') ?> settings->baseUrl, $this->settings->basePath))?> settings->siteDescription) ?> en-us ticks as $tick): // build the tick entry components $tickPath = "tick/" . $tick['id']; $tickUrl = Util::escape_xml($this->buildTickUrl($tick['id'])); $tickDate = date(DATE_RSS, strtotime($tick['timestamp'])); $tickTitle = Util::escape_xml($tick['tick']); $tickDescription = Util::escape_xml(Util::linkify(Util::escape_html($tick['tick']))); Log::debug("RSS item: {$tickDescription}"); ?> <?php echo $tickTitle; ?>