/** * Builds the xml sitemap * * @return SimpleXMLElement */ protected function buildXmlSitemap() { $urlset = new SimpleXMLElement('<?xml version="1.0" encoding="UTF-8"?>' . '<urlset xmlns="' . self::NS . '" xmlns:image="' . self::IMAGE_NS . '" />'); // Pages if ($this->data->exclude_pages !== TRUE) { list($apiUrl) = Koken::load(array('source' => 'pages')); $items = Koken::api($apiUrl); foreach ($items['text'] as $item) { $pageUrl = $this->addUrlChild($urlset, $item); if ($images = $this->extractImagesFormText($item['content'])) { foreach ($images as $image) { $this->addImageChild($pageUrl, $image, $this->data->page_image_loc_preset); } } } } // Essays if ($this->data->exclude_essays !== TRUE) { list($apiUrl) = Koken::load(array('source' => 'essays', 'expand' => 1)); $items = Koken::api($apiUrl); foreach ($items['text'] as $item) { $essayUrl = $this->addUrlChild($urlset, $item); if ($images = $this->extractImagesFormText($item['content'])) { foreach ($images as $image) { $this->addImageChild($essayUrl, $image, $this->data->essay_image_loc_preset); } } } } // Albums if ($this->data->exclude_albums !== TRUE) { list($apiUrl) = Koken::load(array('source' => 'albums')); $items = Koken::api($apiUrl); foreach ($items['albums'] as $item) { $albumUrl = $this->addUrlChild($urlset, $item); $itemImages = Koken::api('/albums/' . $item['id'] . '/content'); foreach ($itemImages['content'] as $itemImage) { $this->addImageChild($albumUrl, $itemImage, $this->data->album_image_loc_preset); } } } // Content if ($this->data->exclude_content !== TRUE) { list($apiUrl) = Koken::load(array('source' => 'content')); $page = 0; do { $page++; $items = Koken::api($apiUrl . '/page:' . $page); foreach ($items['content'] as $item) { $imageDetailUrl = $this->addUrlChild($urlset, $item); $this->addImageChild($imageDetailUrl, $item, $this->data->detail_image_loc_preset); } } while ($page < $items['pages']); } return $urlset; }