function onAfterWrite() { $urls = array(); $urls[] = ""; // Homepage $sp = new FilesystemPublisher(); $sp->publishPages($urls); parent::onAfterWrite(); }
function testUrlsToPathsWithDomainBasedCaching() { $origDomainBasedCaching = FilesystemPublisher::$domain_based_caching; FilesystemPublisher::$domain_based_caching = true; $fsp = new FilesystemPublisher('.', 'html'); $url = 'http://domain1.com/'; $this->assertEquals($fsp->urlsToPaths(array($url)), array($url => 'domain1.com/index.html'), 'Root URL path mapping'); $url = 'http://domain1.com/about-us'; $this->assertEquals($fsp->urlsToPaths(array($url)), array($url => 'domain1.com/about-us.html'), 'URLsegment path mapping'); $url = 'http://domain2.com/parent/child'; $this->assertEquals($fsp->urlsToPaths(array($url)), array($url => 'domain2.com/parent/child.html'), 'Nested URLsegment path mapping'); FilesystemPublisher::$domain_based_caching = $origDomainBasedCaching; }
public function testUrlsToPathsWithDomainBasedCaching() { $origDomainBasedCaching = Config::inst()->get('FilesystemPublisher', 'domain_based_caching'); Config::inst()->update('FilesystemPublisher', 'domain_based_caching', true); $fsp = new FilesystemPublisher('.', 'html'); $url = 'http://domain1.com/'; $this->assertEquals($fsp->urlsToPaths(array($url)), array($url => 'domain1.com/index.html'), 'Root URL path mapping'); $url = 'http://domain1.com/about-us'; $this->assertEquals($fsp->urlsToPaths(array($url)), array($url => 'domain1.com/about-us.html'), 'URLsegment path mapping'); $url = 'http://domain2.com/parent/child'; $this->assertEquals($fsp->urlsToPaths(array($url)), array($url => 'domain2.com/parent/child.html'), 'Nested URLsegment path mapping'); Config::inst()->update('FilesystemPublisher', 'domain_based_caching', $origDomainBasedCaching); }
function publishPages($urls) { parent::publishPages($urls); $base = Director::baseFolder(); $framework = FRAMEWORK_DIR; // Get variable that can turn off the rsync component of publication if (isset($_GET['norsync']) && $_GET['norsync']) { return; } $extraArg = ""; if (self::$excluded_folders) { foreach (self::$excluded_folders as $folder) { $extraArg .= " --exclude " . escapeshellarg($folder); } } foreach (self::$targets as $target) { // Transfer non-PHP content from everything to the target; that will ensure that we have all the JS/CSS/etc $rsyncOutput = `cd {$base}; rsync -av -e ssh --exclude /.htaccess --exclude /web.config --exclude '*.php' --exclude '*.svn' --exclude '*.git' --exclude '*~' {$extraArg} --delete . {$target}`; // Then transfer "safe" PHP from the cache/ directory $rsyncOutput .= `cd {$base}; rsync -av -e ssh --exclude '*.svn' --exclude '*~' {$extraArg} --delete cache {$target}`; // Transfer framework/static-main.php to the target $rsyncOutput .= `cd {$base}; rsync -av -e ssh --delete {$framework}/static-main.php {$target}/{$framework}`; if (StaticPublisher::echo_progress()) { echo $rsyncOutput; } } }
function tearDown() { parent::tearDown(); Object::remove_extension("SiteTree", "FilesystemPublisher('assets/HomepageForDomainTest-static-folder/')"); HomepageForDomainExtension::$write_homepage_map = true; FilesystemPublisher::$domain_based_caching = $this->orig['domain_based_caching']; if (file_exists(BASE_PATH . '/assets/HomepageForDomainTest-static-folder')) { Filesystem::removeFolder(BASE_PATH . '/assets/HomepageForDomainTest-static-folder'); } }
function publishPages($urls) { parent::publishPages($urls); $base = Director::baseFolder(); // Get variable that can turn off the rsync component of publication if (isset($_GET['norsync']) && $_GET['norsync']) { return; } foreach (self::$targets as $target) { // Transfer non-PHP content from everything to the target; that will ensure that we have all the JS/CSS/etc $rsyncOutput = `cd {$base}; rsync -av -e ssh --exclude /.htaccess --exclude '*.php' --exclude '*.svn' --exclude '*~' --delete . {$target}`; // Then transfer "safe" PHP from the cache/ directory $rsyncOutput .= `cd {$base}; rsync -av -e ssh --exclude '*.svn' --exclude '*~' --delete cache {$target}`; if (StaticPublisher::echo_progress()) { echo $rsyncOutput; } } }
/** * Set a different base URL for the static copy of the site. * This can be useful if you are running the CMS on a different domain from the website. */ static function set_static_base_url($url) { self::$static_base_url = $url; }
function onAfterWrite() { $sp = new FilesystemPublisher(); $sp->publishPages(Page::get()->first()->allPagesToCache()); parent::onAfterWrite(); }
/** * @ignore */ public function __construct() { parent::__construct(null, 'html'); }