Component MinifyX for MODX Evolution
- ΠΠ°Π»ΠΈΡΡ ΠΏΠ°ΠΏΠΊΡ assets Π² ΠΊΠΎΡΠ΅Π½Ρ Π²Π°ΡΠ΅Π³ΠΎ ΡΠ°ΠΉΡΠ°
- Π‘ΠΎΠ·Π΄Π°ΡΡ ΡΠ½ΠΈΠΏΠΏΠ΅Ρ MinifyX Ρ ΠΊΠΎΠ΄ΠΎΠΌ ΠΈΠ· ΡΠ°ΠΉΠ»Π° snippet.txt
- Π‘ΠΎΠ·Π΄Π°ΡΡ ΠΏΠ»Π°Π³ΠΈΠ½ MinifyX Ρ ΠΊΠΎΠ΄ΠΎΠΌ ΠΈΠ· ΡΠ°ΠΉΠ»Π° plugin.txt ΠΈ ΠΏΡΠΈΠ²ΡΠ·Π°ΡΡ ΠΊ ΡΠΎΠ±ΡΡΠΈΡ OnDocFormSave
- Π‘ΠΎΠ·Π΄Π°ΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ MinifyX Ρ ΠΊΠΎΠ΄ΠΎΠΌ ΠΈΠ· ΡΠ°ΠΉΠ°Π» module.txt
- Π‘ΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ MinifyX Π΄Π»Ρ ΠΊΠ°ΡΡΠΎΠΌΠ½ΡΡ CSS ΡΡΠΈΠ»Π΅ΠΉ Ρ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠΌ blank ΠΈ ΡΠΈΠΏΠΎΠΌ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ text/css
- Π‘ΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ MinifyX Π΄Π»Ρ ΠΊΠ°ΡΡΠΎΠΌΠ½ΡΡ JS ΡΠΊΡΠΈΠΏΡΠΎΠ² Ρ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠΌ blank ΠΈ ΡΠΈΠΏΠΎΠΌ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ text/javascript
- Π Π½Π°ΡΡΡΠΎΠΉΠΊΠ°Ρ ΠΌΠΎΠ΄ΡΠ»Ρ Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ &CSSfile=CSS ΡΠ°ΠΉΠ»Ρ;textarea; &JSfile=JS ΡΠ°ΠΉΠ»Ρ;textarea; &CSSdoc=ID CSS Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°;int; &JSdoc=ID JS Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°;int;
- Π ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ID JS Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ° ΠΈ ID CSS Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ° Π²ΠΏΠΈΡΠ°ΡΡ ID ΡΠ°Π½Π΅Π΅ ΡΠΎΠ·Π΄Π°Π½Π½ΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠ²
- Π ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ JS ΡΠ°ΠΉΠ»Ρ ΠΈ CSS ΡΠ°ΠΉΠ»Ρ Π²ΠΏΠΈΡΠ°ΡΡ ΠΏΠΎΠ»Π½ΡΠΉ ΠΏΡΡΡ ΠΎΡ ΠΊΠΎΡΠ½Ρ ΡΠ°ΠΉΡΠ° ΠΊ ΡΠ°ΠΉΠ»Π°ΠΌ ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΆΠΈΠΌΠ°ΡΡ. ΠΡΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ°, ΡΠΎ ΠΈΡ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΠ°Π·Π΄Π΅Π»ΡΡΡ Π·Π°ΠΏΡΡΠΎΠΉ
- ΠΠΎΡΡΠ°Π²ΠΈΡΡ Π³Π°Π»ΠΎΡΠΊΡ "ΠΎΠ±ΡΠΈΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ" ΠΈ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ
- ΠΠΏΡΡΡ ΠΎΡΠΊΡΡΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ Π½Π° ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ Π·Π°ΠΉΡΠΈ Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ. ΠΠ°ΡΠ΅ΠΌ Π·Π°ΠΏΡΡΡΠΈΡΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡΠΌΠΈ ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΏΠ»Π°Π³ΠΈΠ½ MinifyX Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡ.
ΠΠ°ΠΏΡΡΠΊ ΡΠ½ΠΈΠΏΠΏΠ΅ΡΠ° Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ Π½Π΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ
[!MinifyX? &CSSfile=`assets/templates/tpl/css/bootstrap.css,assets/js/prettify/prettify.css` &CSSdoc=`2` &JSfile=`assets/js/jquery-1.8.3.min.js,assets/templates/tpl/js/modernizr.custom.28468.js,assets/js/jquery.validate.js,assets/js/jquery.form.min.js,assets/js/prettify/prettify.js` &JSdoc=`3` &parse=`1`!]
- CSSfile Π‘ΠΏΠΈΡΠΎΠΊ ΡΠ°ΠΉΠ»ΠΎΠ² Ρ CSS ΡΡΠΈΠ»ΡΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½ΡΠΆΠ½ΠΎ Π²ΠΊΠ»ΡΡΠΈΡΡ Π² ΠΊΠΎΠ½Π΅ΡΠ½ΡΠΉ ΡΠ°ΠΉΠ» ΠΈ ΡΠΆΠ°ΡΡ
- CSSdoc ID Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ° Π² Π΄Π΅ΡΠ΅Π²Π΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠ² Ρ CSS ΡΡΠΈΠ»ΡΠΌΠΈ
- JSfile Π‘ΠΏΠΈΡΠΎΠΊ ΡΠ°ΠΉΠ»ΠΎΠ² Ρ JavaScript ΠΊΠΎΠ΄ΠΎΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½ΡΠΆΠ½ΠΎ Π²ΠΊΠ»ΡΡΠΈΡΡ Π² ΠΊΠΎΠ½Π΅ΡΠ½ΡΠΉ ΡΠ°ΠΉΠ» ΠΈ ΡΠΆΠ°ΡΡ
- JSdoc ID Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ° Π² Π΄Π΅ΡΠ΅Π²Π΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠ² Ρ JavaScript ΠΊΠΎΠ΄ΠΎΠΌ
- parseDoc ΠΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ Π»ΠΈ MODX ΡΠ΅Π³ΠΈ Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°Ρ ΡΠΎΠ·Π΄Π°Π½Π½ΡΡ Π² Π΄Π΅ΡΠ΅Π²Π΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠ²
- outCSS ΠΈΠΌΡ CSS ΡΠ°ΠΉΠ»Π° Π½Π° Π²ΡΡ ΠΎΠ΄Π΅. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ style.css
- outJS ΠΈΠΌΡ JS ΡΠ°ΠΉΠ»Π° Π½Π° Π²ΡΡ ΠΎΠ΄Π΅. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ script.js
- outFolder Π² ΠΊΠ°ΠΊΡΡ ΠΏΠ°ΠΏΠΊΡ ΡΠΎΡ ΡΠ°Π½ΡΡΡ ΡΠΆΠ°ΡΡΠΉ ΡΠ°ΠΉΠ». ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ assets/templates/
- API ΡΠ΅ΠΆΠΈΠΌ Π·Π°ΠΏΡΡΠΊΠ° ΡΠ½ΠΈΠΏΠΏΠ΅ΡΠ°. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ API ΠΎΡΠΊΠ»ΡΡΠ΅Π½ ΠΈ Π² ΡΠ»ΡΡΠ°Π΅ ΡΡΠΏΠ΅ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π° ΡΠΆΠ°ΡΡΠ΅ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡΡΡ Π² ΡΠ΅ΠΊΡΠΈΡ head Π²Π°ΡΠ΅Π³ΠΎ Π²Π΅Π±-ΡΠ°ΠΉΡΠ°. ΠΡΠ»ΠΈ ΠΆΠ΅ ΡΠ΅ΠΆΠΈΠΌ API Π²ΠΊΠ»ΡΡΠ΅Π½ (Π΄Π»Ρ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΊΠ°Π·Π°ΡΡ Π»ΡΠ±ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΡΠΎΠΌΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ), ΡΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΡΠ²ΠΎΠ΅ΠΉ ΡΠ°Π±ΠΎΡΡ ΡΠ½ΠΈΠΏΠΏΠ΅Ρ ΠΎΡΠ΄Π°Π΅Ρ Π² Π²ΠΈΠ΄Π΅ ΠΌΠ°ΡΡΠΈΠ²Π° array('js'=>'ΠΏΡΡΡ ΠΊ ΡΠΆΠ°ΡΠΎΠΌΡ JS ΡΠΊΡΠΈΠΏΡΡ','css'=>'ΠΏΡΡΡ ΠΊ Π½Π΅ ΡΠΆΠ°ΡΠΎΠΌΡ CSS ΡΠΊΡΠΈΠΏΡΡ'); Π ΡΠ»ΡΡΠ°Π΅ Π΅ΡΠ»ΠΈ ΡΠΆΠ°ΡΡ ΡΠ°ΠΉΠ» Π½Π΅ ΡΠ΄Π°Π»ΠΎΡΡ ΠΈΠ»ΠΈ ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΡΠΈΠΏ ΡΠ°ΠΉΠ»ΠΎΠ² Π½Π΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π»ΠΎΡΡ ΡΠΆΠΈΠΌΠ°ΡΡ, ΡΠΎ ΡΡΠΎΡ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΌΠ°ΡΡΠΈΠ²Π° Π±ΡΠ΄Π΅Ρ ΠΏΡΡΡ.
- inject ΠΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ Π»ΠΈ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΈΡΡΡΡΠΈΠΉ ΡΠ°ΠΉΠ» ΠΊ ΡΡΡΠ°Π½ΠΈΡΠ΅ ΡΡΠ΅Π΄ΡΡΠ²Π°ΠΌΠΈ MODX. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΎΡΠΊΠ»ΡΡΠ΅Π½ΠΎ
- cssCompress ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π»ΠΈ ΡΠΆΠ°ΡΠΈΠ΅ ΡΡΠΈΠ»Π΅ΠΉ ΠΈ ΡΠΊΡΠΈΠΏΡΠΎΠ² (Π»ΠΈΠ±ΠΎ ΠΆΠ΅ ΠΏΡΠΎΡΡΠΎ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΡΡ Π² 1 ΡΠ°ΠΉΠ»). ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΠΆΠ°ΡΠΈΠ΅ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΎ
- jsCompress ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π»ΠΈ ΡΠΆΠ°ΡΠΈΠ΅ ΡΡΠΈΠ»Π΅ΠΉ ΠΈ ΡΠΊΡΠΈΠΏΡΠΎΠ² (Π»ΠΈΠ±ΠΎ ΠΆΠ΅ ΠΏΡΠΎΡΡΠΎ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΡΡ Π² 1 ΡΠ°ΠΉΠ»). ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΠΆΠ°ΡΠΈΠ΅ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΎ
- ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΏΠ΅ΡΠ΅ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ CSS ΠΈΠ»ΠΈ JS ΡΠ°ΠΉΠ»Π° ΠΏΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ° Ρ CSS ΡΡΠΈΠ»ΡΠΌΠΈ ΠΈ JS ΠΊΠΎΠ΄ΠΎΠΌ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ
ΠΠΠΠΠ!!! ΠΡΠ»ΠΈ Π² ΡΡΠΈΡ
Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°Ρ
ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ MODX ΡΠ΅Π³ΠΈ ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΡΠΈΡ
ΡΠ΅Π³ΠΎΠ² Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ Π΄ΡΡΠ³ΠΈΡ
Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠ², ΡΠΎ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠ° Π΄ΠΎΠ½Π°ΡΡΡΠΎΠΉΠΊΠ° ΠΏΠ»Π°Π³ΠΈΠ½Π° ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΡΡΡΠ΅Π³ΠΎ ΡΠΎΠ±ΡΡΠΈΡ, ΡΡΠΎΠ±Ρ ΡΠ°ΠΉΠ»Ρ ΠΏΠ΅ΡΠ΅ΡΠΎΠ·Π΄Π°Π²Π°Π»ΠΈΡΡ ΠΏΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΎΡΡΠΈΡΡΠΊΠ΅ ΠΊΠ΅ΡΠ° MODX. ΠΠΎ Π΄Π΅Π»Π°ΡΡ ΡΡΠΎΠ³ΠΎ Ρ Π½Π΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΡ. ΠΡΡΡΠ΅ ΠΏΡΠΎΡΡΠΎ ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅ ΡΡΠΎΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ ΠΈΠ· Π½Π°ΡΡΡΠΎΠ΅ΠΊ MinifyX ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°ΠΉΡΠ΅ Π΅Π³ΠΎ Π² ΡΠ°Π±Π»ΠΎΠ½Π΅ ΠΊΠ°ΠΊ src="[
id]" - ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΡΡΠ½ΠΎΠ³ΠΎ ΠΏΠ΅ΡΠ΅ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠΆΠ°ΡΡΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ Π·Π°ΠΏΡΡΠΊΠ° ΠΌΠΎΠ΄ΡΠ»Ρ
ΠΠΎΠ±Π°Π²ΠΈΡΡ Π² .htaccess ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΡΡΠΎΠΊΠΈ:
AddEncoding gzip .jgz
#add support gzip JavaScript
RewriteCond %{HTTP_USER_AGENT} ".*Safari.*" [OR]
RewriteCond %{HTTP:Accept-Encoding} gzip
RewriteCond %{REQUEST_FILENAME}.jgz -f
RewriteRule (.*)\.js$ $1\.js.jgz [L]
AddType "text/javascript" .js.jgz
#add support gzip CSS
RewriteCond %{HTTP_USER_AGENT} ".*Safari.*" [OR]
RewriteCond %{HTTP:Accept-Encoding} gzip
RewriteCond %{REQUEST_FILENAME}.jgz -f
RewriteRule (.*)\.js$ $1\.css.jgz [L]
AddType "text/css" .css.jgz
AddEncoding gzip .jgz
[!MinifyX?
&CSSfile=`
assets/js/templates/v1/css/reset.css,
assets/js/templates/v1/css/grid.css,
assets/js/templates/v1/css/style.css,
assets/js/templates/v1/js/custom.css
`
&JSfile=`
assets/js/jquery.js,
assets/js/templates/v1/js/custom.js
`
&cssCompress=`1`
&jsCompress=`1`
&outFolder=`assets/templates/`
&outCSS=`v1.css`
&outJS=`v1.js`
!]
<link rel="stylesheet" type="text/css" href="/assets/templates/v1.css.jgz" />
<!-- Π»ΠΈΠ±ΠΎ <link rel="stylesheet" type="text/css" href="/assets/templates/v1.css" /> !-->
<script type="text/javascript" src="/assets/templates/v1.js.jgz"></script>
<!-- Π»ΠΈΠ±ΠΎ <script type="text/javascript" src="/assets/templates/v1.js"></script> !-->