IMPORTANT
This module is no longer actively maintained, however, if you're interested in adopting it, please let us know!, (*1)
Pagejax module for SilverStripe
Adds partial page loading using ajax., (*2)
Installation
Follow the standard SilverStripe module installation procedure, (*3)
Requirements
You must have jquery included in your page, (*4)
Usage
Cuurently we need to modify Page_Controller and add the following method, (*5)
public function getViewer($action) {
$viewer = parent::getViewer($action);
$this->extend('updateViewer', $action, $viewer);
return $viewer;
}
Modify your main Page.ss template and change, (*6)
$Layout
to, (*7)
<div class="pagejax-container">$Layout</div>
Then, any link you want to loaded internally needs to have the pagejax
class applied, ie, (*8)
<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, (*9)
$(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., (*10)
The module does take into account CSS and JS added using Requirements:: by
parsing out relevant headers, (*11)