}
exit;
}
+ /**
+ * packScript:
+ *
+ * @param {String} basedir absolute path to files
+ * @param {Array} list of files (ontop of basedir)
+ *
+ *
+ *
+ */
-
- function packScript($basedir, $files, $output_path)
+ function packScript($basedir, $files, $output_url)
{
// this outputs <script tags..>
// either for just the original files,
// first expand files..
$arfiles = array();
+ $ofiles = array();
foreach($files as $f) {
+ if (!file_exists($basedir .'/' .$f)) {
+ continue;
+ }
if (!is_dir($basedir .'/' .$f)) {
- $arfiles[] = $basedir .'/' .$f;
+
+ $arfiles[$basedir .'/' .$f] = filemtime($basedir .'/' .$f);
+ $ofiles[] = $f;
continue;
}
- foreach(scandir($basedir .'/' .$f.'/*.js') as $fx) {
- $arfiles[] = $fx;
+ foreach(glob($basedir .'/' .$f.'/*.js') as $fx) {
+ $arfiles[$fx] = filemtime($fx);
+ $ofiles [] = $f . '/'. basename($fx);
}
}
- print_r($arfiles);exit;
+ $output = md5(serialize($arfiles)) .'.js';
+ if (!file_exists($basedir.'/_cache_/'.$output)) {
+ $this->pack($arfiles,$basedir.'/_cache_/'.$output);
+ }
+ if (file_exists($basedir.'/_cache_/'.$output)) {
+
+ echo '<script type="text/javascript" src="'.$output_url.'/_cache_/'. $output.'"></script>';
+ return;
+ }
+ foreach($ofiles as $f) {
+ echo '<script type="text/javascript" src="'.$output_url.'/'.$f.'"></script>';
+
+ }
+
+ }
+ function packCss($basedir, $files, $output_url)
+ {
+ // this outputs <script tags..>
+ // either for just the original files,
+ // or the compressed version.
+ // first expand files..
+
+ $arfiles = array();
+ $ofiles = array();
+ //print_R($files);
+ foreach($files as $f) {
+ if (!file_exists($basedir .'/' .$f)) {
+ continue;
+ }
+ if (!is_dir($basedir .'/' .$f)) {
+ $arfiles[$basedir .'/' .$f] = filemtime($basedir .'/' .$f);
+ $ofiles[] = $f;
+ continue;
+ }
+ foreach(glob($basedir .'/' .$f.'/*.css') as $fx) {
+ $arfiles[$fx] = filemtime($fx);
+ $ofiles [] = $f . '/'. basename($fx);
+ }
+ }
+ $output = md5(serialize($arfiles)) .'.css';
+ if (!file_exists($basedir.'/_cache_/'.$output)) {
+ $this->packCssCore($arfiles,$basedir.'/_cache_/'.$output);
+ }
+ //var_dump()$basedir. '/_cache_/'.$output);
+ if (file_exists($basedir. '/_cache_/'.$output)) {
+ echo '<link type="text/css" rel="stylesheet" media="screen" href="'.$output_url. '/_cache_/'. $output.'" />';
+ return;
+ }
+ foreach($ofiles as $f ) {
+ echo '<link type="text/css" rel="stylesheet" media="screen" href="'.$output_url.'/'.$f.'" />'."\n";
+
+ }
+
+
+ }
+ /**
+ * wrapper arroudn packer...
+ * @param {Array} map of $files => filemtime the files to pack
+ * @param {String} $output name fo file to output
+ *
+ */
+ function packCssCore($files, $output)
+ {
+
+
+ $o = HTML_FlexyFramework::get()->Pman_Core;
+
+ if (empty($o['cssminify']) || !file_exists($o['cssminify'])) {
+ echo '<!-- jspacker not set -->';
+ return false;
+ }
+ require_once 'System.php';
+ $seed= System::which('seed');
+ if (!$seed) {
+ echo '<!-- seed not installed -->';
+ return false;
+
+ }
+ $targetm = file_exists($output) ? filemtime($output) : 0;
+ $max = 0;
+ $ofiles = array();
+ foreach($files as $f => $mt) {
+ $max = max($max,$mt);
+ $ofiles[] = escapeshellarg($f);
+ }
+ if ($max < $targetm) {
+ return true;
+ }
+ if (!file_exists(dirname($output))) {
+ mkdir(dirname($output), 0755, true);
+ }
+ $eoutput = escapeshellarg($output);
+ $cmd = "$seed {$o['cssminify']} $eoutput " . implode($ofiles, ' ');
+ //echo "<PRE>$cmd\n"; echo `$cmd`; exit;
+ `$cmd`;
+
+
+ // we should do more checking.. return val etc..
+ if (file_exists($output) && ($max < filemtime($output) ) ) {
+ return true;
+ }
+ return false;
}
-
/**
* wrapper arroudn packer...
- * @param {Array} $files the files to pack
+ * @param {Array} map of $files => filemtime the files to pack
* @param {String} $output name fo file to output
*
*/
$o = HTML_FlexyFramework::get()->Pman_Core;
if (empty($o['jspacker']) || !file_exists($o['jspacker'].'/pack.js')) {
- throw new Exception("no jstoolkit path set [Pman_Core][jspacker] to the
- introspection documentation directory where pack.js is located.");
+ echo '<!-- jspacker not set -->';
+ return false;
+
}
require_once 'System.php';
$seed= System::which('seed');
if (!$seed) {
- throw new Exception(" no seed installed");
+ echo '<!-- seed not installed -->';
+ return false;
+
}
+ $targetm = file_exists($output) ? filemtime($output) : 0;
$max = 0;
- foreach($files as $i => $f) {
- $max = max($max,filemtime($f));
- $files[$i] = escapeshellarg($f);
+ $ofiles = array();
+ foreach($files as $f => $mt) {
+ $max = max($max,$mt);
+ $ofiles[] = escapeshellarg($f);
}
- if ($max < filemtime($output)) {
+ if ($max < $targetm) {
return true;
}
-
- $eoutput = escapeshellarg($f);
- $cmd = "$seed {$o['jspacker']}/pack.js -o $eoutput " . implode($files, ' ');
- echo "$cmd\n";
- echo `$cmd`;
- exit;
+ //var_dump($output);
+ if (!file_exists(dirname($output))) {
+ mkdir(dirname($output), 0755, true);
+ }
+ sort($ofiles);
+ $eoutput = escapeshellarg($output);
+ $cmd = "$seed {$o['jspacker']}/pack.js -o $eoutput " . implode($ofiles, ' ') . ' >2&1';
+ //echo "<PRE>$cmd\n";
+ //echo `$cmd`;
+ $res = `$cmd`;
+ //exit;
// we should do more checking.. return val etc..
if (file_exists($output) && ($max < filemtime($output) ) ) {
- return $output;
+
+ return true;
}
+ echo "<!-- packed file did not exist
+
+ " . htmlspecialchars($cmd) . "
+
+ " . htmlspecialchars($res) . "
+
+ -->";
return false;
}