From d9abf4ca78af97cda3403d33b85031069e29bbce Mon Sep 17 00:00:00 2001 From: Reinhold Kainhofer <reinhold@kainhofer.com> Date: Tue, 14 Jan 2014 19:46:03 +0100 Subject: [PATCH] Version 4.0.1: Handle = and html in the basic plugin's rule names; hide the quotes around rule names in the basic plugin; fix typo in the operator regexp --- ...ols_vm2_rules_shipping_advanced_v4.0.1.zip | Bin 0 -> 26624 bytes ...lg_opentools_vm2_rules_shipping_v4.0.1.zip | Bin 21342 -> 21717 bytes rules_shipping_advanced.php | 2 +- rules_shipping_advanced.xml | 4 +-- rules_shipping_base.php | 27 ++++++++++++++++-- 5 files changed, 27 insertions(+), 6 deletions(-) create mode 100644 releases/plg_opentools_vm2_rules_shipping_advanced_v4.0.1.zip diff --git a/releases/plg_opentools_vm2_rules_shipping_advanced_v4.0.1.zip b/releases/plg_opentools_vm2_rules_shipping_advanced_v4.0.1.zip new file mode 100644 index 0000000000000000000000000000000000000000..3ab1d1deb1247354811c8eadb99377332443c98c GIT binary patch literal 26624 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 Kz;GuC!~*~;*LbY} literal 0 HcmV?d00001 diff --git a/releases/plg_opentools_vm2_rules_shipping_v4.0.1.zip b/releases/plg_opentools_vm2_rules_shipping_v4.0.1.zip index d8da980f9b156c98814620346662c7565b9d67c2..e16f0939064c8f2a09ce577d4bc78c6d6a9368f3 100644 GIT binary patch delta 5587 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 MvfcA%U|?VX02rkOF8}}l delta 5214 zcmcb*lJVX$#tj>p`Kl-Bxj2X3zZ0O%z;J!}<o(P_YD2JI}|{G9ogc>VSNSFRNv zsc+l=Xvq!_6(@;5sw*8*IF4zqWtQuiJagHU%4u?L8<)6$T_PcLXaC;cPrv28-&;Lt zLEiGqGkcov-F;ho|L*R)e`Q!bK2Lvt&gb}!5HXegyz4ZVS;cJnAS!ld`-a)>OV`Uv zUtL-AA@WnOl|lUv`Hevn_<m$^?|Ztr{AYd1r6o&_uU%U@cVDd6eZEWcr(BxP^3vb? zrGN96^rc_Y9e;fe`c*vt9&;+srS8Yh^G`FU*q5)-abzkI?`9TeFWTs!v#!NCUvuh& z+qaTBTh=aB+4ETJ$Y-ZGmb)|5%)jeSI=gIR(3k)7E#}Vs7q(PK>3dMoN`Yk}*+n~7 z-+Im!xxc<LbesK&&i>`K?h6;~w0r)#=&-J-R7b_(#mOvRL(Vj9N^@V4Y`oOAIO~wv zz6m)`?ZQKJPcHo>-W!nO6u!r;*&+OZcjUqx)?dk|v%9#Y%#Z0#`S)&7&Y`PuHm5%< znr;!A)A&Mec3bPM{n5!Qy2MKTV~uy3<@_^{$XDW;chpLueoMCH;=i|h3%7GBe&^q~ z*z00|x6pOAKBd~~+E*`~=f^L-+~g2iXuPj()!x>G#~L{ocOK|Hv}&`c+mjX9&JvPB zETT6js<V7pozrpQ=}!^oT*K*Gw?^=kiEVGPy6t^Ts#t8A$vh`v=Xw5niVVIjT;?tm zqOqvZai)i=qL8?->5BU3hcCP(->+zkFBg#dBiFF$>)qF$yPp4^Qtq=?cJ=Pq`*)A5 z`6^Hq_Ipyn-}!>eW*BaD$v$bRVR76@#>-_vsFTL_AKq%x%VU12v)tdsdWzX8;EkY; z#^Hj*B|i2uzo<SCP1_Wnk+n}Gph(2&L&_hvhetFN(k(<TD6(y^*nHsp{`wmob(WXg zU!06|Sh(rQIorb~M|soDWb_WqQA$|BER)}F8M<KivUTN$uCYHA{WLpIJ2d6+;R#>& z*{osN8^Vxgm)EDRcfBxm+03S0Zw*|{a;IFha$etjV2|9gqX*2{Mci0c#7A<zzmquG zQs(MnaiLOu!OLb#MIOy#vbLCgrXX@weU01t@+~|+JswRzonmn0xk;3XI@jGx>s~4C zQq_MmdE-J|j-&s44*1SJry}`eCGU)55(f<$|HYXrKWLT`<D24>;3KAL#l;inqPbgN zD%;@TRBg{28>R2*#kH&voO0%(#kNDgX04m9Dfc(%)V=a{7e}5gb0Ump&FovY^k~8M zH|M<Tf1fj*Ewahg`8cm$i`BZRQXvPk7KP5T3^H0EdHaTX@~z*$jVJ8Rh^kn;{W#<1 zkJ=Wd{Q?mWZrO1(^GB-eKh)>ocHM0T)9YmoGpfS3<f!*NZj3%u#c}xB{!<GKbBjCr zcCbYrIC}PM@6I;U+{mu(txI_wf{qldQSF}3sI2>K)5&_4nT$*ub+$_`TFuG6;_=K$ zY3g17ldeAYdH>n_i(1~y<6l%<j`dgdZ2Uga$1QfJL%JbT-h+1UlP;(1-2;v;&)oTR z+4QFU{o*%LF6CYB{BC(A{_MP)T!Ad|;&;<iN{>ZHY_%#qYyF+|#S(dkEH4f5WanMk zB2y+m5$G0o4386fP#@iHrN`g(QqW*2`;o(Q&8F_07M7@%d~L%~u|1!Xxx95<0_rpx zQg`eSar%~hsa^NiM%GukE8{{xEM3}td#2tAxjO0gsp?KoPl?t&n-PB_VMhL(O)F+- zPIfrmwxHFi(zR{n4p(ul^*bIN%e?j6<A;2`!R@!l->zM*Huu{tg-O*X>v=?(`eS@w zcfayZsp3%BZF467LC?`$4~=Y9uU>OgXstcFxa82MZ51Uuy5CL^GpVeI4l;k7&GoH$ zZ<j8E-{-ZTmEC4&q<nm}zE|hM_T!09Y-A@UPq=<mqS|)i=L74mmRfJ`ik<iOtCdoe zZ(iVbCGpTBCpR+c_~v-m_3kS#Q1YpdRBW#4xMD78`O_^hOwMzT%(LZxnX7KNJFQq< zlW<sVtIvg?_uakXofG?IkMGZ2RC-12@TQ`Jv8(>Qef4X5^4I+EYy1B$_%%P|`hS(M z|C3Msns2k>-}0+p?R&5O-?Hi7a{g8SBTN6DPx@-Vdd>fv&9Ca?V*h`R_<LUab^X5u zzxJ=IU-$oY#NYVvYyZDCzxuyy*T4Lvul2!^|ILs7lDuFrw@m)XcF}ovrrfmnBVMWP z=l*ia{np3r$4cbRe8@Js_|Uj%lIQ%tpDS+_Hcyh7b|HEGO~r_*Mb>L%r|xI?{dixr z;^Sz;1JY)VtXnKs$LTGeH)U}?lS1zQTXRo8<ymXC#Qp2-`t(JWCHZ$+(_UGc)Ya9* zsXflOvegLYyk|E<^wmtSB~x<_Z%k9V_jQMe@sA2EkD1TzetA|k<Ll+L<mHLXE0h)n zPnjxPbm*PsD~b4fEg`qpZr}}P5j^StkdvjVDM}$W`c~HZyR9Mr3L7e-eP4Vrkxr8r z>=XTT`oy;nvNp#m-*?nAsc3Nu-Z6Z?;G=w5O<H8dzJ{o-pcBhP#GZKXdAD+z#<k_Y zg^zVFHHzKIlCQ8rC`09wSK{`&d8Z@IkDoh~vZvrSW3VmneqS$U5x$oKkN3rX=K8&Q zRjtH(i}l-Mm~O8-@$s+8eIcIDXY48$Pi$HLQ`Evn?n+JR-W(UJRQHLt3+kWeF4vqh zon7WY`>a`KXR^2IYJYnB^-kyCbzZMoZ_PQ=cKKZGyNBXQGW%@*o&I>z|G2pQyZLf& z>%Vsi@KrMJXqCTr<}_c|+vIzh5BqMqtVsJU<Jxyn`HxsGcdk^)MhC&k9RE&~t14?) zooLjWb;dx>YCHeAXD{~qNz3y+RIYUUT7Px^y?|euf8_bsB<I^3f0?1ZFx=Nt=ID0S zm;bwFgw@`cnWv$yU{S>0Dkc?oZ|SqY4D+w5Og^nTuTHShcIocsl#GVpg@wHA&RW0t z{9>JK#kCnG1Vt{NEMjry_-e*4C$CL9Byn)Y5{sWt=5d`4sGF0xz4MQ<z1g|!MDexL zcE|pypZ@RW;`$%vfA2n(`BL7yzg+i6aapaQ=kDIK`=7>}mG3UUyLY$kuk!Nu>)7f` z-j}`KRbKsi!k&|U!bV2}Y=86ZuoQo<*cmkS{cE=;HoGc)jG4B56Wm<Eb=+-5>2)LN zXx-1hzI^!IZN5HUc5dt*i<;6ehmRio_j>d8<?ZW~Ucd6LSGm6X?%Dv347CMEnpQ|y zEZL^Raqw$E-L3c0&kg(xf*9|1+z`;p$X;r{{rp$GPh0LzJg1zs?S(-9>;w*NhV4xI z%6w8fG7m^Oh8nzhJ+EYHXxqkWKZjYoTX&Z}vY8+D=#HD*?XRxl{nsA(+<wl~v+<Bv z?2JC|>y56OjBYP$<2KjF%z8O@kDW@(-nQAB*M81Aw|!CAx*{RIf^;r%iKmSR-^Qo( zq^613_5V}gdt$IgRyS$(0p7s)MbEQ@E}u_3q4D4F^s>y;agpk7PWK%pK1DC@ncJ0L z<8SP&B(*f+_N>hdHUGrT$Y+lCdT7hCMcP|f{c>ycyRuUov#&5m@FlnP)*rNRe{6Rv zF1u`fcfD}f6{qNP*Q^#^G=0_kp{%t?q<l{OsiQ9?O{4?&2F!TZDDH9A-J;3zb=$RM z-8(a;?Ay2fZQ;AZwG%@7!n!j0=Lm|;e&ZF!RTj8;Q>zO9if6lz{o}ozd0eB_p{rC{ z_Uq>E6s3?|j5CEq6N=W&sGl0$wf$MW__|hK21Vg)r(8$jZ(OpS!8fB_RPDN|(+(Q^ zyBxOfQ^pNh-eW5s@n7D!oZ*hbpCvnHhp<Z?+k0_qC!b7f>qg_ny31}UoVr`ze)Ht7 zVx5?U!Bb|&6-w4`QYf!r^8TDRePJcb)@#q1pB2pNGs^Z)J}u#?a^?B4H!R9Rr<7eP zMe8T9DGTuLIav0rX8P+Z1@3u2tFO!t`rWc{)0aqQ*=U9nO#MesY`eJIi|xeTn$-=A zJhw7$``D+M-8a}f$4OuPQ;}p4gX<KP@6YF)JS_h`e(zm->yqHAimI&V#RpZymOq=E ze%I@{>SW%IX{Q;h4rClxj-DsKFD7umS9;aM*(pxb>-*2TPwHzb`*hFfy#5*QDB;CV zm^)TV&Qz0Rky~=$x8(j7x93Jx7mF*r&jr2dWV6p?eNrUDqsO*^Z<nw~i|Fe=ua4iE z^>Mnc=Z2;%yW4-|uf)~q#mnxstp54!$AdR7p8QDq|E0R>gFEl_+T~?O%MPBDTDWw* z#;Z57;qP~RS`>At{=h`F7@OGZ>B$QM-%I>|Iz7kWnn=P9y$jb08clB*nwCC26>e_y zH}#XPmF43p%qLSdzOhfA{+VM@ukaTASHC8y#7^8<QhdcJDCe2@p?d{K56wHD&T)Ru zqtorz9!%M6&BORa?QwLK*;S=yMz<e){Bk+s^W5UeiMN|xIpy3r7W^Qf{%3mLIq_!} zvlne=`{bVE+Z7R)7ag_Q$k;XPOG->ux7C)XRwA+KJB~*F{;*k$t=;oxp82P}1|ILu zrF<>!zWRf0+nk^Csx6MqUw!ixqrc_3!_1az#E<7Wd44>;@jb`y;F^nkKk9pV<>tuD ze=A=rR+gc9_u<)+Nndt6|E4N;(R@RF`5TTSNzLb!oh`OUOkdDn<C|(Om3rm&%h*%% z>@(*-6%rKZPqVx#q#b!;N~(VRfqQFChpiFF+7$Tpru?Q0Zw}8l2sd+9So_xf*zDe} zzM$Z?4gAydJabnrD`>sAEn@DY|M`#gZms;XwSfDb*hxP9B=OvH$G;ao+qOO@O7-Yl zPv`nWpFgbPJI1&7?%S=d8^oHMGh|Z~GFmsV#1`E8@|>;yjP&!T#^JK(yf<e?X&jJ$ z%(`yV%_V(hEU^ss$2NbT9DPdmQv3RgcjPaBVV-(nr+wH{xr0IbonA4%&5=1<Gh6Lx z+2iA<?ksJ)Gfird+&wLy!Ybz1_pI*g&dRoYd}d}ilUV)N%`Wzjt>$lNEHMaiZni&r zhiUp@o!LL6UOd0UbaHo0zxtm!vt`faT2=dga@%w(gZaLMc%4Gk)oH5_zR2w0efRCr z!MFVP_?PW7+qqgxv#?_IUeVXL@7%mu^6KpLPuGh+m-=%Rs~0eKRx<xc`N;68gK>In zk-*RQhg1W;#(nzU^R9kIKTB7T<%AQ9pB&>%Ds1q{b6GIG<od;gm{WEV;c3gmi@tVt zJxQI&H1%4m;RMd+wipKPB9@fChZpsJtmqGSY_dNm^6B(Or5`!`jR(!`*xFp0H;3P_ zT6(YjZc3!}^M48V9&TJ>5xUy&>Q`5h*QaLPb?$t|yrLud{e;Z>1uiVC^?cX8azb3a z#lAki`v1e$2^yx~gVUO(FHO?oxhenjQ|#Tw=zh^JcH7Ng73)8a{T65?`Q?mlSA_rM z4J?}9E$So|IZOUHw_-jY`(nmf0r&6Da@&13Z-MO&zWOWSYqy<hX;@#fyLZ2-)U$Wz zR_JF0M?@QI1t-+qxX~oW!K}SO`_zW|*2o#^JN-VaeBfM_ZM$feYH~|YPNPxnpPf^F z$6Vab`fsr|cm3q<hFF%<ua569v#GvToaN8mDrviM`=KSf)2<)=JjM9-nh$|0TaMdK zV)ee3Sv_yT?W`qNOiORdm$I`j^m>u~?!krTsh1Y2f9>~r)b~Ov{!jFC#x>@=Q@&ol z)%d2~#%z`64~E~b|6X2fz9Dn&QZd&EGtT^ZM>7vy?a=tY{n|gbvzf1=OYd?0xVP-H z#)`GZrFWmt`n`~6*5`H|yHl%{Jm$EemHzL$cH{DMheDji?4Mjs+w2pw$Ac~H{mD-+ zf33=OS6`mNy2@&!)oX!&^5wNmYyJiwnYLw{Sj3WV{qY+0kA>#1n7)enhexWc`|(pB z%=GT;WGS!TwWg<OyFc6C`@C-pQ@I!ZlU(MOQ~4_Wh}-hu=J<Pyj_uXX;l2MQZRO>g zTVL(WnRnvB%G%92vHd>|sXGN7`|{S}psi?h_*-84Na?HX{cgXt=j+e%ef29(AZ*!} zhwES6nvmH!W4+HGs~ckVw>rdb&4_<-I%A>!bMad}Vz=hRzu@0>;i<;!)t=v3lU4uA zt$p`C^y<kU`>uFxx=?gyP4bg_szveXkGwM%W@TuXn@6m>$$GI#@#}Zt8#1Bwr`9hy z{L{7d%H~rW@2z|6t9R{s-?6K&%lGfCd-~*Ep_PJXlIdE*4*Au~x4vlC34VRK{-^!Y zY!Mcpi{i%}?RKS4o9)%!E6){C(LOJwuUO>8>DzC!yR_EX?@7zQ`5?f|OxVi(^sNM@ z`G-48KXI<BnB(>E?~a#qH7019KK*+11}~S@+ElNn8$$QIXcDismc9L>Z{rO`p)<31 z+A{Yi%UsPnynaVf>xMrG`}Sm8eOaCy(&<!RtYNS9?BJihU&2?ej{2*$Ywg4(Z!4#6 zOgNqPxbE2Hpv_rFx9pi+*;QQ^<{DY@i(4exU3FpPVtekc${ouemz8EU*Ikz}W&eK4 ze9qgzv!CToS|02(VCvYr=|hLY&W+j1&!lv>?=>+!wfoneRrjZQ&vridWUdPTl7kml zY;RrO>HE1}yr+S!tS?i~Wv1=w?AN<qo5Zc2__4bpt1~L{&Zz@A1vllK&(C_8XYISb z-LqeJ!T!@PYK<;G+3Q@QkpH=S`@tW#uJ?3ad(~ANVlBEM>f6MlMX{%k>dne3(41)# zxl$s|)I@sre)IZ!_kUz>`gr?suYKH{`mO&mgIi0Zel@u~5wG9r%aG}Iy84NF$)&69 z`zNyR*nH8!=IMm@cbe~19{<(N$?voIU-jO<8CTZTubOOrdHsvWOS^8Vtz+kos#xrL zRQqAP*u4wul2)m*-3jRlnJn|<_{`IfmtCuO=47v37Mf}poiXv&!R*2pn;0@;Qa2~g zzn0e)mh)(5-q%grJM&lVPu10U$GeaFLUDk{`?A-Med?}W&)pufyvD=D*v#gj+r5bb zTKke-@ot`DV=?*r>i?Vf8MMfwkLU#i7_fjw^d>(HlAb(2K#s{nfAao-Sf(3BljQ=# znEseeE(`Qyb}(m{yu;aK^6x-bW)&w8+jeq8kOOnCGs9#>SMkZWf*hE{JtoTp$1-jA mnOq$l&ZOWw`ATpsQ@`(I<B(XUf4-9^h1jyC`!O&uFaQ9zOI&9F diff --git a/rules_shipping_advanced.php b/rules_shipping_advanced.php index e6c845c..f4e18fb 100644 --- a/rules_shipping_advanced.php +++ b/rules_shipping_advanced.php @@ -113,7 +113,7 @@ class ShippingRule_Advanced extends ShippingRule { // (OR, AND, in; but make sure we don't capture parts of words, so we need to // use lookbehind/lookahead patterns to exclude OR following another letter // or followed by another letter) and then all arithmetic operators - $re = '/\s*("[^"]*"|\'[^\']*\'|(?<![A-Za-z0-9])(?:OR|AND|IN)(?![A-Za-z0-9])|&&|<=|=>|>=|=>|<>|!=|==|<|=|>|~|\+|-|\*|\/|%|\(|\)|\^|,)\s*/i'; + $re = '/\s*("[^"]*"|\'[^\']*\'|(?<![A-Za-z0-9])(?:OR|AND|IN)(?![A-Za-z0-9])|&&|<=|=>|>=|=<|<>|!=|==|<|=|>|~|\+|-|\*|\/|%|\(|\)|\^|,)\s*/i'; $atoms = preg_split($re, $expression, -1, PREG_SPLIT_DELIM_CAPTURE|PREG_SPLIT_NO_EMPTY); // JFactory::getApplication()->enqueueMessage("TOKENIZING '$expression' returns: <pre>".print_r($atoms,1)."</pre>", 'error'); return $atoms; diff --git a/rules_shipping_advanced.xml b/rules_shipping_advanced.xml index 5cf2a7c..6d31caa 100644 --- a/rules_shipping_advanced.xml +++ b/rules_shipping_advanced.xml @@ -1,12 +1,12 @@ <?xml version="1.0" encoding="UTF-8" ?> <install version="1.5" type="plugin" group="vmshipment" method="upgrade"> <name>VMSHIPMENT_RULES_ADV</name> - <creationDate>2014-01-12</creationDate> + <creationDate>2014-01-14</creationDate> <author>Reinhold Kainhofer</author> <authorUrl>http://www.open-tools.net</authorUrl> <copyright>Copyright (C) 2013, Reinhold Kainhofer</copyright> <license>GPL v3+</license> - <version>4.0</version> + <version>4.0.1</version> <description>VMSHIPMENT_RULES_ADV_DESC</description> <files> <filename plugin="rules_shipping_advanced">rules_shipping_advanced.php</filename> diff --git a/rules_shipping_base.php b/rules_shipping_base.php index 7a8c3ec..cbaed53 100644 --- a/rules_shipping_base.php +++ b/rules_shipping_base.php @@ -787,15 +787,36 @@ class ShippingRule { } + function tokenize_expression ($expression) { + // First, extract all strings, delimited by quotes, then all text operators + // (OR, AND, in; but make sure we don't capture parts of words, so we need to + // use lookbehind/lookahead patterns to exclude OR following another letter + // or followed by another letter) and then all arithmetic operators + $re = '/\s*("[^"]*"|\'[^\']*\'|<=|=>|>=|=<|<>|!=|==|<|=|>)\s*/i'; + $atoms = preg_split($re, $expression, -1, PREG_SPLIT_DELIM_CAPTURE|PREG_SPLIT_NO_EMPTY); + // JFactory::getApplication()->enqueueMessage("TOKENIZING '$expression' returns: <pre>".print_r($atoms,1)."</pre>", 'error'); + return $atoms; + } + function parseRulePart($rulepart) { /* In the basic version, we only split at the comparison operators and assume each term on the LHS and RHS is one variable or constant */ /* In the advanced version, all conditions and costs can be given as a full mathematical expression */ /* Both versions create an expression tree, which can be easily evaluated in evaluateTerm */ - $operators = array('<', '<=', '=', '>', '>=', '=>', '=<', '<>', '!=', '=='); - $op_re='/\s*(<=|=>|>=|=>|<>|!=|==|<|=|>)\s*/'; $rulepart = trim($rulepart); if (empty($rulepart)) return; - $atoms = preg_split ($op_re, $rulepart, -1, PREG_SPLIT_DELIM_CAPTURE); + + + // Special-case the name assignment, where we don't want to interpret the value as an arithmetic expression! + if (preg_match('/^\s*(name|variable|definition)\s*=\s*(["\']?)(.*)\2\s*$/i', $rulepart, $matches)) { + $this->handleAssignment ($matches[1], $matches[3], $rulepart); + return; + } + + // Split at all operators: + $atoms = $this->tokenize_expression ($rulepart); + + /* TODO: Starting from here, the advanced plugin is different! */ + $operators = array('<', '<=', '=', '>', '>=', '=>', '=<', '<>', '!=', '=='); if (count($atoms)==1) { $this->shipping = $this->parseShippingTerm($atoms[0]); } elseif ($atoms[1]=='=') { -- GitLab