mirror of
https://github.com/silverstripe/silverstripe-framework
synced 2024-10-22 12:05:37 +00:00
API Replace deprecated FormField::createTag() with static create_tag()
GridField uses createTag() which is marked for deprecation, rather than have it used as the cornerstone of generating FormField templates, use it as a helper in case fields generate HTML tags from PHP.
This commit is contained in:
parent
8c3ecabc31
commit
8b0bb8dd09
@ -52,7 +52,7 @@ class AjaxUniqueTextField extends TextField {
|
||||
'maxlength' => ($this->maxLength) ? $this->maxLength : null
|
||||
);
|
||||
|
||||
return $this->createTag('input', $attributes);
|
||||
return FormField::create_tag('input', $attributes);
|
||||
}
|
||||
|
||||
public function validate( $validator ) {
|
||||
|
@ -117,6 +117,23 @@ class FormField extends RequestHandler {
|
||||
return $label;
|
||||
}
|
||||
|
||||
/**
|
||||
* Construct and return HTML tag.
|
||||
*/
|
||||
public static function create_tag($tag, $attributes, $content = null) {
|
||||
$preparedAttributes = '';
|
||||
foreach($attributes as $k => $v) {
|
||||
// Note: as indicated by the $k == value item here; the decisions over what to include in the attributes
|
||||
// can sometimes get finicky
|
||||
if(!empty($v) || $v === '0' || $k == 'value') {
|
||||
$preparedAttributes .= " $k=\"" . Convert::raw2att($v) . "\"";
|
||||
}
|
||||
}
|
||||
|
||||
if($content || $tag != 'input') return "<$tag$preparedAttributes>$content</$tag>";
|
||||
else return "<$tag$preparedAttributes />";
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a new field.
|
||||
* @param name The internal field name, passed to forms.
|
||||
@ -739,26 +756,9 @@ class FormField extends RequestHandler {
|
||||
return strtolower(preg_replace('/Field$/', '', $this->class));
|
||||
}
|
||||
|
||||
/**
|
||||
* Construct and return HTML tag.
|
||||
*
|
||||
* @deprecated 3.0 Please define your own FormField template using {@link setFieldTemplate()}
|
||||
* and/or {@link renderFieldTemplate()}
|
||||
*
|
||||
* @todo Transform to static helper method.
|
||||
*/
|
||||
public function createTag($tag, $attributes, $content = null) {
|
||||
$preparedAttributes = '';
|
||||
foreach($attributes as $k => $v) {
|
||||
// Note: as indicated by the $k == value item here; the decisions over what to include in the attributes
|
||||
// can sometimes get finicky
|
||||
if(!empty($v) || $v === '0' || $k == 'value') {
|
||||
$preparedAttributes .= " $k=\"" . Convert::raw2att($v) . "\"";
|
||||
}
|
||||
}
|
||||
|
||||
if($content || $tag != 'input') return "<$tag$preparedAttributes>$content</$tag>";
|
||||
else return "<$tag$preparedAttributes />";
|
||||
Deprecation::notice('3.1', 'Use FormField::create_tag()');
|
||||
return self::create_tag($tag, $attributes, $content);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -55,7 +55,7 @@ class GroupedDropdownField extends DropdownField {
|
||||
}
|
||||
}
|
||||
|
||||
return $this->createTag('select', $this->getAttributes(), $options);
|
||||
return FormField::create_tag('select', $this->getAttributes(), $options);
|
||||
}
|
||||
|
||||
public function Type() {
|
||||
|
@ -76,11 +76,10 @@ class HtmlEditorField extends TextareaField {
|
||||
}
|
||||
}
|
||||
|
||||
return $this->createTag (
|
||||
'textarea',
|
||||
$this->getAttributes(),
|
||||
htmlentities($value->getContent(), ENT_COMPAT, 'UTF-8')
|
||||
);
|
||||
$properties['Value'] = htmlentities($value->getContent(), ENT_COMPAT, 'UTF-8');
|
||||
$obj = $this->customise($properties);
|
||||
|
||||
return $obj->renderWith($this->getTemplates());
|
||||
}
|
||||
|
||||
public function getAttributes() {
|
||||
|
@ -115,7 +115,7 @@ class TreeMultiselectField extends TreeDropdownField {
|
||||
$title = _t('DropdownField.CHOOSE', '(Choose)', 'start value of a dropdown');
|
||||
}
|
||||
|
||||
return $this->createTag (
|
||||
return FormField::create_tag(
|
||||
'div',
|
||||
array (
|
||||
'id' => "TreeDropdownField_{$this->id()}",
|
||||
@ -125,7 +125,7 @@ class TreeMultiselectField extends TreeDropdownField {
|
||||
'data-title' => $title,
|
||||
'title' => $this->getDescription()
|
||||
),
|
||||
$this->createTag (
|
||||
FormField::create_tag(
|
||||
'input',
|
||||
array (
|
||||
'id' => $this->id(),
|
||||
|
@ -339,13 +339,13 @@ class GridField extends FormField {
|
||||
// A return value of null means this columns should be skipped altogether.
|
||||
if($colContent === null) continue;
|
||||
$colAttributes = $this->getColumnAttributes($record, $column);
|
||||
$rowContent .= $this->createTag('td', $colAttributes, $colContent);
|
||||
$rowContent .= FormField::create_tag('td', $colAttributes, $colContent);
|
||||
}
|
||||
$classes = array('ss-gridfield-item');
|
||||
if ($idx == 0) $classes[] = 'first';
|
||||
if ($idx == $total-1) $classes[] = 'last';
|
||||
$classes[] = ($idx % 2) ? 'even' : 'odd';
|
||||
$row = $this->createTag(
|
||||
$row = FormField::create_tag(
|
||||
'tr',
|
||||
array(
|
||||
"class" => implode(' ', $classes),
|
||||
@ -362,25 +362,26 @@ class GridField extends FormField {
|
||||
|
||||
// Display a message when the grid field is empty
|
||||
if(!(isset($content['body']) && $content['body'])) {
|
||||
$content['body'] = $this->createTag(
|
||||
$content['body'] = FormField::create_tag(
|
||||
'tr',
|
||||
array("class" => 'ss-gridfield-item ss-gridfield-no-items'),
|
||||
$this->createTag(
|
||||
FormField::create_tag(
|
||||
'td',
|
||||
array('colspan' => count($columns)),
|
||||
_t('GridField.NoItemsFound', 'No items found'))
|
||||
_t('GridField.NoItemsFound', 'No items found')
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
// Turn into the relevant parts of a table
|
||||
$head = $content['header']
|
||||
? $this->createTag('thead', array(), $content['header'])
|
||||
? FormField::create_tag('thead', array(), $content['header'])
|
||||
: '';
|
||||
$body = $content['body']
|
||||
? $this->createTag('tbody', array('class' => 'ss-gridfield-items'), $content['body'])
|
||||
? FormField::create_tag('tbody', array('class' => 'ss-gridfield-items'), $content['body'])
|
||||
: '';
|
||||
$foot = $content['footer']
|
||||
? $this->createTag('tfoot', array(), $content['footer'])
|
||||
? FormField::create_tag('tfoot', array(), $content['footer'])
|
||||
: '';
|
||||
|
||||
$this->addExtraClass('ss-gridfield field');
|
||||
@ -398,9 +399,9 @@ class GridField extends FormField {
|
||||
|
||||
|
||||
return
|
||||
$this->createTag('fieldset', $attrs,
|
||||
FormField::create_tag('fieldset', $attrs,
|
||||
$content['before'] .
|
||||
$this->createTag('table', $tableAttrs, $head."\n".$foot."\n".$body) .
|
||||
FormField::create_tag('table', $tableAttrs, $head."\n".$foot."\n".$body) .
|
||||
$content['after']
|
||||
);
|
||||
}
|
||||
|
@ -45,7 +45,7 @@ class GridFieldDeleteAction implements GridField_ColumnProvider, GridField_Actio
|
||||
}
|
||||
|
||||
/**
|
||||
* Return any special attributes that will be used for FormField::createTag()
|
||||
* Return any special attributes that will be used for FormField::create_tag()
|
||||
*
|
||||
* @param GridField $gridField
|
||||
* @param DataObject $record
|
||||
|
@ -20,7 +20,7 @@ class GridFieldEditButton implements GridField_ColumnProvider {
|
||||
}
|
||||
|
||||
/**
|
||||
* Return any special attributes that will be used for FormField::createTag()
|
||||
* Return any special attributes that will be used for FormField::create_tag()
|
||||
*
|
||||
* @param GridField $gridField
|
||||
* @param DataObject $record
|
||||
|
Loading…
x
Reference in New Issue
Block a user