/** * Formats the specified response. * @param Response $response the response to be formatted. */ public function format(Response $response) { $charset = $this->encoding === null ? $response->charset : $this->encoding; if (stripos($this->contentType, 'charset') === false) { $this->contentType .= '; charset=' . $charset; } $response->getHeaders()->set('Content-Type', $this->contentType); $data = $response->data; if (isset($data['language'])) { $this->_feedWriter->setChannelElement('language', $data['language']); } if (!isset($data['pubDate'])) { $this->_feedWriter->setChannelElement('pubDate', date(DATE_RSS, time())); } if (isset($data['title'])) { $this->_feedWriter->setTitle($data['title']); } if (isset($data['link'])) { $this->_feedWriter->setLink($data['link']); } if (isset($data['description'])) { $this->_feedWriter->setDescription($data['description']); } if (isset($data['items']) && is_array($data['items'])) { if ($data['items']) { foreach ($data['items'] as $item) { $newItem = $this->_feedWriter->createNewItem(); $newItem->addElementArray($item); $this->_feedWriter->addItem($newItem); } } } $response->content = $this->_feedWriter->generateFeed(); }