function generate_rss_feed($feed_data) { $feed_file = $feed_data['path']; $feed_pages = $feed_data['pages']; $rss_feed = $this->rss_prefix($feed_file, $feed_data); if (isset($feed_data['count'])) { $feed_pages = array_slice($feed_pages, 0, $feed_data['count']); } foreach ($feed_pages as $qbk_page) { $item_xml = null; // TODO: Need a better way to telll when to update an RSS item. // Maybe by tracking qbk_hash? if ($qbk_page->description_xml) { $item = $this->generate_rss_item($qbk_page->qbk_file, $qbk_page); $item['item'] = BoostSiteTools::trim_lines($item['item']); $this->rss_items[$qbk_page->qbk_file] = $item; BoostState::save($this->rss_items, $this->rss_state_path); $rss_feed .= $item['item']; } else { if (isset($this->rss_items[$qbk_page->qbk_file])) { $rss_feed .= $this->rss_items[$qbk_page->qbk_file]['item']; } else { echo "Missing entry for {$qbk_page->qbk_file}\n"; } } } $rss_feed .= $this->rss_postfix($feed_file, $feed_data); $output_file = fopen("{$this->root}/{$feed_file}", 'wb'); fwrite($output_file, $rss_feed); fclose($output_file); }
function load_boostbook_data($values, $refresh = false) { $this->title_xml = BoostSiteTools::trim_lines($values['title_xhtml']); $this->purpose_xml = BoostSiteTools::trim_lines($values['purpose_xhtml']); $this->notice_xml = BoostSiteTools::trim_lines($values['notice_xhtml']); $this->notice_url = $values['notice_url']; $this->pub_date = $values['pub_date']; $this->id = $values['id']; if (!$this->id) { $this->id = strtolower(preg_replace('@[\\W]@', '_', $this->title_xml)); } }