diff --git a/src/Form/SettingsForm.php b/src/Form/SettingsForm.php index e2cb09d..6df0304 100644 --- a/src/Form/SettingsForm.php +++ b/src/Form/SettingsForm.php @@ -98,7 +98,7 @@ class SettingsForm extends ConfigFormBase { } else { if (array_key_exists($export_type, $disabled_engines)) { - $disabled_engines[$export_type] = array($plugin_id => $definition['label']); + $disabled_engines[$export_type][] = array($plugin_id => $definition['label']); } else { $disabled_engines[$export_type][$plugin_id] = $definition['label']; @@ -133,11 +133,12 @@ class SettingsForm extends ConfigFormBase { '#default_value' => $config->get('force_download'), ]; + // @TODO, allow other print engines to be configured. $form['entity_print']['pdf_engine'] = [ '#type' => 'select', '#title' => $this->t('PDF Engine'), '#description' => $this->t('Select the PDF engine to render the Print'), - '#options' => $print_engines['pdf'], + '#options' => !empty($print_engines['pdf']) ? $print_engines['pdf'] : [], '#default_value' => $config->get('print_engines.pdf_engine'), '#empty_option' => $this->t('- None -'), '#ajax' => [ @@ -158,7 +159,8 @@ class SettingsForm extends ConfigFormBase { // If we have a plugin id and the plugin hasn't since been disabled then we // load the config for the plugin. - if ($pdf_plugin_id && !in_array($pdf_plugin_id, array_keys($disabled_engines), TRUE)) { + // @TODO, support all print engine types. + if ($pdf_plugin_id && !in_array($pdf_plugin_id, array_keys($disabled_engines['pdf']), TRUE)) { $form['entity_print']['pdf_engine_config'][$pdf_plugin_id] = $this->getPluginForm($pdf_plugin_id, $form_state); } diff --git a/src/Plugin/EntityPrint/PrintEngine/DomPdf.php b/src/Plugin/EntityPrint/PrintEngine/DomPdf.php index 6c99a61..c5267b4 100644 --- a/src/Plugin/EntityPrint/PrintEngine/DomPdf.php +++ b/src/Plugin/EntityPrint/PrintEngine/DomPdf.php @@ -158,6 +158,7 @@ class DomPdf extends PrintEngineBase implements ContainerFactoryPluginInterface * {@inheritdoc} */ public static function dependenciesAvailable() { + return false; return class_exists('Dompdf\Dompdf'); } diff --git a/src/Tests/EntityPrintAdminTest.php b/src/Tests/EntityPrintAdminTest.php index 3d14a7c..1cbf715 100644 --- a/src/Tests/EntityPrintAdminTest.php +++ b/src/Tests/EntityPrintAdminTest.php @@ -58,7 +58,7 @@ class EntityPrintAdminTest extends WebTestBase { $this->assertNoText('Dompdf Settings'); // Make sure we also get a warning telling us to install it. - $this->assertText('Dompdf is not available because it is not configured. Please install using composer.'); + $this->assertText('Dompdf is not available because it is not configured. Please install with:'); // Ensure saving the form without any PDF engine selected doesn't blow up. $this->drupalPostForm(NULL, [], 'Save configuration'); @@ -82,7 +82,7 @@ class EntityPrintAdminTest extends WebTestBase { ], 'Save configuration'); /** @var \Drupal\entity_print\Entity\PrintEngineInterface $config_entity */ - $config_entity = \Drupal::entityTypeManager()->getStorage('pdf_engine')->load('testprintengine'); + $config_entity = \Drupal::entityTypeManager()->getStorage('print_engine')->load('testprintengine'); // Assert the expected settings were stored. $this->assertEqual('testprintengine', $config_entity->id()); diff --git a/tests/modules/entity_print_test/src/Plugin/EntityPrint/PrintEngine/TestPrintEngine.php b/tests/modules/entity_print_test/src/Plugin/EntityPrint/PrintEngine/TestPrintEngine.php index 68dda16..bff1322 100644 --- a/tests/modules/entity_print_test/src/Plugin/EntityPrint/PrintEngine/TestPrintEngine.php +++ b/tests/modules/entity_print_test/src/Plugin/EntityPrint/PrintEngine/TestPrintEngine.php @@ -32,7 +32,7 @@ class TestPrintEngine extends PrintEngineBase { */ public function send($filename = NULL) { // Echo the response and then flush, just like a Prin implementation would. - echo 'Using testprinengine - ' . $this->configuration['test_engine_suffix']; + echo 'Using testprintengine - ' . $this->configuration['test_engine_suffix']; echo $this->html; flush(); }