/**
 * Function to simplify replacements of absolute vs. relative paths when using magicmin
 *
 * @access public
 * @param string $output_filename
 * @param array $files
 * @param string $output_directory (just the 'css', 'js' etc... bit)
 * @param string $type (js, css)
 * @return string
 */
function magic_min_merge($output_filename, $files = array(), $output_directory = 'css')
{
    if (empty($files)) {
        return '';
    }
    require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'class.magic-min.php';
    $output_type = strtolower(pathinfo(basename($output_filename), PATHINFO_EXTENSION));
    $minified = new Minifier(array('closure' => true, 'echo' => false, 'timer' => false, 'hashed_filenames' => true, 'remove_comments' => true));
    switch ($output_type) {
        case 'css':
            return '<link rel="stylesheet" href="' . $minified->merge($output_directory . '/' . $output_filename, $output_directory, $files, $output_type) . '" />' . PHP_EOL;
            break;
        case 'js':
        default:
            return '<script src="' . $minified->merge($output_directory . '/' . $output_filename, $output_directory, $files, $output_type) . '"></script>' . PHP_EOL;
            break;
    }
}
 public static function renderCss($position = 'header', $app = 'front')
 {
     $_css = self::sortCssByPriority();
     $compress_array = array();
     $stylesheet = '';
     if (is_array($_css)) {
         foreach ($_css as $p => $__css) {
             if (is_array($__css)) {
                 foreach ($__css as $css) {
                     if ($position == 'header' && $css['options'] && $css['options']['position'] == 'footer') {
                         continue;
                     } else {
                         if ($position != 'header' && (!$css['options'] || $css['options']['position'] != 'footer')) {
                             continue;
                         }
                     }
                     if ($css['options'] && $css['options']['condition']) {
                         $stylesheet .= "\t<!--[" . $css['options']['condition'] . "]>\n\t";
                     }
                     switch ($css['type']) {
                         case 'source':
                             $stylesheet .= "\t" . '<style id="' . $css['id'] . '"' . ($css['options'] && $css['options']['class'] ? ' class="' . $css['options']['class'] . '"' : '') . ' type="text/css">' . "\n\t\t" . $css['css'] . "\n\t</style>\n";
                             break;
                         case 'src':
                         default:
                             if (DEBUG_MODE == false && $css['options']['compress'] == true) {
                                 $compress_path_str .= $css['css'];
                                 if (ROOT == '.') {
                                     $compress_array[] = ltrim($css['css'], CADB_URI);
                                 } else {
                                     $compress_array[] = ltrim($css['css'], '/');
                                 }
                             } else {
                                 $stylesheet .= "\t" . '<link id="' . $css['id'] . '"' . ($css['options'] && $css['options']['class'] ? ' class="' . $css['options']['class'] . '"' : '') . ' rel="stylesheet" href="' . $css['css'] . '">' . "\n";
                             }
                             break;
                     }
                     if ($css['options'] && $css['options']['condition']) {
                         $stylesheet .= "\t<![endif]-->\n";
                     }
                 }
             }
         }
     }
     if (@count($compress_array) > 0) {
         $compress_file = CADB_CACHE_PATH . "/compress/" . hash('md5', $compress_path_str) . ".css";
         $compress_uri = CADB_DATA_URI . "/cache/compress/" . hash('md5', $compress_path_str) . ".css.php";
         if (!file_exists(CADB_CACHE_PATH)) {
             mkdir(CADB_CACHE_PATH, 0707);
             chmod(CADB_CACHE_PATH, 0707);
         }
         if (!file_exists(CADB_CACHE_PATH . "/compress")) {
             mkdir(CADB_CACHE_PATH . "/compress", 0707);
             chmod(CADB_CACHE_PATH . "/compress", 0707);
         }
         $vars = array('encode' => true, 'timer' => true, 'gzip' => true, 'closure' => true, 'echo' => false, 'remove_comments' => true);
         $minified = new \Minifier($vars);
         $stylesheet .= "\t" . '<link id="cadb_css_' . self::getUniqueID($compress_uri) . '" rel="stylesheet" href="' . CADB_URI . ltrim($minified->merge($compress_file, 'css', $compress_array), CADB_PATH) . '">' . "\n";
     }
     return $stylesheet;
 }
