PluginProbe
Image Optimizer – Compress Images and Convert to WebP or AVIF / 1.7.7
Image Optimizer – Compress Images and Convert to WebP or AVIF v1.7.7
1.7.7 1.7.6 1.7.5 1.7.4 trunk 1.0.0 1.0.1 1.0.2 1.1.0 1.2.0 1.2.1 1.3.0 1.4.0 1.4.1 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 1.6.5 All 33 releases
image-optimization / modules / optimization / module.php

module.php in Image Optimizer – Compress Images and Convert to WebP or AVIF 1.7.7, at modules/optimization/module.php

115 lines 2.7 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 namespace ImageOptimization\Modules\Optimization;
3
4 use ImageOptimization\Classes\Module_Base;
5 use ImageOptimization\Modules\Backups\Rest\Restore_Single;
6 use ImageOptimization\Modules\Optimization\Rest\Optimize_Single_Image;
7 use ImageOptimization\Modules\Settings\Module as Settings_Module;
8 use Throwable;
9
10 // @codeCoverageIgnoreStart
11 if ( ! defined( 'ABSPATH' ) ) {
12 exit; // Exit if accessed directly.
13 }
14 // @codeCoverageIgnoreEnd
15
16 class Module extends Module_Base {
17 public function get_name(): string {
18 return 'optimization';
19 }
20
21 public static function routes_list(): array {
22 return [
23 'Optimize_Single_Image',
24 'Optimize_Bulk',
25 'Get_Bulk_Optimization_Images',
26 'Optimization_Status',
27 'Cancel_Bulk_Optimization',
28 ];
29 }
30
31 public static function component_list(): array {
32 return [
33 'Avif_Compatibility',
34 'Media_Control',
35 'Single_Optimization',
36 'Upload_Optimization',
37 'Bulk_Optimization',
38 'List_View_Pointer',
39 'Admin_Bulk_Actions',
40 'Admin_Filter',
41 'Retry',
42 'Bulk_Operation_Recovery',
43 'Actions_Cleanup',
44 ];
45 }
46
47 /**
48 * Enqueue styles and scripts
49 */
50 public function enqueue_scripts() {
51 $asset_file = include IMAGE_OPTIMIZATION_ASSETS_PATH . 'build/control.asset.php';
52
53 foreach ( $asset_file['dependencies'] as $style ) {
54 wp_enqueue_style( $style );
55 }
56
57 add_thickbox();
58
59 wp_enqueue_style(
60 'image-optimization-control',
61 $this->get_css_assets_url( 'control' ),
62 [],
63 IMAGE_OPTIMIZATION_VERSION,
64 );
65
66 wp_enqueue_script(
67 'image-optimization-control',
68 $this->get_js_assets_url( 'control' ),
69 $asset_file['dependencies'],
70 IMAGE_OPTIMIZATION_VERSION,
71 true
72 );
73
74 wp_set_script_translations( 'image-optimization-control', 'image-optimization' );
75
76 wp_localize_script(
77 'image-optimization-control',
78 'imageOptimizerControlSettings',
79 [
80 'optimizeSingleImageNonce' => wp_create_nonce( Optimize_Single_Image::NONCE_NAME ),
81 'restoreSingleImageNonce' => wp_create_nonce( Restore_Single::NONCE_NAME ),
82 'connectLink' => admin_url( 'admin.php?page=' . Settings_Module::SETTING_BASE_SLUG . '&action=connect' ),
83 ]
84 );
85 }
86
87 public static function load_template( $path, $name, $args = [] ): bool {
88 $templates_path = sprintf(
89 '%s/templates/%s/%s.php',
90 __DIR__,
91 $path,
92 $name
93 );
94
95 try {
96 load_template( $templates_path, false, $args );
97 } catch ( Throwable $t ) {
98 return false;
99 }
100
101 return true;
102 }
103
104 /**
105 * Module constructor.
106 */
107 public function __construct() {
108 $this->register_components();
109 $this->register_routes();
110
111 add_action( 'admin_enqueue_scripts', [ $this, 'enqueue_scripts' ] );
112 add_action( 'elementor/editor/after_enqueue_scripts', [ $this, 'enqueue_scripts' ] );
113 }
114 }
115