includeHiddenField = $includeHiddenField;
return $this;
}
/**
* @return bool
*/
public function getIncludeHiddenField() {
return $this->includeHiddenField;
}
public function performReadonlyTransformation() {
return clone $this;
}
public function Type() {
return 'readonly';
}
public function castingHelper($field) {
// Get dynamic cast for 'Value' field
if(strcasecmp($field, 'Value') === 0) {
return $this->getValueCast();
}
// Fall back to default casting
return parent::castingHelper($field);
}
public function getSchemaStateDefaults() {
$values = parent::getSchemaStateDefaults();
// Suppress `('none')` from appearing in react as a literal
$values['value'] = $this->dataValue();
return $values;
}
/**
* If $dontEscape is true the returned value will be plain text
* and should be escaped in templates via .XML
*
* If $dontEscape is false the returned value will be safely encoded,
* but should not be escaped by the frontend.
*
* @return mixed|string
*/
public function Value() {
// Get raw value
$value = $this->dataValue();
if($value) {
return $value;
}
// "none" text
$label = _t('FormField.NONE', 'none');
return "('{$label}')";
}
/**
* Get custom cating helper for Value() field
*
* @return string
*/
public function getValueCast() {
// Casting class for 'none' text
$value = $this->dataValue();
if(empty($value)) {
return 'HTMLFragment';
}
// Use default casting
return $this->config()->casting['Value'];
}
}