public function TransactionOperationForm::buildForm in Transaction 8
Form constructor.
Parameters
array $form: An associative array containing the structure of the form.
\Drupal\Core\Form\FormStateInterface $form_state: The current state of the form.
Return value
array The form structure.
Overrides EntityForm::buildForm
File
- src/
Form/ TransactionOperationForm.php, line 17
Class
- TransactionOperationForm
- Builds the form to add or edit a transaction operation.
Namespace
Drupal\transaction\FormCode
public function buildForm(array $form, FormStateInterface $form_state) {
$form = parent::buildForm($form, $form_state);
/** @var \Drupal\transaction\TransactionOperationInterface $transaction_operation */
$transaction_operation = $this->entity;
$form['label'] = [
'#type' => 'textfield',
'#title' => $this
->t('Label'),
'#default_value' => $transaction_operation
->label(),
'#description' => $this
->t('A short, descriptive title for this transaction operation. It will be used in administrative interfaces.'),
'#maxlength' => 255,
'#required' => TRUE,
'#weight' => -3,
];
$form['id'] = [
'#type' => 'machine_name',
'#title' => $this
->t('Machine name'),
'#default_value' => $transaction_operation
->id(),
'#description' => $this
->t('A unique machine-readable name containing letters, numbers, and underscores.'),
'#weight' => -2,
'#machine_name' => [
'exists' => '\\Drupal\\transaction\\Entity\\TransactionOperation::load',
],
'#disabled' => !$transaction_operation
->isNew(),
'#required' => TRUE,
];
$form['description'] = [
'#type' => 'textfield',
'#title' => $this
->t('Description template'),
'#default_value' => $transaction_operation
->getDescription(),
'#description' => $this
->t('The description template for this operation. It admits tokens that will replaced with values from the transaction or the target entity.'),
'#maxlength' => 255,
'#required' => TRUE,
'#weight' => 10,
];
$form['details'] = [
'#type' => 'textarea',
'#title' => $this
->t('Description detail templates'),
'#default_value' => implode("\n", $transaction_operation
->getDetails()),
'#description' => $this
->t('Template for additional details for this operation. Enter one line per detail entry template. It admits tokens that will replaced with values from the transaction or the target entity.'),
'#rows' => 5,
'#cols' => 60,
'#required' => FALSE,
'#weight' => 10,
];
if ($this->moduleHandler
->moduleExists('token')) {
$form['token_help'] = [
'#title' => $this
->t('Replacement patterns'),
'#type' => 'fieldset',
'#collapsible' => TRUE,
'#collapsed' => TRUE,
'#weight' => 20,
];
if ($transaction_type_id = $transaction_operation
->getTransactionTypeId()) {
$transaction_type = $this->entityTypeManager
->getStorage('transaction_type')
->load($transaction_type_id);
}
else {
$transaction_type = $this
->getRequest()
->get('transaction_type');
}
$form['token_help']['browser'] = [
'#theme' => 'token_tree_link',
'#token_types' => [
'transaction',
TransactorHandler::getTokenContextFromEntityTypeId($transaction_type
->getTargetEntityTypeId()),
],
];
}
else {
$form['token_help'] = [
'#type' => 'markup',
'#markup' => $this
->t('Enable the <a href=":url">Token module</a> to view the available token browser.', [
':url' => 'https://www.drupal.org/project/token',
]),
'#weight' => 20,
];
}
return $form;
}