mirror of
https://github.com/silverstripe/silverstripe-reports
synced 2024-10-04 23:28:44 +02:00
API CHANGE: Added record_controller and collection_controller as options that you can add to the managed_models array.
git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/cms/trunk@77402 467b73ca-7a2a-4603-9d3b-597d59a354a9
This commit is contained in:
parent
7f4e06c616
commit
8282a61ddf
@ -49,6 +49,8 @@ abstract class ModelAdmin extends LeftAndMain {
|
|||||||
*
|
*
|
||||||
* Available options:
|
* Available options:
|
||||||
* - 'title': Set custom titles for the tabs or dropdown names
|
* - 'title': Set custom titles for the tabs or dropdown names
|
||||||
|
* - 'collection_controller': Set a custom class to use as a collection controller for this model
|
||||||
|
* - 'record_controller': Set a custom class to use as a record controller for this model
|
||||||
*
|
*
|
||||||
* @var array|string
|
* @var array|string
|
||||||
*/
|
*/
|
||||||
@ -181,7 +183,14 @@ abstract class ModelAdmin extends LeftAndMain {
|
|||||||
* Base scaffolding method for returning a generic model instance.
|
* Base scaffolding method for returning a generic model instance.
|
||||||
*/
|
*/
|
||||||
public function bindModelController($model, $request = null) {
|
public function bindModelController($model, $request = null) {
|
||||||
$class = $this->stat('collection_controller_class');
|
$models = $this->getManagedModels();
|
||||||
|
|
||||||
|
if(isset($models[$model]['collection_controller'])) {
|
||||||
|
$class = $models[$model]['collection_controller'];
|
||||||
|
} else {
|
||||||
|
$class = $this->stat('collection_controller_class');
|
||||||
|
}
|
||||||
|
|
||||||
return new $class($this, $model);
|
return new $class($this, $model);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -325,8 +334,16 @@ class ModelAdmin_CollectionController extends Controller {
|
|||||||
* @param HTTPRequest $request
|
* @param HTTPRequest $request
|
||||||
* @return RecordController
|
* @return RecordController
|
||||||
*/
|
*/
|
||||||
function handleID($request) {
|
public function handleID($request) {
|
||||||
$class = $this->parentController->stat('record_controller_class');
|
$models = $this->parentController->getManagedModels();
|
||||||
|
$model = $this->getModelClass();
|
||||||
|
|
||||||
|
if(isset($models[$model]['record_controller'])) {
|
||||||
|
$class = $models[$model]['record_controller'];
|
||||||
|
} else {
|
||||||
|
$class = $this->parentController->stat('record_controller_class');
|
||||||
|
}
|
||||||
|
|
||||||
return new $class($this, $request);
|
return new $class($this, $request);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user