dev-master
9999999-dev https://github.com/twohill/silverstripe-nestedcontrollersBase for easily setting up CRUD pages in the front end using nested controllers
BSD-3-Clause
The Requires
by Al Twohill
crud silverstripe nested
Wallogit.com
2017 © Pedro Peláez
Base for easily setting up CRUD pages in the front end using nested controllers
NESTED CONTROLLERS SNIPPET FOR SILVERSTRIPE, (*1)
This isn't really a module, but I've re-used it with many projects now so I figured it deserved to be shared. It enables you to create a logical url structure for actions on records (DataObjects)., (*2)
For example, it can be used for CRUD (Create Read Update Delete), or to step through required processes of creating an object in a logical way, (*3)
eg:
/mypage/people/12/edit
/mypage/people/12/favourite-people, (*4)
It allows deep traversal through related objects:, (*5)
eg: /mypage/people/12/mother/uncles/43/edit, (*6)
And it allows for easy theme overrides. [Record]_[function].ss templates are chosen ahead of [Record].ss templates. And there are fallback templates to kick you off., (*7)
As a starting point, you need a page that can call the nested functions. eg, (*8)
<?php
class MyPage extends Page {
//...
}
class MyPage_Controller extends Page_Controller {
//..
public function people($request) {
return new PeopleCollectionController($this, $request);
}
}
This means that whenever anyone calls a MyPage/people, the PeopleCollectionController will be used., (*9)
Obviously you need a PeopleCollectionController so lets have a look at what it might look like., (*10)
<?php
class PeopleCollectionCotroller extends NestedCollectionController {
public function favourite_people() {
// return something allowing the user to view or modify favourite people
}
}
Base for easily setting up CRUD pages in the front end using nested controllers
BSD-3-Clause
crud silverstripe nested