public static function build($files, $attrs, $is_generate_file = true, $index = array()) { if (is_string($files)) { $files = array($files); } $categorized = array(); self::$cdn_merged = JBETOLO_CDN_MAP && (bool) plgSystemJBetolo::param('cdn_merged'); $deleteSrcs = plgSystemJBetolo::param('delete'); self::$deleteSrcs = $deleteSrcs ? explode(',', $deleteSrcs) : array(); foreach ($files as $f => $file) { self::$root = null; self::$contents = self::$files = array(); self::load($file); $attr = ''; if (!empty($index)) { foreach ($index as $ind) { if ($ind['src'] == $file) { $attr = $ind['attr']; break; } } } if (empty($attr) && !empty($attrs)) { $attr = $attrs[$f]; } if (is_array($attr)) { $attr = implode(',', $attr); } if (!isset($categorized[$attr])) { $categorized[$attr] = array('files' => array(), 'contents' => array(), 'srcs' => array()); } if (is_array(self::$files)) { $categorized[$attr]['files'] = array_merge($categorized[$attr]['files'], self::$files); $categorized[$attr]['contents'] = array_merge($categorized[$attr]['contents'], self::$contents); } else { $categorized[$attr]['files'][] = self::$files; $categorized[$attr]['contents'][] = self::$contents; } $categorized[$attr]['srcs'] = array_merge($categorized[$attr]['srcs'], array($file)); } $res = array(); if ($is_generate_file) { foreach ($categorized as $attr => $recs) { $res[$attr] = jbetoloFileHelper::createFileName($recs['files'], 'css'); $res[$attr]['srcs'] = $recs['srcs']; jbetoloFileHelper::writeToFile($res[$attr]['merged'], $recs['contents'], 'css'); } } else { $res = jbetoloHelper::getArrayValues($categorized['main']['contents'], 'content'); $res = implode(chr(13), $res); } self::$contents = self::$files = null; return $res; }