silverstripe-framework/forms/gridfield/GridFieldTitle.php

47 lines
1.4 KiB
PHP
Raw Normal View History

2012-02-09 04:02:47 +01:00
<?php
2012-03-06 03:01:17 +01:00
/**
* Adding this class to a {@link GridFieldConfig} of a {@link GridField} adds a header title to that field.
* The header serves double duty of displaying the name of the data the GridField is showing and
* providing an "add new" button to create new object instances.
*
* The reason for making "add new" part of the title component is to make it easier for the user to tell
* which "add new" button belongs to which datagrid, in the case where multiple datagrids are on a single
* page. It is also a more efficient use of screen space.
*
* The default DataGrid includes the add button. You can hide the button by setting a boolean using the
* setNewEnabled() method
*
* @package sapphire
* @subpackage gridfield
*/
2012-02-09 04:02:47 +01:00
class GridFieldTitle implements GridField_HTMLProvider {
protected $newEnabled = true;
2012-02-09 04:02:47 +01:00
function getHTMLFragments($gridField) {
return array(
2012-02-20 02:50:53 +01:00
'header' => $gridField->customise(array(
'NewLink' => Controller::join_links($gridField->Link('item'), 'new'),
'NewEnabled' => $this->getNewEnabled()
2012-02-20 02:50:53 +01:00
))->renderWith('GridFieldTitle')
2012-02-09 04:02:47 +01:00
);
}
2012-03-06 03:01:17 +01:00
/**
* Returns whether or not the "add new" button will appear when rendering this DataGrid title
* @return bool
*/
function getNewEnabled() {
return $this->newEnabled;
}
2012-03-06 03:01:17 +01:00
/**
* Enable or disable the "add new" button to add new DataGrid object instances
* @param $enabled
*/
function setNewEnabled($enabled) {
$this->newEnabled = $enabled;
}
2012-02-09 04:02:47 +01:00
}
?>