diff --git a/code/extensions/FilesystemPublisher.php b/code/extensions/FilesystemPublisher.php index 4a096be..e0afdc5 100644 --- a/code/extensions/FilesystemPublisher.php +++ b/code/extensions/FilesystemPublisher.php @@ -58,7 +58,10 @@ class FilesystemPublisher extends StaticPublisher { } $this->destFolder = $destFolder; - $this->fileExtension = $fileExtension; + + if($fileExtension) { + $this->fileExtension = $fileExtension; + } parent::__construct(); } @@ -169,6 +172,7 @@ class FilesystemPublisher extends StaticPublisher { // This may have been set explicitly via StaticPublisher::static_publisher_theme, // or we can use the last non-null theme. $customTheme = Config::inst()->get('StaticPublisher', 'static_publisher_theme'); + if(!$customTheme) { Config::inst()->update('SSViewer', 'theme', Config::inst()->get('SSViewer', 'custom_theme')); } else { @@ -196,9 +200,16 @@ class FilesystemPublisher extends StaticPublisher { foreach($urls as $url => $path) { $origUrl = $url; - $result[$origUrl] = array('statuscode' => null, 'redirect' => null, 'path' => null); + $result[$origUrl] = array( + 'statuscode' => null, + 'redirect' => null, + 'path' => null + ); - if($staticBaseUrl) Config::inst()->update('Director', 'alternate_base_url', $staticBaseUrl); + if($staticBaseUrl) { + Config::inst()->update('Director', 'alternate_base_url', $staticBaseUrl); + } + $i++; if($url && !is_string($url)) { diff --git a/tasks/RebuildStaticCacheTask.php b/tasks/RebuildStaticCacheTask.php index 2e9a9fc..5370ff8 100644 --- a/tasks/RebuildStaticCacheTask.php +++ b/tasks/RebuildStaticCacheTask.php @@ -8,6 +8,7 @@ class RebuildStaticCacheTask extends BuildTask { StaticPublisher::set_echo_progress(true); $page = singleton('Page'); + if(!$page->hasMethod('allPagesToCache')) { user_error( 'RebuildStaticCacheTask::index(): Please define a method "allPagesToCache()" on your Page class to return all pages affected by a cache refresh.', @@ -16,8 +17,11 @@ class RebuildStaticCacheTask extends BuildTask { } - if(!empty($_GET['urls'])) $urls = $_GET['urls']; - else $urls = $page->allPagesToCache(); + if(!empty($_GET['urls'])) { + $urls = $_GET['urls']; + } else { + $urls = $page->allPagesToCache(); + } $this->rebuildCache($urls, true); } @@ -28,7 +32,7 @@ class RebuildStaticCacheTask extends BuildTask { * @param array $urls The URLs of pages to re-fetch and cache. * @param bool $removeAll Remove all stale cache files (default TRUE). */ - function rebuildCache($urls, $removeAll = true) { + public function rebuildCache($urls, $removeAll = true) { if(!is_array($urls)) { // $urls must be an array @@ -37,6 +41,7 @@ class RebuildStaticCacheTask extends BuildTask { }; if(!Director::is_cli()) echo "
\n";
+
 		echo "Rebuilding cache.\nNOTE: Please ensure that this page ends with 'Done!' - if not, then something may have gone wrong.\n\n";
 
 		$page = singleton('Page');
@@ -46,7 +51,9 @@ class RebuildStaticCacheTask extends BuildTask {
 			Filesystem::makeFolder($cacheBaseDir);
 		}
 		
-		if (file_exists($cacheBaseDir.'/lock') && !isset($_REQUEST['force'])) die("There already appears to be a publishing queue running. You can skip warning this by adding ?/&force to the URL.");
+		if (file_exists($cacheBaseDir.'/lock') && !isset($_REQUEST['force'])) {
+			die("There already appears to be a publishing queue running. You can skip warning this by adding ?/&force to the URL.");
+		}
 		
 		touch($cacheBaseDir.'/lock');
 		
@@ -56,12 +63,10 @@ class RebuildStaticCacheTask extends BuildTask {
 				user_error("Bad URL: " . var_export($url, true), E_USER_WARNING);
 				continue;
 			}
-
-			// Remove leading slashes from all URLs (apart from the homepage)
-			if(substr($url,-1) == '/' && $url != '/') $url = substr($url,0,-1);
 			
 			$urls[$i] = $url;
 		}
+
 		$urls = array_unique($urls);
 		sort($urls);
 
@@ -69,14 +74,18 @@ class RebuildStaticCacheTask extends BuildTask {
 		
 		$start = isset($_GET['start']) ? $_GET['start'] : 0;
 		$count = isset($_GET['count']) ? $_GET['count'] : sizeof($urls);
-		if(($start + $count) > sizeof($urls)) $count = sizeof($urls) - $start;
+
+		if(($start + $count) > sizeof($urls)) {
+			$count = sizeof($urls) - $start;
+		}
 
 		$urls = array_slice($urls, $start, $count);
 
 		if($removeAll && !isset($_GET['urls']) && $start == 0 && file_exists("../cache")) {
 			echo "Removing stale cache files... \n";
 			flush();
-			if (FilesystemPublisher::$domain_based_caching) {
+
+			if (Config::inst()->get('FilesystemPublisher', 'domain_based_caching')) {
 				// Glob each dir, then glob each one of those
 				foreach(glob(BASE_PATH . '/cache/*', GLOB_ONLYDIR) as $cacheDir) {
 					foreach(glob($cacheDir.'/*') as $cacheFile) {
@@ -88,16 +97,18 @@ class RebuildStaticCacheTask extends BuildTask {
 						}
 					}
 				}
-			} else {
-				
 			}
-			
+
 			echo "done.\n\n";
 		}
+
 		echo  "Rebuilding cache from " . sizeof($mappedUrls) . " urls...\n\n";
+		
 		$page->extend('publishPages', $mappedUrls);
 		
-		if (file_exists($cacheBaseDir.'/lock')) unlink($cacheBaseDir.'/lock');
+		if (file_exists($cacheBaseDir.'/lock')) {
+			unlink($cacheBaseDir.'/lock');
+		}
 		
 		echo "\n\n== Done! ==";
 	}