mirror of
https://github.com/silverstripe/silverstripe-reports
synced 2024-10-22 11:05:53 +02:00
Merge pull request #881 from kinglozzer/framework-1905-controller-inheritance
NEW: Page types no longer require their own controller (fixes silverstripe/silverstripe-framework#1905)
This commit is contained in:
commit
79c0b6cf28
@ -16,9 +16,16 @@ class ModelAsController extends Controller implements NestedController {
|
||||
* @param string $action
|
||||
* @return ContentController
|
||||
*/
|
||||
static public function controller_for(SiteTree $sitetree, $action = null) {
|
||||
if($sitetree->class == 'SiteTree') $controller = "ContentController";
|
||||
else $controller = "{$sitetree->class}_Controller";
|
||||
public static function controller_for(SiteTree $sitetree, $action = null) {
|
||||
if ($sitetree->class == 'SiteTree') {
|
||||
$controller = "ContentController";
|
||||
} else {
|
||||
$ancestry = ClassInfo::ancestry($sitetree->class);
|
||||
while ($class = array_pop($ancestry)) {
|
||||
if (class_exists($class . "_Controller")) break;
|
||||
}
|
||||
$controller = ($class !== null) ? "{$class}_Controller" : "ContentController";
|
||||
}
|
||||
|
||||
if($action && class_exists($controller . '_' . ucfirst($action))) {
|
||||
$controller = $controller . '_' . ucfirst($action);
|
||||
|
Loading…
Reference in New Issue
Block a user