This module is no longer actively maintained, however, if you're interested in adopting it, please let us know!
Adds partial page loading using ajax.
Follow the standard SilverStripe module installation procedure
You must have jquery included in your page
Cuurently we need to modify Page_Controller and add the following method
public function getViewer($action) {
$viewer = parent::getViewer($action);
$this->extend('updateViewer', $action, $viewer);
return $viewer;
}
Modify your main Page.ss template and change
$Layout
to
<div class="pagejax-container">$Layout</div>
Then, any link you want to loaded internally needs to have the pagejax class applied, ie
<a href="some/internal/page" class="pagejax">Internal page</a>
To customise the way the page transitions in and out, you can bind to the window.pagejaxStart and window.pagejaxComplete events, eg
$(window).bind('pagejaxStart', function () { });
To change the page title on each refresh, specify an ajaxTitle()
method on
your Page_Controller class; otherwise, the page title will not be chanaged.
The module does take into account CSS and JS added using Requirements:: by parsing out relevant headers