PluginProbe
Packeta / 1.2.2
Packeta v1.2.2
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 / Order / Modal.php

Modal.php in Packeta 1.2.2, at src/Packetery/Module/Order/Modal.php

104 lines 2.1 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Class Modal
4 *
5 * @package Packetery\Module\Order
6 */
7
8 declare( strict_types=1 );
9
10
11 namespace Packetery\Module\Order;
12
13 use Packetery\Module\FormFactory;
14 use PacketeryLatte\Engine;
15 use PacketeryNette\Forms\Form;
16
17 /**
18 * Class Modal
19 *
20 * @package Packetery\Module\Order
21 */
22 class Modal {
23
24 /**
25 * Latte engine.
26 *
27 * @var Engine
28 */
29 private $latteEngine;
30
31 /**
32 * Form factory.
33 *
34 * @var FormFactory
35 */
36 private $formFactory;
37
38 /**
39 * Order controller.
40 *
41 * @var ControllerRouter
42 */
43 private $orderControllerRouter;
44
45 /**
46 * Modal constructor.
47 *
48 * @param Engine $latteEngine Latte engine.
49 * @param FormFactory $formFactory Form factory.
50 * @param ControllerRouter $orderController Order controller.
51 */
52 public function __construct( Engine $latteEngine, FormFactory $formFactory, ControllerRouter $orderController ) {
53 $this->latteEngine = $latteEngine;
54 $this->formFactory = $formFactory;
55 $this->orderControllerRouter = $orderController;
56 }
57
58 /**
59 * Registers order modal.
60 */
61 public function register(): void {
62 add_action( 'admin_head', [ $this, 'renderTemplate' ] );
63 }
64
65 /**
66 * Renders template.
67 */
68 public function renderTemplate(): void {
69 $nonce = wp_create_nonce( 'wp_rest' );
70 $orderSaveUrl = $this->orderControllerRouter->getRouteUrl( Controller::PATH_SAVE_MODAL );
71 $this->latteEngine->render(
72 PACKETERY_PLUGIN_DIR . '/template/order/modal-template.latte',
73 [
74 'nonce' => $nonce,
75 'orderSaveUrl' => $orderSaveUrl,
76 'form' => $this->createForm(),
77 ]
78 );
79 }
80
81 /**
82 * Creates order modal form.
83 *
84 * @return Form
85 */
86 public function createForm(): Form {
87 $form = $this->formFactory->create();
88 $form->addText( 'packetery_weight', __( 'weight', 'packetery' ) . ' (kg)' )
89 ->setRequired( false )
90 ->addRule( Form::FLOAT );
91
92 $form->addSubmit( 'submit', __( 'save', 'packetery' ) );
93 $form->addButton( 'cancel', __( 'cancel', 'packetery' ) );
94
95 $form->setDefaults(
96 [
97 'packetery_weight' => '{{ data.order.packetery_weight }}',
98 ]
99 );
100
101 return $form;
102 }
103 }
104