PluginProbe
JCH Optimize / trunk
JCH Optimize vtrunk
6.0.2 6.0.1 trunk 1.0.1 1.0.2 1.1.0 1.1.1 1.1.2 1.1.3 1.1.4 1.2.0 1.2.1 2.0.0 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.0.8 2.1.0 2.10.0 2.2.0 2.2.1 All 58 releases
jch-optimize / src / Controller / OptimizeImages.php

OptimizeImages.php in JCH Optimize trunk, at src/Controller/OptimizeImages.php

84 lines 2.5 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 /**
4 * JCH Optimize - Performs several front-end optimizations for fast downloads
5 *
6 * @package jchoptimize/wordpress-platform
7 * @author Samuel Marshall <samuel@jch-optimize.net>
8 * @copyright Copyright (c) 2020 Samuel Marshall / JCH Optimize
9 * @license GNU/GPLv3, or later. See LICENSE file
10 *
11 * If LICENSE file missing, see <http://www.gnu.org/licenses/>.
12 */
13
14 namespace JchOptimize\WordPress\Controller;
15
16 use _JchOptimizeVendor\V91\Joomla\Input\Input;
17 use JchOptimize\Core\Admin\Icons;
18 use JchOptimize\Core\Mvc\Controller;
19 use JchOptimize\WordPress\Contracts\WillEnqueueAssets;
20 use JchOptimize\WordPress\Log\WordpressNoticeLogger;
21 use JchOptimize\WordPress\View\OptimizeImageHtml;
22
23 use function __;
24 use function is_null;
25 use function sprintf;
26 use function wp_redirect;
27
28 class OptimizeImages extends Controller implements WillEnqueueAssets
29 {
30 use AuthorizesAdminRequestsTrait;
31
32 public function __construct(private OptimizeImageHtml $view, private Icons $icons, ?Input $input)
33 {
34 parent::__construct($input);
35 }
36
37 public function execute(): bool
38 {
39 $this->authorizeManageOptions();
40 /** @var Input $input */
41 $input = $this->getInput();
42 /** @var WordpressNoticeLogger $logger */
43 $logger = $this->logger;
44 /** @var string|null $status */
45 $status = $input->get('status');
46
47 if (is_null($status)) {
48 $this->view->setData(['tab' => 'optimizeimages', 'icons' => $this->icons]);
49
50 echo $this->view->render();
51 } else {
52 if ($status == 'success') {
53 $cnt = $input->getString('cnt');
54 $webp = $input->getString('webp');
55
56 $logger->success(
57 sprintf(
58 __(
59 '%1$d images successfully optimized, %2$s WEBPs generated.',
60 'jch-optimize'
61 ),
62 $cnt,
63 $webp
64 )
65 );
66 } else {
67 $msg = $input->getString('msg');
68 $logger->error(__('The Optimize Image function failed with message "' . $msg, 'jch-optimize'));
69 }
70
71 wp_redirect('options-general.php?page=jch_optimize&tab=optimizeimages');
72 }
73
74 return true;
75 }
76
77 public function enqueueAssets(): void
78 {
79 if ($this->getInput()->get('status') === null) {
80 $this->view->loadResources();
81 }
82 }
83 }
84