public function BusinessRulesUtil::getVariableFieldsModalInfo in Business Rules 8
Same name and namespace in other branches
- 2.x src/Util/BusinessRulesUtil.php \Drupal\business_rules\Util\BusinessRulesUtil::getVariableFieldsModalInfo()
Display the entity variable fields.
Parameters
\Drupal\business_rules\Entity\Variable $variable: The variable entity.
Return value
\Drupal\Core\Ajax\AjaxResponse|array The AjaxResponse or the render array.
File
- src/
Util/ BusinessRulesUtil.php, line 756
Class
- BusinessRulesUtil
- Class BusinessRulesUtil.
Namespace
Drupal\business_rules\UtilCode
public function getVariableFieldsModalInfo(Variable $variable) {
$fields = $this->entityFieldManager
->getFieldDefinitions($variable
->getTargetEntityType(), $variable
->getTargetBundle());
$field_types = $this->fieldTypePluginManager
->getDefinitions();
$header = [
'variable' => $this
->t('Variable'),
'field' => $this
->t('Field'),
'type' => $this
->t('Type'),
];
$rows = [];
foreach ($fields as $field_name => $field_storage) {
$field_type = $field_storage
->getType();
$rows[] = [
'variable' => [
'data' => [
'#markup' => '{{' . $variable
->id() . '->' . $field_name . '}}',
],
],
'field' => [
'data' => [
'#markup' => $field_storage
->getLabel(),
],
],
'type' => [
'data' => [
'#markup' => $field_types[$field_type]['label'],
],
],
];
}
$content['help'] = [
'#type' => 'markup',
'#markup' => $this
->t('To access a particular multi-value field such as target id, you can use <code>{{@variable_id[delta]}}</code> where "delta" is the delta value to get a one value or <code>{{@variable_id}}</code> to get an array of values.
<br>To access a particular multi-value field label you can use <code>{{@variable_id[delta]->label}}</code> where "delta" is the delta value to get one label or <code>{{@variable_id->label}}</code> to get an array of labels.', [
'@variable_id' => $variable
->id(),
]),
];
$content['variable_fields'] = [
'#type' => 'table',
'#rows' => $rows,
'#header' => $header,
'#sticky' => TRUE,
];
return $content;
}