93 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			93 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
/**
 | 
						|
 * Plugin Name: Squeeze
 | 
						|
 * Description: Compress images by squoosh.app
 | 
						|
 * Author URI:  https://bogdan.kyiv.ua
 | 
						|
 * Author:      Bogdan Bendziukov
 | 
						|
 * Version:     1.2
 | 
						|
 *
 | 
						|
 * Text Domain: squeeze
 | 
						|
 * Domain Path: /languages
 | 
						|
 *
 | 
						|
 * License:     GNU GPL v3
 | 
						|
 * License URI: https://www.gnu.org/licenses/gpl-3.0.html
 | 
						|
 *
 | 
						|
 * Network:     false
 | 
						|
 * 
 | 
						|
 */
 | 
						|
 | 
						|
// Exit if accessed directly.
 | 
						|
if (!defined('ABSPATH')) {
 | 
						|
	exit;
 | 
						|
}
 | 
						|
 | 
						|
define('SQUEEZE_PLUGIN_DIR', plugin_dir_path(__FILE__));
 | 
						|
define('SQUEEZE_PLUGIN_URL', plugin_dir_url(__FILE__));
 | 
						|
 | 
						|
add_action('plugins_loaded', 'squeeze_load_textdomain');
 | 
						|
/**
 | 
						|
 * Load plugin textdomain
 | 
						|
 */
 | 
						|
function squeeze_load_textdomain() {
 | 
						|
	load_plugin_textdomain('squeeze', false, dirname(plugin_basename(__FILE__)) . '/languages/');
 | 
						|
}
 | 
						|
 | 
						|
include_once(SQUEEZE_PLUGIN_DIR . 'src/settings.php');
 | 
						|
include_once(SQUEEZE_PLUGIN_DIR . 'src/handlers.php');
 | 
						|
 | 
						|
 | 
						|
add_action('admin_print_footer_scripts', 'squeeze_block_assets');
 | 
						|
/**
 | 
						|
 * Enqueue assets
 | 
						|
 */
 | 
						|
function squeeze_block_assets() {
 | 
						|
	global $pagenow;
 | 
						|
 | 
						|
	$options = get_option( 'squeeze_options' );
 | 
						|
	$default_options = squeeze_get_default_value( null, true); // get all default values
 | 
						|
	$js_options = array();
 | 
						|
 | 
						|
	foreach ($default_options as $key => $value) {
 | 
						|
		if (isset($options[$key])) {
 | 
						|
			if (is_numeric($options[$key])) {
 | 
						|
				$js_options[$key] = intval($options[$key]);
 | 
						|
			} elseif ($options[$key] === "on") {
 | 
						|
				$js_options[$key] = true;
 | 
						|
			}
 | 
						|
		} else {
 | 
						|
			$js_options[$key] = $value;
 | 
						|
		}
 | 
						|
	}
 | 
						|
 | 
						|
	// Enqueue script for backend.
 | 
						|
 | 
						|
	wp_enqueue_script(
 | 
						|
		'squeeze-script',
 | 
						|
		// Handle.
 | 
						|
		plugins_url('/assets/js/script.bundle.js', __FILE__),
 | 
						|
		array('jquery', 'wp-mediaelement'),
 | 
						|
		// Dependencies, defined above.
 | 
						|
		null,
 | 
						|
		true // Enqueue the script in the footer.
 | 
						|
	);
 | 
						|
 | 
						|
 | 
						|
	// WP Localized globals. Use dynamic PHP stuff in JavaScript via `squeeze` object.
 | 
						|
	wp_localize_script(
 | 
						|
		'squeeze-script',
 | 
						|
		'squeeze',
 | 
						|
		// Array containing dynamic data for a JS Global.
 | 
						|
		[
 | 
						|
			'pluginUrl' => SQUEEZE_PLUGIN_URL,
 | 
						|
			'ajaxUrl' => admin_url('admin-ajax.php'),
 | 
						|
			'nonce' => wp_create_nonce('squeeze-nonce'),
 | 
						|
			'options' => json_encode($js_options),
 | 
						|
		]
 | 
						|
	);
 | 
						|
 | 
						|
	wp_set_script_translations('squeeze-script', 'squeeze', plugin_dir_path(__DIR__) . 'languages');
 | 
						|
 | 
						|
}
 | 
						|
 | 
						|
 |