Assets.php (3088B)
1 <?php 2 3 4 namespace Materialis\Assets; 5 6 class Assets 7 { 8 9 public static function isScriptDebug() 10 { 11 $isScriptDebug = defined("SCRIPT_DEBUG") && SCRIPT_DEBUG; 12 13 return $isScriptDebug; 14 } 15 16 public static function enqueue($type = 'style', $handle, $args = array()) 17 { 18 /** @var \Materialis\Companion $companion */ 19 $companion = \Materialis\Companion::instance(); 20 $data = array_merge(array( 21 'src' => '', 22 'deps' => array(), 23 'has_min' => false, 24 'in_footer' => true, 25 'media' => 'all', 26 'ver' => $companion->version, 27 'in_preview' => true, 28 'register_only' => false, 29 ), $args); 30 31 if (is_customize_preview() && $data['in_preview'] === false) { 32 return; 33 } 34 35 $isScriptDebug = defined("SCRIPT_DEBUG") && SCRIPT_DEBUG; 36 if ($data['has_min'] && ! $isScriptDebug) { 37 if ($type === 'style') { 38 $data['src'] = str_replace('.css', '.min.css', $data['src']); 39 } 40 41 if ($type === 'script') { 42 $data['src'] = str_replace('.js', '.min.js', $data['src']); 43 } 44 } 45 46 if ($type == 'style') { 47 if ($data['register_only'] === true) { 48 wp_register_style($handle, $data['src'], $data['deps'], $data['ver'], $data['media']); 49 } else { 50 wp_enqueue_style($handle, $data['src'], $data['deps'], $data['ver'], $data['media']); 51 52 } 53 } 54 55 if ($type == 'script') { 56 57 if ($data['register_only'] === true) { 58 wp_register_script($handle, $data['src'], $data['deps'], $data['ver'], $data['media']); 59 } else { 60 wp_enqueue_script($handle, $data['src'], $data['deps'], $data['ver'], $data['in_footer']); 61 62 } 63 } 64 65 } 66 67 public static function enqueueStyle($handle, $args) 68 { 69 self::enqueue('style', $handle, $args); 70 } 71 72 public static function enqueueScript($handle, $args) 73 { 74 self::enqueue('script', $handle, $args); 75 } 76 77 public static function groupStyles($handle, $toGroup = array()) 78 { 79 self::enqueueStyle($handle, array( 80 "src" => null, 81 "deps" => $toGroup, 82 )); 83 } 84 85 public static function groupScripts($handle, $toGroup) 86 { 87 88 self::enqueueScript($handle, array( 89 "src" => null, 90 "deps" => $toGroup, 91 "register_only" => true, 92 )); 93 } 94 95 96 public static function replaceScripts($newHandle, $toReplace, $args) 97 { 98 wp_dequeue_script($newHandle); 99 wp_deregister_script($newHandle); 100 foreach ($toReplace as $handle) { 101 wp_dequeue_script($handle); 102 wp_deregister_script($handle); 103 } 104 105 self::enqueueScript($newHandle, $args); 106 } 107 108 }