diff --git a/.travis.yml b/.travis.yml index d4ed1d5..8794572 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,33 +5,23 @@ sudo: false language: php php: - - 5.3 - - 5.4 - 5.5 - 5.6 - 7.0 env: - - DB=MYSQL CORE_RELEASE=3.2 + - DB=MYSQL CORE_RELEASE=master matrix: include: - php: 5.6 - env: DB=MYSQL CORE_RELEASE=3 - - php: 5.6 - env: DB=MYSQL CORE_RELEASE=3.1 - - php: 5.6 - env: DB=PGSQL CORE_RELEASE=3.2 - allow_failures: - - php: 7.0 + env: DB=PGSQL CORE_RELEASE=master before_script: - composer self-update || true - git clone git://github.com/silverstripe-labs/silverstripe-travis-support.git ~/travis-support - php ~/travis-support/travis_setup.php --source `pwd` --target ~/builds/ss - cd ~/builds/ss - - composer install - - composer require wilr/silverstripe-googlesitemaps script: - vendor/bin/phpunit googlesitemaps/tests diff --git a/_config.php b/_config.php deleted file mode 100644 index 07af9ac..0000000 --- a/_config.php +++ /dev/null @@ -1,11 +0,0 @@ -filter('ShowInSearch', 1); @@ -341,7 +352,7 @@ class GoogleSitemap extends Object $sitemaps = new ArrayList(); $filter = Config::inst()->get('GoogleSitemap', 'use_show_in_search'); - if (class_exists('SiteTree')) { + if (class_exists(SiteTree::class)) { // move to extension hook. At the moment moduleexists config hook // does not work. if (class_exists('Translatable')) { @@ -349,7 +360,7 @@ class GoogleSitemap extends Object } $filter = ($filter) ? "\"ShowInSearch\" = 1" : ""; - $class = 'SiteTree'; + $class = SiteTree::class; $instances = Versioned::get_by_stage($class, 'Live', $filter); $this->extend("alterDataList", $instances, $class); $count = $instances->count(); @@ -365,7 +376,7 @@ class GoogleSitemap extends Object $lastModified = ($lastEdited) ? date('Y-m-d', strtotime($lastEdited)) : date('Y-m-d'); $sitemaps->push(new ArrayData(array( - 'ClassName' => 'SiteTree', + 'ClassName' => $this->sanitiseClassName(SiteTree::class), 'LastModified' => $lastModified, 'Page' => $i ))); diff --git a/code/controllers/GoogleSitemapController.php b/code/controllers/GoogleSitemapController.php index 334c60b..75d86a7 100644 --- a/code/controllers/GoogleSitemapController.php +++ b/code/controllers/GoogleSitemapController.php @@ -1,7 +1,12 @@ update('SSViewer', 'set_source_file_comments', false); - + $this->getResponse()->addHeader('Content-Type', 'application/xml; charset="utf-8"'); $this->getResponse()->addHeader('X-Robots-Tag', 'noindex'); @@ -45,14 +50,14 @@ class GoogleSitemapController extends Controller 'Sitemaps' => $sitemaps ); } else { - return new SS_HTTPResponse('Page not found', 404); + return new HTTPResponse('Page not found', 404); } } /** - * Specific controller action for displaying a particular list of links + * Specific controller action for displaying a particular list of links * for a class - * + * * @return mixed */ public function sitemap() @@ -60,9 +65,9 @@ class GoogleSitemapController extends Controller $class = $this->unsanitiseClassName($this->request->param('ID')); $page = $this->request->param('OtherID'); - if (GoogleSitemap::enabled() && $class && $page && ($class == 'SiteTree' || $class == 'GoogleSitemapRoute' || GoogleSitemap::is_registered($class))) { + if (GoogleSitemap::enabled() && $class && $page && ($class == SiteTree::class || $class == 'GoogleSitemapRoute' || GoogleSitemap::is_registered($class))) { Config::inst()->update('SSViewer', 'set_source_file_comments', false); - + $this->getResponse()->addHeader('Content-Type', 'application/xml; charset="utf-8"'); $this->getResponse()->addHeader('X-Robots-Tag', 'noindex'); @@ -73,7 +78,7 @@ class GoogleSitemapController extends Controller 'Items' => $items ); } else { - return new SS_HTTPResponse('Page not found', 404); + return new HTTPResponse('Page not found', 404); } } diff --git a/code/extensions/GoogleSitemapExtension.php b/code/extensions/GoogleSitemapExtension.php index ac5907c..f3f95a9 100644 --- a/code/extensions/GoogleSitemapExtension.php +++ b/code/extensions/GoogleSitemapExtension.php @@ -1,5 +1,9 @@ value = ($this->owner->Created) ? $this->owner->Created : $date; - $now = new SS_Datetime(); + $now = new DBDatetime(); $now->value = $date; $versions = ($this->owner->Version) ? $this->owner->Version : 1; diff --git a/code/extensions/GoogleSitemapSiteTreeExtension.php b/code/extensions/GoogleSitemapSiteTreeExtension.php index f448769..779ef3a 100644 --- a/code/extensions/GoogleSitemapSiteTreeExtension.php +++ b/code/extensions/GoogleSitemapSiteTreeExtension.php @@ -1,5 +1,10 @@ findOrMakeTab('Root.Settings'); - + $message = "
"; $message .= sprintf(_t('GoogleSitemaps.METANOTEPRIORITY', "Manually specify a Google Sitemaps priority for this page (%s)"), '?' ); $message .= "
"; - + $tabset->push(new Tab('GoogleSitemap', _t('GoogleSitemaps.TABGOOGLESITEMAP', 'Google Sitemap'), new LiteralField("GoogleSitemapIntro", $message), $priority = new DropdownField("Priority", $this->owner->fieldLabel('Priority'), $prorities, $this->owner->Priority) @@ -59,26 +64,26 @@ class GoogleSitemapSiteTreeExtension extends GoogleSitemapExtension $labels['Priority'] = _t('GoogleSitemaps.METAPAGEPRIO', "Page Priority"); } - + /** * Ensure that all parent pages of this page (if any) are published - * + * * @return boolean */ public function hasPublishedParent() { - + // Skip root pages if (empty($this->owner->ParentID)) { return true; } - + // Ensure direct parent exists $parent = $this->owner->Parent(); if (empty($parent) || !$parent->exists()) { return false; } - + // Check ancestry return $parent->hasPublishedParent(); } @@ -88,12 +93,12 @@ class GoogleSitemapSiteTreeExtension extends GoogleSitemapExtension */ public function canIncludeInGoogleSitemap() { - + // Check that parent page is published if (!$this->owner->hasPublishedParent()) { return false; } - + $result = parent::canIncludeInGoogleSitemap(); $result = ($this->owner instanceof ErrorPage) ? false : $result; @@ -111,7 +116,7 @@ class GoogleSitemapSiteTreeExtension extends GoogleSitemapExtension if (!$priority) { $parentStack = $this->owner->parentStack(); $numParents = is_array($parentStack) ? count($parentStack) - 1 : 0; - + $num = max(0.1, 1.0 - ($numParents / 10)); $result = str_replace(",", ".", $num); diff --git a/tests/GoogleSitemapTest.php b/tests/GoogleSitemapTest.php index 99f9f03..2abbe90 100644 --- a/tests/GoogleSitemapTest.php +++ b/tests/GoogleSitemapTest.php @@ -1,5 +1,17 @@ getSitemaps() instead of ::get_sitemaps()). * @@ -25,7 +37,7 @@ class GoogleSitemapTest extends FunctionalTest if (class_exists('Page')) { $this->loadFixture('googlesitemaps/tests/GoogleSitemapPageTest.yml'); } - + GoogleSitemap::clear_registered_dataobjects(); GoogleSitemap::clear_registered_routes(); } @@ -93,7 +105,7 @@ class GoogleSitemapTest extends FunctionalTest // dataobject as it hasn't been registered $expected = "