public function index($request)
 {
     $this->getResponse()->addHeader('Content-Type', 'application/xml; charset="utf-8"');
     $this->getResponse()->addHeader('X-Robots-Tag', 'noindex');
     $entries = GoogleSiteMapGenerator::getInstance()->Entries();
     return array('Entries' => $entries);
 }
 public function testGetEntries()
 {
     GoogleSiteMapGenerator::getInstance()->registerDataObject($class_name = 'SiteTree', $change_freq = GoogleSitemapGenerator::CHANGE_FREQ_MONTHLY, $priority = GoogleSitemapGenerator::PRIORITY_1_0, $get_url_function = function ($page) {
         $url = $page->AbsoluteLink();
         return $url;
     });
     GoogleSiteMapGenerator::getInstance()->registerDataObject($class_name = 'PublicCloudService', $change_freq = GoogleSitemapGenerator::CHANGE_FREQ_MONTHLY, $priority = GoogleSitemapGenerator::PRIORITY_1_0, $get_url_function = function (IPublicCloudService $public_cloud) {
         $company_name = $public_cloud->getCompany()->getName();
         $slug = $public_cloud->getSlug();
         $url = sprintf('/marketplace/public-clouds/%s/%s', $company_name, $slug);
         $url = Director::absoluteURL($url);
         return $url;
     });
     $list = GoogleSiteMapGenerator::getInstance()->Entries();
     $this->assertTrue(count($list) > 0);
 }
예제 #3
0
    $featured_news = $news_repository->getFeaturedNews();
    $recent_news = $news_repository->getRecentNews();
    $slide_news = $news_repository->getSlideNews();
    return array_merge($featured_news, $recent_news, $slide_news);
});
GoogleSiteMapGenerator::getInstance()->registerDataObject($class_name = 'FeaturedVideo', $change_freq = GoogleSitemapGenerator::CHANGE_FREQ_MONTHLY, $priority = GoogleSitemapGenerator::PRIORITY_0_5, $get_url_function = function ($video) {
    $page = PresentationCategoryPage::get()->filter('ID', $video->PresentationCategoryPageID)->first();
    if (!$page) {
        return false;
    }
    $page_url = $page->Link('featured');
    $url = sprintf('%s/%s', $page_url, $video->URLSegment);
    $url = Director::absoluteURL($url);
    return $url;
}, function () {
    $videos = DataObject::get('FeaturedVideo', '`YouTubeID` IS NOT NULL');
    return $videos;
});
GoogleSiteMapGenerator::getInstance()->registerDataObject($class_name = 'Presentation', $change_freq = GoogleSitemapGenerator::CHANGE_FREQ_MONTHLY, $priority = GoogleSitemapGenerator::PRIORITY_0_5, $get_url_function = function ($video) {
    $page = PresentationCategoryPage::get()->filter('ID', $video->PresentationCategoryPageID)->first();
    if (!$page) {
        return false;
    }
    $page_url = $page->Link('presentation');
    $url = sprintf('%s/%s', $page_url, $video->URLSegment);
    $url = Director::absoluteURL($url);
    return $url;
}, function () {
    $videos = DataObject::get('Presentation', '`YouTubeID` IS NOT NULL', 'StartTime DESC');
    return $videos;
});
 /**
  * @return GoogleSiteMapGenerator
  */
 public static function getInstance()
 {
     if (!is_object(self::$instance)) {
         self::$instance = new GoogleSiteMapGenerator();
     }
     return self::$instance;
 }