Beispiel #1
0
 /**
  * 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;
 }