public function PrintableConfigurationForm::buildForm in Printer and PDF versions for Drupal 8+ 8
Same name and namespace in other branches
- 2.x src/Form/PrintableConfigurationForm.php \Drupal\printable\Form\PrintableConfigurationForm::buildForm()
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 ConfigFormBase::buildForm
File
- src/
Form/ PrintableConfigurationForm.php, line 82
Class
- PrintableConfigurationForm
- Provides shared configuration form for all printable formats.
Namespace
Drupal\printable\FormCode
public function buildForm(array $form, FormStateInterface $form_state, $printable_format = NULL) {
// Allow users to choose what entities printable is enabled for.
$form['settings']['printable_entities'] = [
'#type' => 'checkboxes',
'#title' => $this
->t('Printable Enabled Entities'),
'#description' => $this
->t('Select the entities that printable support should be enabled for.'),
'#options' => [],
'#default_value' => [],
];
// Build the options array.
foreach ($this->printableEntityManager
->getCompatibleEntities() as $entity_type => $entity_definition) {
$form['settings']['printable_entities']['#options'][$entity_type] = $entity_definition
->getLabel();
}
// Build the default values array.
foreach ($this->printableEntityManager
->getPrintableEntities() as $entity_type => $entity_definition) {
$form['settings']['printable_entities']['#default_value'][] = $entity_type;
}
// Provide option to open printable page in a new tab/window.
$form['settings']['open_target_blank'] = [
'#type' => 'checkbox',
'#title' => $this
->t('Open in New Tab'),
'#description' => $this
->t('Open the printable version in a new tab/window.'),
'#default_value' => $this
->config('printable.settings')
->get('open_target_blank'),
];
// Allow users to include CSS from the current theme.
$form['settings']['css_include'] = [
'#type' => 'textfield',
'#title' => $this
->t('CSS Include'),
'#description' => $this
->t('Specify an additional CSS file to include. Relative to the root of the Drupal install. The token <em>[theme:theme_machine_name]</em> is available.'),
'#default_value' => $this
->config('printable.settings')
->get('css_include'),
];
// Provide option to turn off link extraction.
$form['settings']['extract_links'] = [
'#type' => 'checkbox',
'#title' => $this
->t('Extract Links'),
'#description' => $this
->t('Extract any links in the content, e.g. "Some Link (http://drupal.org)'),
'#default_value' => $this
->config('printable.settings')
->get('extract_links'),
];
return parent::buildForm($form, $form_state);
}