Esempio n. 1
0
 /**
  * Combine the files in $files into a combine.php request
  * If $page->head_force_inline is true, resources will be included inline in the document
  *
  * @param array $files Array of files relative to $dataDir
  * @param string $type The type of resource being combined
  *
  */
 static function CombineFiles($files, $type, $combine)
 {
     global $page;
     //only need file paths
     foreach ($files as $key => $script) {
         if (is_array($script)) {
             $files[$key] = $script['file'];
         }
     }
     $files = array_unique($files);
     $files = array_filter($files);
     //remove empty elements
     // Force resources to be included inline
     // CheckFile will fix the $file path if needed
     if ($page->head_force_inline) {
         if ($type == 'css') {
             echo '<style type="text/css">';
         } else {
             echo '<script type="text/javascript">';
         }
         foreach ($files as $file_key => $file) {
             $full_path = gp_combine::CheckFile($file);
             if (!$full_path) {
                 continue;
             }
             readfile($full_path);
             echo ";\n";
         }
         if ($type == 'css') {
             echo '</style>';
         } else {
             echo '</script>';
         }
         return;
     }
     //files not combined except for script components
     if (!$combine || isset($_REQUEST['no_combine']) && common::LoggedIn()) {
         foreach ($files as $file_key => $file) {
             $html = "\n" . '<script type="text/javascript" src="%s"></script>';
             if (strpos($file, '.less') !== false) {
                 $html = "\n" . '<link type="text/css" href="%s" rel="stylesheet/less" />';
             } elseif ($type == 'css') {
                 $html = "\n" . '<link type="text/css" href="%s" rel="stylesheet"/>';
             }
             gp_combine::CheckFile($file);
             if (common::LoggedIn()) {
                 $file .= '?v=' . rawurlencode(gpversion);
             }
             echo sprintf($html, common::GetDir($file, true));
         }
         return;
     }
     $html = "\n" . '<script type="text/javascript" src="%s"></script>';
     if ($type == 'css') {
         $html = "\n" . '<link rel="stylesheet" type="text/css" href="%s"/>';
     }
     //create combine request
     $combined_file = gp_combine::GenerateFile($files, $type);
     echo sprintf($html, common::GetDir($combined_file, true));
 }