예제 #3
0
파일: index.php 프로젝트: DC92/MyLeaflet2
if (!is_dir('../dist/images')) {
    mkdir('../dist/images');
}
if (!is_dir('../dist/src')) {
    mkdir('../dist/src');
}
copy('../LICENSE.txt', '../dist/LICENSE.txt');
copy('../proxy.php', '../dist/proxy.php');
copy('../github.com/Dominique92/Leaflet.MapMultiCRS/swiss.html', '../dist/src/swiss.html');
// Script de test des couches SwissTopo
file_put_contents('../dist/src/leaflet.css', '@import url("../leaflet.css");');
file_put_contents('../dist/READ.ME', "For production, include:\n<link type=\"text/css\" rel=\"stylesheet\" href=\"leaflet.css\" />\n<script type=\"text/javascript\" src=\"leaflet.js\"></script>\n\nFor debug, include:\n<link type=\"text/css\" rel=\"stylesheet\" href=\"leaflet.css\" />\n<script type=\"text/javascript\" src=\"src/leaflet.js\"></script>\n\nDo not modify the files of this directory:\nthe source of this software is available at : https://github.com/Dominique92/MyLeaflet\n");
// On compresse les librairies
$minified = new Minifier(array('encode' => false, 'timer' => false, 'gzip' => false, 'closure' => false, 'remove_comments' => true, 'echo' => false, 'create_new' => true));
preg_match_all('/\\("\\.\\.\\/([a-zA-Z0-9\\-\\/\\.]+)"\\)/', file_get_contents('../src/leaflet.css'), $css_list);
$minified->merge('../dist/leaflet.css', '', $css_list[1]);
preg_match_all('/\'\\.\\.\\/([a-zA-Z0-9\\-\\/\\.]+)\',/', file_get_contents('../src/leaflet.js'), $js_list);
$minified->merge('../dist/leaflet.js', '', $js_list[1]);
// Mise à jour pluggins Dominique92
foreach (glob('../github.com/Dominique92/*/*') as $f) {
    $fs = explode('/', $f);
    if (is_dir('../../' . $fs[3])) {
        copy($f, '../../' . $fs[3] . '/' . $fs[4]);
        echo '<br/>copy ' . $f . ' to ../../' . $fs[3] . '/' . $fs[4];
    }
}
?>
<p>FIN</p>
<p><a href=".">RELANCER BUILD</a></p>
<p><a href="..">RETOUR DEMO</a></p>
예제 #4
0
 private function minify($assets, $dir)
 {
     $css_to_minify = array();
     $js_to_minify = array();
     foreach ($assets as $asset) {
         // Don't minify direct assets
         if (isset($asset['direct']) && $asset['direct']) {
             continue;
         }
         // Only minify public assets
         if (!isset($asset['public']) || !$asset['public']) {
             continue;
         }
         switch (strtolower($asset['type'])) {
             case 'css':
                 $css_to_minify[] = $asset['dir'];
                 break;
             case 'js':
                 $js_to_minify[] = $asset;
                 break;
         }
     }
     $minify_files = array();
     /**
      * CSS minification
      */
     // CSS without base
     $minify_files[] = array('name' => 'wpurp-public-without-base.css', 'files' => array_unique($css_to_minify));
     // CSS with normal base
     array_unshift($css_to_minify, WPUltimateRecipe::get()->coreDir . '/css/layout_base.css');
     $minify_files[] = array('name' => 'wpurp-public.css', 'files' => array_unique($css_to_minify));
     // CSS with forced base
     $css_to_minify[0] = WPUltimateRecipe::get()->coreDir . '/css/layout_base_forced.css';
     $minify_files[] = array('name' => 'wpurp-public-forced.css', 'files' => array_unique($css_to_minify));
     /**
      * JS minification
      */
     // Get all the named JS files
     $js_names = array();
     foreach ($js_to_minify as $js) {
         if (isset($js['name'])) {
             $js_names[] = $js['name'];
         }
     }
     // Order JS files (max 20 loops)
     $js_minify_order = array();
     $js_ordered_names = array();
     for ($i = 0; $i < 20; $i++) {
         foreach ($js_to_minify as $index => $js) {
             // Check which dependencies we need to actually resolve right now
             $actual_deps = array();
             if (isset($js['deps'])) {
                 foreach ($js['deps'] as $dep) {
                     if (in_array($dep, $js_names) && !in_array($dep, $js_ordered_names)) {
                         $actual_deps[] = $dep;
                     }
                 }
             }
             if (count($actual_deps) == 0) {
                 $js_minify_order[] = $js['dir'];
                 if (isset($js['name'])) {
                     $js_ordered_names[] = $js['name'];
                 }
                 unset($js_to_minify[$index]);
             }
         }
     }
     if (count($js_to_minify) > 0) {
         var_dump('WP Ultimate Recipe: JS minification problem');
     }
     $minify_files[] = array('name' => 'wpurp-public.js', 'files' => array_unique($js_minify_order));
     /**
      * Performing the minification
      */
     require_once WPUltimateRecipe::get()->coreDir . '/vendor/magic-min/class.magic-min.php';
     $minified = new Minifier(array('echo' => false, 'gzip' => false));
     foreach ($minify_files as $minify_file) {
         // Remove current file (easier while developing)
         if (is_file($dir . $minify_file['name'])) {
             unlink($dir . $minify_file['name']);
         }
         // Minify
         $minified->merge($dir . $minify_file['name'], '', $minify_file['files']);
     }
 }