PluginProbe
Packeta / trunk
Packeta vtrunk
2.3.2 2.3.1 trunk 1.2.2 1.2.3 1.2.4 1.2.5 1.2.6 1.3.0 1.3.1 1.3.2 1.4 1.4.1 1.4.2 1.4.3 1.5.0 1.5.1 1.5.2 1.5.3 1.5.4 1.6.0 1.6.1 1.6.2 1.6.3 1.6.4 All 56 releases
packeta / src / Packetery / Module / Forms / DiagnosticsLoggingFormFactory.php

DiagnosticsLoggingFormFactory.php in Packeta trunk, at src/Packetery/Module/Forms/DiagnosticsLoggingFormFactory.php

65 lines 1.6 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace Packetery\Module\Forms;
4
5 use Packetery\Module\FormFactory;
6 use Packetery\Module\Framework\WpAdapter;
7 use Packetery\Module\MessageManager;
8 use Packetery\Module\Options\OptionNames;
9 use Packetery\Nette\Forms\Controls\SubmitButton;
10 use Packetery\Nette\Forms\Form;
11
12 class DiagnosticsLoggingFormFactory {
13 /** @var FormFactory */
14 private $formFactory;
15
16 /** @var WpAdapter */
17 private $wpAdapter;
18
19 /** @var MessageManager */
20 private $messageManager;
21
22 public function __construct(
23 FormFactory $formFactory,
24 WpAdapter $wpAdapter,
25 MessageManager $messageManager
26 ) {
27 $this->formFactory = $formFactory;
28 $this->wpAdapter = $wpAdapter;
29 $this->messageManager = $messageManager;
30 }
31
32 public function createForm(): Form {
33 $form = $this->formFactory->create();
34 $form->addCheckbox( 'enabled', __( 'Enable logging', 'packeta' ) );
35 $form->addSubmit( 'save', __( 'Save', 'packeta' ) );
36 $form->onSuccess[] = [ $this, 'onFormSuccess' ];
37
38 if ( $form['save'] instanceof SubmitButton &&
39 $form['save']->isSubmittedBy() === false
40 ) {
41 $form->setValues(
42 [
43 'enabled' => $this->wpAdapter->getOption( OptionNames::PACKETERY_DIAGNOSTICS_LOGGING_ENABLED ),
44 ],
45 true
46 );
47 }
48
49 return $form;
50 }
51
52 public function onFormSuccess( Form $form ): void {
53 /** @var array{enabled: bool} $values */
54 $values = $form->getValues( 'array' );
55 $this->wpAdapter->updateOption( OptionNames::PACKETERY_DIAGNOSTICS_LOGGING_ENABLED, $values['enabled'] );
56
57 $this->messageManager->flash_message(
58 $this->wpAdapter->__( 'Settings saved.', 'packeta' ),
59 MessageManager::TYPE_SUCCESS,
60 MessageManager::RENDERER_PACKETERY,
61 'plugin-options'
62 );
63 }
64 }
65