ru-se.com

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs

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 }