silverstripe-gridfieldexten.../src/GridFieldAddNewMultiClassHandler.php

37 lines
916 B
PHP
Raw Normal View History

<?php
2017-06-16 06:07:09 +02:00
namespace Symbiote\GridFieldExtensions;
2016-11-29 18:20:15 +01:00
use SilverStripe\Control\Controller;
use SilverStripe\Forms\GridField\GridFieldDetailForm_ItemRequest;
/**
* A custom grid field request handler that allows interacting with form fields when adding records.
*/
2016-12-21 03:34:58 +01:00
class GridFieldAddNewMultiClassHandler extends GridFieldDetailForm_ItemRequest
{
2016-12-21 03:34:58 +01:00
public function Link($action = null)
{
if ($this->record->ID) {
return parent::Link($action);
} else {
return Controller::join_links(
$this->gridField->Link(),
'add-multi-class',
$this->sanitiseClassName(get_class($this->record))
2016-12-21 03:34:58 +01:00
);
}
}
/**
* Sanitise a model class' name for inclusion in a link
* @return string
*/
protected function sanitiseClassName($class)
{
2022-04-13 07:44:44 +02:00
return str_replace('\\', '-', $class ?? '');
}
}