Version Notes
updated included validation.js
minor fixes
Download this release
Release Info
| Developer | Magento Core Team |
| Extension | Fooman_Speedster |
| Version | 1.0.3 |
| Comparing to | |
| See all releases | |
Code changes from version 1.0.2 to 1.0.3
app/code/community/Fooman/Speedster/Block/Page/Html/Head.php
CHANGED
|
@@ -39,8 +39,8 @@ class Fooman_Speedster_Block_Page_Html_Head extends Mage_Page_Block_Html_Head
|
|
| 39 |
|
| 40 |
$lines = array();
|
| 41 |
|
| 42 |
-
$baseJs = Mage::getBaseUrl('js'
|
| 43 |
-
$baseJsFast = Mage::getBaseUrl('web'
|
| 44 |
$html = '';
|
| 45 |
//$html = "<!--".BP."-->\n";
|
| 46 |
$script = '<script type="text/javascript" src="%s" %s></script>';
|
| 39 |
|
| 40 |
$lines = array();
|
| 41 |
|
| 42 |
+
$baseJs = Mage::getBaseUrl('js');
|
| 43 |
+
$baseJsFast = Mage::getBaseUrl('web').'minify/';
|
| 44 |
$html = '';
|
| 45 |
//$html = "<!--".BP."-->\n";
|
| 46 |
$script = '<script type="text/javascript" src="%s" %s></script>';
|
app/code/community/Fooman/Speedster/etc/config.xml
CHANGED
|
@@ -2,7 +2,7 @@
|
|
| 2 |
<config>
|
| 3 |
<modules>
|
| 4 |
<Fooman_Speedster>
|
| 5 |
-
<version>1.0.
|
| 6 |
<depends>
|
| 7 |
<Mage_Page />
|
| 8 |
<Mage_Adminhtml />
|
| 2 |
<config>
|
| 3 |
<modules>
|
| 4 |
<Fooman_Speedster>
|
| 5 |
+
<version>1.0.3</version>
|
| 6 |
<depends>
|
| 7 |
<Mage_Page />
|
| 8 |
<Mage_Adminhtml />
|
js/prototype/validation-4min.js
CHANGED
|
@@ -68,6 +68,17 @@ Validator.methods = {
|
|
| 68 |
}
|
| 69 |
|
| 70 |
var Validation = Class.create();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 71 |
|
| 72 |
Validation.prototype = {
|
| 73 |
initialize : function(form, options){
|
|
@@ -76,23 +87,32 @@ Validation.prototype = {
|
|
| 76 |
return;
|
| 77 |
}
|
| 78 |
this.options = Object.extend({
|
| 79 |
-
onSubmit :
|
| 80 |
-
stopOnFirst :
|
| 81 |
-
immediate :
|
| 82 |
-
focusOnError :
|
| 83 |
-
useTitles :
|
| 84 |
-
onFormValidate :
|
| 85 |
-
onElementValidate :
|
| 86 |
}, options || {});
|
| 87 |
if(this.options.onSubmit) Event.observe(this.form,'submit',this.onSubmit.bind(this),false);
|
| 88 |
if(this.options.immediate) {
|
| 89 |
-
var useTitles = this.options.useTitles;
|
| 90 |
-
var callback = this.options.onElementValidate;
|
| 91 |
Form.getElements(this.form).each(function(input) { // Thanks Mike!
|
| 92 |
-
|
| 93 |
-
|
|
|
|
|
|
|
|
|
|
| 94 |
}
|
| 95 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 96 |
onSubmit : function(ev){
|
| 97 |
if(!this.validate()) Event.stop(ev);
|
| 98 |
},
|
|
@@ -144,8 +164,9 @@ Object.extend(Validation, {
|
|
| 144 |
var container = $(elm).up('.field-row');
|
| 145 |
if(container){
|
| 146 |
Element.insert(container, {after: advice});
|
| 147 |
-
}
|
| 148 |
-
|
|
|
|
| 149 |
$(elm.advaiceContainer).update(advice);
|
| 150 |
}
|
| 151 |
else {
|
|
@@ -211,6 +232,20 @@ Object.extend(Validation, {
|
|
| 211 |
|
| 212 |
elm.addClassName('validation-failed');
|
| 213 |
elm.addClassName('validate-ajax');
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 214 |
},
|
| 215 |
test : function(name, elm, useTitle) {
|
| 216 |
var v = Validation.get(name);
|
|
@@ -230,6 +265,14 @@ Object.extend(Validation, {
|
|
| 230 |
elm.removeClassName('validation-passed');
|
| 231 |
elm.addClassName('validation-failed');
|
| 232 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 233 |
return false;
|
| 234 |
} else {
|
| 235 |
var advice = Validation.getAdvice(name, elm);
|
|
@@ -238,6 +281,17 @@ Object.extend(Validation, {
|
|
| 238 |
elm[prop] = '';
|
| 239 |
elm.removeClassName('validation-failed');
|
| 240 |
elm.addClassName('validation-passed');
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 241 |
return true;
|
| 242 |
}
|
| 243 |
} catch(e) {
|
|
@@ -293,11 +347,20 @@ Object.extend(Validation, {
|
|
| 293 |
var prop = '__advice'+value.camelize();
|
| 294 |
if(elm[prop]) {
|
| 295 |
var advice = Validation.getAdvice(value, elm);
|
| 296 |
-
advice
|
|
|
|
|
|
|
| 297 |
elm[prop] = '';
|
| 298 |
}
|
| 299 |
elm.removeClassName('validation-failed');
|
| 300 |
elm.removeClassName('validation-passed');
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 301 |
});
|
| 302 |
},
|
| 303 |
add : function(className, error, test, options) {
|
|
@@ -367,12 +430,30 @@ Validation.addAllThese([
|
|
| 367 |
//return Validation.get('IsEmpty').test(v) || /^[\!\#$%\*/?|\^\{\}`~&\'\+\-=_a-z0-9][\!\#$%\*/?|\^\{\}`~&\'\+\-=_a-z0-9\.]{1,30}[\!\#$%\*/?|\^\{\}`~&\'\+\-=_a-z0-9]@([a-z0-9_-]{1,30}\.){1,5}[a-z]{2,4}$/i.test(v)
|
| 368 |
//return Validation.get('IsEmpty').test(v) || /^[a-z0-9,!\#\$%&'\*\+/=\?\^_`\{\|}~-]+(\.[a-z0-9,!#\$%&'\*\+/=\?\^_`\{\|}~-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*\.([a-z]{2,})/i.test(v)
|
| 369 |
}],
|
|
|
|
|
|
|
|
|
|
| 370 |
['validate-password', 'Please enter 6 or more characters. Leading or trailing spaces will be ignored.', function(v) {
|
| 371 |
var pass=v.strip(); /*strip leading and trailing spaces*/
|
| 372 |
return !(pass.length>0 && pass.length < 6);
|
| 373 |
}],
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 374 |
['validate-cpassword', 'Please make sure your passwords match.', function(v) {
|
| 375 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 376 |
var conf = $('confirmation') ? $('confirmation') : $$('.validate-cpassword')[0];
|
| 377 |
return (pass.value == conf.value);
|
| 378 |
}],
|
|
@@ -422,12 +503,17 @@ Validation.addAllThese([
|
|
| 422 |
});
|
| 423 |
}],
|
| 424 |
['validate-one-required-by-name', 'Please select one of the options.', function (v,elm) {
|
| 425 |
-
var inputs = $$('input');
|
|
|
|
| 426 |
var error = 1;
|
| 427 |
-
for( i
|
| 428 |
-
if( inputs[i].
|
| 429 |
error = 0;
|
| 430 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
| 431 |
}
|
| 432 |
|
| 433 |
if( error == 0 ) {
|
|
@@ -508,10 +594,20 @@ Validation.addAllThese([
|
|
| 508 |
return false;
|
| 509 |
}
|
| 510 |
|
|
|
|
|
|
|
|
|
|
|
|
|
| 511 |
return true;
|
| 512 |
}],
|
| 513 |
['validate-cc-type-select', 'Card type doesn\'t match credit card number', function(v, elm) {
|
| 514 |
var ccNumberContainer = $(elm.id.substr(0,elm.id.indexOf('_cc_type')) + '_cc_number');
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 515 |
return Validation.get('validate-cc-type').test(ccNumberContainer.value, ccNumberContainer);
|
| 516 |
}],
|
| 517 |
['validate-cc-exp', 'Incorrect credit card expiration date', function(v, elm) {
|
|
@@ -643,4 +739,4 @@ Validation.creditCartTypes = $H({
|
|
| 643 |
'DI': [new RegExp('^6011[0-9]{12}$'), new RegExp('^[0-9]{3}$'), true],
|
| 644 |
'SS': [new RegExp('^((6759[0-9]{12})|(49[013][1356][0-9]{13})|(633[34][0-9]{12})|(633110[0-9]{10})|(564182[0-9]{10}))([0-9]{2,3})?$'), new RegExp('^([0-9]{3}|[0-9]{4})?$'), true],
|
| 645 |
'OT': [false, new RegExp('^([0-9]{3}|[0-9]{4})?$'), false]
|
| 646 |
-
});
|
| 68 |
}
|
| 69 |
|
| 70 |
var Validation = Class.create();
|
| 71 |
+
Validation.defaultOptions = {
|
| 72 |
+
onSubmit : true,
|
| 73 |
+
stopOnFirst : false,
|
| 74 |
+
immediate : false,
|
| 75 |
+
focusOnError : true,
|
| 76 |
+
useTitles : false,
|
| 77 |
+
addClassNameToContainer: false,
|
| 78 |
+
containerClassName: '.input-box',
|
| 79 |
+
onFormValidate : function(result, form) {},
|
| 80 |
+
onElementValidate : function(result, elm) {}
|
| 81 |
+
};
|
| 82 |
|
| 83 |
Validation.prototype = {
|
| 84 |
initialize : function(form, options){
|
| 87 |
return;
|
| 88 |
}
|
| 89 |
this.options = Object.extend({
|
| 90 |
+
onSubmit : Validation.defaultOptions.onSubmit,
|
| 91 |
+
stopOnFirst : Validation.defaultOptions.stopOnFirst,
|
| 92 |
+
immediate : Validation.defaultOptions.immediate,
|
| 93 |
+
focusOnError : Validation.defaultOptions.focusOnError,
|
| 94 |
+
useTitles : Validation.defaultOptions.useTitles,
|
| 95 |
+
onFormValidate : Validation.defaultOptions.onFormValidate,
|
| 96 |
+
onElementValidate : Validation.defaultOptions.onElementValidate
|
| 97 |
}, options || {});
|
| 98 |
if(this.options.onSubmit) Event.observe(this.form,'submit',this.onSubmit.bind(this),false);
|
| 99 |
if(this.options.immediate) {
|
|
|
|
|
|
|
| 100 |
Form.getElements(this.form).each(function(input) { // Thanks Mike!
|
| 101 |
+
if (input.tagName.toLowerCase() == 'select') {
|
| 102 |
+
Event.observe(input, 'blur', this.onChange.bindAsEventListener(this));
|
| 103 |
+
}
|
| 104 |
+
Event.observe(input, 'change', this.onChange.bindAsEventListener(this));
|
| 105 |
+
}, this);
|
| 106 |
}
|
| 107 |
},
|
| 108 |
+
onChange : function (ev) {
|
| 109 |
+
Validation.isOnChange = true;
|
| 110 |
+
Validation.validate(Event.element(ev),{
|
| 111 |
+
useTitle : this.options.useTitles,
|
| 112 |
+
onElementValidate : this.options.onElementValidate
|
| 113 |
+
});
|
| 114 |
+
Validation.isOnChange = false;
|
| 115 |
+
},
|
| 116 |
onSubmit : function(ev){
|
| 117 |
if(!this.validate()) Event.stop(ev);
|
| 118 |
},
|
| 164 |
var container = $(elm).up('.field-row');
|
| 165 |
if(container){
|
| 166 |
Element.insert(container, {after: advice});
|
| 167 |
+
} else if (elm.up('td.value')) {
|
| 168 |
+
elm.up('td.value').insert({bottom: advice});
|
| 169 |
+
} else if (elm.advaiceContainer && $(elm.advaiceContainer)) {
|
| 170 |
$(elm.advaiceContainer).update(advice);
|
| 171 |
}
|
| 172 |
else {
|
| 232 |
|
| 233 |
elm.addClassName('validation-failed');
|
| 234 |
elm.addClassName('validate-ajax');
|
| 235 |
+
if (Validation.defaultOptions.addClassNameToContainer && Validation.defaultOptions.containerClassName != '') {
|
| 236 |
+
var container = elm.up(Validation.defaultOptions.containerClassName);
|
| 237 |
+
if (container && this.allowContainerClassName(elm)) {
|
| 238 |
+
container.removeClassName('validation-passed');
|
| 239 |
+
container.addClassName('validation-error');
|
| 240 |
+
}
|
| 241 |
+
}
|
| 242 |
+
},
|
| 243 |
+
allowContainerClassName: function (elm) {
|
| 244 |
+
if (elm.type == 'radio' || elm.type == 'checkbox') {
|
| 245 |
+
return elm.hasClassName('change-container-classname');
|
| 246 |
+
}
|
| 247 |
+
|
| 248 |
+
return true;
|
| 249 |
},
|
| 250 |
test : function(name, elm, useTitle) {
|
| 251 |
var v = Validation.get(name);
|
| 265 |
elm.removeClassName('validation-passed');
|
| 266 |
elm.addClassName('validation-failed');
|
| 267 |
}
|
| 268 |
+
|
| 269 |
+
if (Validation.defaultOptions.addClassNameToContainer && Validation.defaultOptions.containerClassName != '') {
|
| 270 |
+
var container = elm.up(Validation.defaultOptions.containerClassName);
|
| 271 |
+
if (container && this.allowContainerClassName(elm)) {
|
| 272 |
+
container.removeClassName('validation-passed');
|
| 273 |
+
container.addClassName('validation-error');
|
| 274 |
+
}
|
| 275 |
+
}
|
| 276 |
return false;
|
| 277 |
} else {
|
| 278 |
var advice = Validation.getAdvice(name, elm);
|
| 281 |
elm[prop] = '';
|
| 282 |
elm.removeClassName('validation-failed');
|
| 283 |
elm.addClassName('validation-passed');
|
| 284 |
+
if (Validation.defaultOptions.addClassNameToContainer && Validation.defaultOptions.containerClassName != '') {
|
| 285 |
+
var container = elm.up(Validation.defaultOptions.containerClassName);
|
| 286 |
+
if (container && !container.down('.validation-failed') && this.allowContainerClassName(elm)) {
|
| 287 |
+
if (!Validation.get('IsEmpty').test(elm.value) || !this.isVisible(elm)) {
|
| 288 |
+
container.addClassName('validation-passed');
|
| 289 |
+
} else {
|
| 290 |
+
container.removeClassName('validation-passed');
|
| 291 |
+
}
|
| 292 |
+
container.removeClassName('validation-error');
|
| 293 |
+
}
|
| 294 |
+
}
|
| 295 |
return true;
|
| 296 |
}
|
| 297 |
} catch(e) {
|
| 347 |
var prop = '__advice'+value.camelize();
|
| 348 |
if(elm[prop]) {
|
| 349 |
var advice = Validation.getAdvice(value, elm);
|
| 350 |
+
if (advice) {
|
| 351 |
+
advice.hide();
|
| 352 |
+
}
|
| 353 |
elm[prop] = '';
|
| 354 |
}
|
| 355 |
elm.removeClassName('validation-failed');
|
| 356 |
elm.removeClassName('validation-passed');
|
| 357 |
+
if (Validation.defaultOptions.addClassNameToContainer && Validation.defaultOptions.containerClassName != '') {
|
| 358 |
+
var container = elm.up(Validation.defaultOptions.containerClassName);
|
| 359 |
+
if (container) {
|
| 360 |
+
container.removeClassName('validation-passed');
|
| 361 |
+
container.removeClassName('validation-error');
|
| 362 |
+
}
|
| 363 |
+
}
|
| 364 |
});
|
| 365 |
},
|
| 366 |
add : function(className, error, test, options) {
|
| 430 |
//return Validation.get('IsEmpty').test(v) || /^[\!\#$%\*/?|\^\{\}`~&\'\+\-=_a-z0-9][\!\#$%\*/?|\^\{\}`~&\'\+\-=_a-z0-9\.]{1,30}[\!\#$%\*/?|\^\{\}`~&\'\+\-=_a-z0-9]@([a-z0-9_-]{1,30}\.){1,5}[a-z]{2,4}$/i.test(v)
|
| 431 |
//return Validation.get('IsEmpty').test(v) || /^[a-z0-9,!\#\$%&'\*\+/=\?\^_`\{\|}~-]+(\.[a-z0-9,!#\$%&'\*\+/=\?\^_`\{\|}~-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*\.([a-z]{2,})/i.test(v)
|
| 432 |
}],
|
| 433 |
+
['validate-emailSender', 'Please use only letters (a-z or A-Z), numbers (0-9) , underscore(_) or spaces in this field.', function (v) {
|
| 434 |
+
return Validation.get('IsEmpty').test(v) || /^[a-zA-Z0-9_\s]+$/.test(v)
|
| 435 |
+
}],
|
| 436 |
['validate-password', 'Please enter 6 or more characters. Leading or trailing spaces will be ignored.', function(v) {
|
| 437 |
var pass=v.strip(); /*strip leading and trailing spaces*/
|
| 438 |
return !(pass.length>0 && pass.length < 6);
|
| 439 |
}],
|
| 440 |
+
['validate-admin-password', 'Please enter 7 or more characters. Password should contain both numeric and alphabetic characters.', function(v) {
|
| 441 |
+
var pass=v.strip();
|
| 442 |
+
if (0 == pass.length) {
|
| 443 |
+
return true;
|
| 444 |
+
}
|
| 445 |
+
if (!(/[a-z]/i.test(v)) || !(/[0-9]/.test(v))) {
|
| 446 |
+
return false;
|
| 447 |
+
}
|
| 448 |
+
return !(pass.length < 7);
|
| 449 |
+
}],
|
| 450 |
['validate-cpassword', 'Please make sure your passwords match.', function(v) {
|
| 451 |
+
if ($('password')) {
|
| 452 |
+
var pass = $('password');
|
| 453 |
+
}
|
| 454 |
+
else {
|
| 455 |
+
var pass = $$('.validate-password').length ? $$('.validate-password')[0] : $$('.validate-admin-password')[0];
|
| 456 |
+
}
|
| 457 |
var conf = $('confirmation') ? $('confirmation') : $$('.validate-cpassword')[0];
|
| 458 |
return (pass.value == conf.value);
|
| 459 |
}],
|
| 503 |
});
|
| 504 |
}],
|
| 505 |
['validate-one-required-by-name', 'Please select one of the options.', function (v,elm) {
|
| 506 |
+
var inputs = $$('input[name="' + elm.name.replace(/([\\"])/g, '\\$1') + '"]');
|
| 507 |
+
|
| 508 |
var error = 1;
|
| 509 |
+
for(var i=0;i<inputs.length;i++) {
|
| 510 |
+
if((inputs[i].type == 'checkbox' || inputs[i].type == 'radio') && inputs[i].checked == true) {
|
| 511 |
error = 0;
|
| 512 |
}
|
| 513 |
+
|
| 514 |
+
if(Validation.isOnChange && (inputs[i].type == 'checkbox' || inputs[i].type == 'radio')) {
|
| 515 |
+
Validation.reset(inputs[i]);
|
| 516 |
+
}
|
| 517 |
}
|
| 518 |
|
| 519 |
if( error == 0 ) {
|
| 594 |
return false;
|
| 595 |
}
|
| 596 |
|
| 597 |
+
if (ccTypeContainer.hasClassName('validation-failed') && Validation.isOnChange) {
|
| 598 |
+
Validation.validate(ccTypeContainer);
|
| 599 |
+
}
|
| 600 |
+
|
| 601 |
return true;
|
| 602 |
}],
|
| 603 |
['validate-cc-type-select', 'Card type doesn\'t match credit card number', function(v, elm) {
|
| 604 |
var ccNumberContainer = $(elm.id.substr(0,elm.id.indexOf('_cc_type')) + '_cc_number');
|
| 605 |
+
if (Validation.isOnChange && Validation.get('IsEmpty').test(ccNumberContainer.value)) {
|
| 606 |
+
return true;
|
| 607 |
+
}
|
| 608 |
+
if (Validation.get('validate-cc-type').test(ccNumberContainer.value, ccNumberContainer)) {
|
| 609 |
+
Validation.validate(ccNumberContainer);
|
| 610 |
+
}
|
| 611 |
return Validation.get('validate-cc-type').test(ccNumberContainer.value, ccNumberContainer);
|
| 612 |
}],
|
| 613 |
['validate-cc-exp', 'Incorrect credit card expiration date', function(v, elm) {
|
| 739 |
'DI': [new RegExp('^6011[0-9]{12}$'), new RegExp('^[0-9]{3}$'), true],
|
| 740 |
'SS': [new RegExp('^((6759[0-9]{12})|(49[013][1356][0-9]{13})|(633[34][0-9]{12})|(633110[0-9]{10})|(564182[0-9]{10}))([0-9]{2,3})?$'), new RegExp('^([0-9]{3}|[0-9]{4})?$'), true],
|
| 741 |
'OT': [false, new RegExp('^([0-9]{3}|[0-9]{4})?$'), false]
|
| 742 |
+
});
|
lib/minify/lib/Minify/BuildSpeedster.php
CHANGED
|
@@ -10,10 +10,35 @@
|
|
| 10 |
require_once 'Build.php';
|
| 11 |
|
| 12 |
class Minify_Build_Speedster extends Minify_Build {
|
| 13 |
-
|
| 14 |
-
*
|
| 15 |
*
|
|
|
|
| 16 |
*
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 17 |
* @param null
|
| 18 |
* @return string
|
| 19 |
*/
|
| 10 |
require_once 'Build.php';
|
| 11 |
|
| 12 |
class Minify_Build_Speedster extends Minify_Build {
|
| 13 |
+
/**
|
| 14 |
+
* Create a build object
|
| 15 |
*
|
| 16 |
+
* @param array $sources array of Minify_Source objects and/or file paths
|
| 17 |
*
|
| 18 |
+
* @return null
|
| 19 |
+
*/
|
| 20 |
+
public function __construct($sources,$base)
|
| 21 |
+
{
|
| 22 |
+
$max = 0;
|
| 23 |
+
foreach ((array)$sources as $source) {
|
| 24 |
+
if ($source instanceof Minify_Source) {
|
| 25 |
+
$max = max($max, $source->lastModified);
|
| 26 |
+
} elseif (is_string($source)) {
|
| 27 |
+
if (0 === strpos($source, '//')) {
|
| 28 |
+
$source = $base . substr($source, 1);
|
| 29 |
+
}
|
| 30 |
+
if (is_file($source)) {
|
| 31 |
+
|
| 32 |
+
$max = max($max, filemtime($source));
|
| 33 |
+
}
|
| 34 |
+
}
|
| 35 |
+
}
|
| 36 |
+
$this->lastModified = $max;
|
| 37 |
+
}
|
| 38 |
+
|
| 39 |
+
|
| 40 |
+
/**
|
| 41 |
+
* Get last modified
|
| 42 |
* @param null
|
| 43 |
* @return string
|
| 44 |
*/
|
package.xml
CHANGED
|
@@ -1,23 +1,21 @@
|
|
| 1 |
<?xml version="1.0"?>
|
| 2 |
<package>
|
| 3 |
<name>Fooman_Speedster</name>
|
| 4 |
-
<version>1.0.
|
| 5 |
<stability>stable</stability>
|
| 6 |
<license uri="http://www.opensource.org/licenses/osl-3.0.php">OSL v3.0 / BSD see files</license>
|
| 7 |
<channel>community</channel>
|
| 8 |
<extends/>
|
| 9 |
<summary>Speed up your store by combining, compressing and caching JS and CSS.</summary>
|
| 10 |
-
<description><p>FOOMAN Speedster 1.0.
|
| 11 |
-
|
| 12 |
<p>Speed up your store by combining, compressing and caching JS and CSS.</p>
|
| 13 |
-
|
| 14 |
-
|
| 15 |
-
|
| 16 |
-
<notes>reupload of 1.0.1</notes>
|
| 17 |
<authors><author><name>Kristof Ringleff</name><user>auto-converted</user><email>kristof@fooman.co.nz</email></author></authors>
|
| 18 |
-
<date>2009-
|
| 19 |
-
<time>
|
| 20 |
-
<contents><target name="mage"><dir name="app"><dir name="etc"><dir name="modules"><file name="Fooman_Speedster.xml" hash="94d303cd2552119381411068d2e7809b"/></dir></dir></dir><dir name="js"><dir name="prototype"><file name="validation-4min.js" hash="
|
| 21 |
<compatible/>
|
| 22 |
<dependencies/>
|
| 23 |
</package>
|
| 1 |
<?xml version="1.0"?>
|
| 2 |
<package>
|
| 3 |
<name>Fooman_Speedster</name>
|
| 4 |
+
<version>1.0.3</version>
|
| 5 |
<stability>stable</stability>
|
| 6 |
<license uri="http://www.opensource.org/licenses/osl-3.0.php">OSL v3.0 / BSD see files</license>
|
| 7 |
<channel>community</channel>
|
| 8 |
<extends/>
|
| 9 |
<summary>Speed up your store by combining, compressing and caching JS and CSS.</summary>
|
| 10 |
+
<description><p>FOOMAN Speedster 1.0.3</p>
|
|
|
|
| 11 |
<p>Speed up your store by combining, compressing and caching JS and CSS.</p>
|
| 12 |
+
<p>Please read the installation instructions and latest changes <a href="http://www.magentocommerce.com/extension/457/fooman-speedster">here.</a></p></description>
|
| 13 |
+
<notes>updated included validation.js
|
| 14 |
+
minor fixes</notes>
|
|
|
|
| 15 |
<authors><author><name>Kristof Ringleff</name><user>auto-converted</user><email>kristof@fooman.co.nz</email></author></authors>
|
| 16 |
+
<date>2009-06-08</date>
|
| 17 |
+
<time>00:34:33</time>
|
| 18 |
+
<contents><target name="mage"><dir name="app"><dir name="etc"><dir name="modules"><file name="Fooman_Speedster.xml" hash="94d303cd2552119381411068d2e7809b"/></dir></dir></dir><dir name="js"><dir name="prototype"><file name="validation-4min.js" hash="13c749d40036ae055baa6f7825499c1c"/></dir></dir><dir name="lib"><dir name="minify"><file name=".htaccess" hash="4d6b8833e4ccae2d2393dfeba369b894"/></dir></dir><dir name="var"><dir name="minifycache"><file name="cache.txt" hash="5709c1d6a6f85fb7b7ea2eef23086b46"/></dir></dir></target><target name="magecommunity"><dir name="Fooman"><dir name="Speedster"><dir name="Block"><dir name="Adminhtml"><dir name="Page"><file name="Head.php" hash="d850197d05af7b972eda1ef6bf3da2ed"/></dir></dir><dir name="Page"><dir name="Html"><file name="Head.php" hash="b3e32a0793bcf35dfcfd07ad4d618222"/></dir></dir></dir><dir name="etc"><file name="config.xml" hash="a5a8c8e6fdd1274e333d2cfb12d43f74"/></dir></dir></dir></target><target name="magelib"><dir name="minify"><dir name="lib"><dir name="HTTP"><file name="ConditionalGet.php" hash="2617a41438dff20749abb9be1793b10f"/><file name="Encoder.php" hash="a2f4ae355c06fb6a98d6b4bd82c34e76"/></dir><dir name="Minify"><dir name="Cache"><file name="APC.php" hash="2766ccf5e1e4d6e38d3ec128dbc4bc6f"/><file name="File.php" hash="dd7545011e50c153a11dd100db35315a"/><file name="Memcache.php" hash="fa208d979196d0479e3aacec853502c8"/></dir><dir name="Controller"><file name="Base.php" hash="070ed4d5f471a88f2f45cf2e93ba720a"/><file name="Files.php" hash="f579a28cea39da5c595057e72fc65967"/><file name="Groups.php" hash="79bb7cbd0b598dc35a93b99adfdbfab6"/><file name="MinApp.php" hash="42803a069db0f5892012991af5ec5334"/><file name="Page.php" hash="113e99f1206cfb3c3a64aedef65554d1"/><file name="Version1.php" hash="4369c8793be1d5cf061a99651b16da26"/></dir><dir name="CSS"><file name="Compressor.php" hash="3a3a65aa92f74958f50d9d43f8827f8a"/><file name="UriRewriter.php" hash="da8f5cdad4726e0370bbe5f351ec9d98"/></dir><file name="Build.php" hash="6e329c2acc80b72cfde52be6918940bb"/><file name="BuildSpeedster.php" hash="b93d3e802e2bf7b31eecf9537d3e92f9"/><file name="CommentPreserver.php" hash="86bab05265083b57935503bdd735ce74"/><file name="CSS.php" hash="cdeb49c0f35a6cef166c6cfee7f1dd95"/><file name="HTML.php" hash="e774a70491041048fef690d4b162e0ce"/><file name="ImportProcessor.php" hash="3d1726a5df7eb2edba8cd6da2cb75eec"/><file name="Javascript.php" hash="1baa1a43818fcecb89c2a08b40a544da"/><file name="Lines.php" hash="80b2932320c98d1e84aa7f48fceb35e8"/><file name="Logger.php" hash="b2844a8c35e028b9ee725be05adbcf7e"/><file name="Packer.php" hash="41878d87ec3b3e3bbd1538291edeb7cf"/><file name="Source.php" hash="a8d9fa9f0ab2ba9e9b37209148375924"/><file name="YUICompressor.php" hash="13840856d6340e70e7289035827b8b7d"/></dir><dir name="Solar"><file name="Dir.php" hash="6c88f363f6830ac4dc3917eac3c9d78c"/></dir><file name="FirePHP.php" hash="f619b5a77fee4b21e4397e98d858fbf4"/><file name="JSMin.php" hash="e9fe7911a2787240d3ed6dd2da9bc95b"/><file name="Minify.php" hash="9ee5b8bb23e3d856faec4358aa887e33"/></dir><file name="HISTORY.txt" hash="70c3e25e9331dc17e5d538bfc3dd8fe1"/><file name="LICENSE.txt" hash="911d374696c0a5e9e6e848e7f20d0ee1"/><file name="m.php" hash="49b12c34094a3ba1090f7b42719706e7"/><file name="README.txt" hash="6e961a626ae6814c72fab53bcad4a4a7"/></dir></target></contents>
|
| 19 |
<compatible/>
|
| 20 |
<dependencies/>
|
| 21 |
</package>
|
