From 016cf9e40f5ef55d0cc6fc6ba7b8f1647452154c Mon Sep 17 00:00:00 2001 From: Thomas Steur <thomas.steur@googlemail.com> Date: Mon, 19 May 2014 01:07:07 +0200 Subject: [PATCH] added possibility to get/create a tracker by using "Tracker = AnalyticsTracker.getTracker" instead of "Piwik.getTracker". Variable will be set only if no such variable is defined yet --- js/piwik.js | 7 +++++++ piwik.js | 4 ++-- piwik.php | 1 + tests/PHPUnit/Integration/PrivacyManagerTest.php | 10 +++++----- tests/PHPUnit/UI | 2 +- 5 files changed, 16 insertions(+), 8 deletions(-) diff --git a/js/piwik.js b/js/piwik.js index 6c3762f4a7..ac9345aa36 100644 --- a/js/piwik.js +++ b/js/piwik.js @@ -3195,6 +3195,13 @@ if (window && window.piwikAsyncInit) { window.piwikAsyncInit(); } +(function () { + var jsTrackerType = (typeof AnalyticsTracker); + if (jsTrackerType === 'undefined') { + AnalyticsTracker = Piwik; + } +})(); + /************************************************************ * Deprecated functionality below * Legacy piwik.js compatibility ftw diff --git a/piwik.js b/piwik.js index 132e89f587..5028133b66 100644 --- a/piwik.js +++ b/piwik.js @@ -28,5 +28,5 @@ O(bt,"mousedown",bq,false)}else{O(bt,"click",bq,false)}}function aI(bt){if(!aZ){ bs=Y[bt]}}}if(!u(bs)||(bs&&bs[0]==="")){return false}return bs},deleteCustomVariable:function(bs,bt){if(this.getCustomVariable(bs,bt)){this.setCustomVariable(bs,"","",bt)}},setLinkTrackingTimer:function(bs){aQ=bs},setDownloadExtensions:function(bs){ay=bs},addDownloadExtensions:function(bs){ay+="|"+bs},setDomains:function(bs){aS=l(bs)?[bs]:bs;aS.push(a9)},setIgnoreClasses:function(bs){Z=l(bs)?[bs]:bs},setRequestMethod:function(bs){aU=bs||"GET"},setReferrerUrl:function(bs){aW=bs},setCustomUrl:function(bs){aG=a8(bo,bs)},setDocumentTitle:function(bs){aw=bs},setAPIUrl:function(bs){al=bs},setDownloadClasses:function(bs){aK=l(bs)?[bs]:bs},setLinkClasses:function(bs){an=l(bs)?[bs]:bs},setCampaignNameKey:function(bs){aA=l(bs)?[bs]:bs},setCampaignKeywordKey:function(bs){av=l(bs)?[bs]:bs},discardHashTag:function(bs){ab=bs},setCookieNamePrefix:function(bs){bm=bs;Y=ai()},setCookieDomain:function(bs){ag=w(bs);aN()},setCookiePath:function(bs){bn=bs;aN()},setVisitorCookieTimeout:function(bs){ak=bs*1000 },setSessionCookieTimeout:function(bs){am=bs*1000},setReferralCookieTimeout:function(bs){aH=bs*1000},setConversionAttributionFirstReferrer:function(bs){aF=bs},disableCookies:function(){ae=true;bf.cookie="0"},deleteCookies:function(){R()},setDoNotTrack:function(bt){var bs=e.doNotTrack||e.msDoNotTrack;bh=bt&&(bs==="yes"||bs==="1");if(bh){this.disableCookies()}},addListener:function(bt,bs){a0(bt,bs)},enableLinkTracking:function(bs){if(n){aI(bs)}else{A.push(function(){aI(bs)})}},enableJSErrorTracking:function(){if(bp){return}bp=true;var bs=C.onerror;C.onerror=function(bx,bv,bu,bw,bt){at(function(){var by="JavaScript Errors";var bz=bv+":"+bu;if(bw){bz+=":"+bw}ac(by,bz,bx)});if(bs){return bs(bx,bv,bu,bw,bt)}return false}},disablePerformanceTracking:function(){aD=false},setGenerationTimeMs:function(bs){ar=parseInt(bs,10)},setHeartBeatTimer:function(bu,bt){var bs=new Date();aa=bs.getTime()+bu*1000;ap=bt*1000},killFrame:function(){if(C.location!==C.top.location){C.top.location=C.location}},redirectFile:function(bs){if(C.location.protocol==="file:"){C.location=bs }},setCountPreRendered:function(bs){aC=bs},trackGoal:function(bs,bu,bt){at(function(){aO(bs,bu,bt)})},trackLink:function(bt,bs,bu){at(function(){bb(bt,bs,bu)})},trackPageView:function(bs,bt){if(x(be)){at(function(){H(U,al,be)})}else{at(function(){aJ(bs,bt)})}},trackEvent:function(bt,bv,bs,bu){at(function(){ac(bt,bv,bs,bu)})},trackSiteSearch:function(bs,bu,bt){at(function(){au(bs,bu,bt)})},setEcommerceView:function(bv,bs,bu,bt){if(!u(bu)||!bu.length){bu=""}else{if(bu instanceof Array){bu=JSON2.stringify(bu)}}aL[5]=["_pkc",bu];if(u(bt)&&String(bt).length){aL[2]=["_pkp",bt]}if((!u(bv)||!bv.length)&&(!u(bs)||!bs.length)){return}if(u(bv)&&bv.length){aL[3]=["_pks",bv]}if(!u(bs)||!bs.length){bs=""}aL[4]=["_pkn",bs]},addEcommerceItem:function(bw,bs,bu,bt,bv){if(bw.length){a2[bw]=[bw,bs,bu,bt,bv]}},trackEcommerceOrder:function(bs,bw,bv,bu,bt,bx){a6(bs,bw,bv,bu,bt,bx)},trackEcommerceCartUpdate:function(bs){bl(bs)}}}function t(){return{push:L}}O(C,"beforeunload",M,false);m();Date.prototype.getTimeAlias=Date.prototype.getTime; -G=new z();var p={setTrackerUrl:1,setAPIUrl:1,setSiteId:1};var d;for(r=0;r<_paq.length;r++){d=_paq[r][0];if(p[d]){L(_paq[r]);delete _paq[r];if(p[d]>1){if(console!==undefined&&console&&console.error){console.error("The method "+d+' is registered more than once in "_paq" variable. Only the last call has an effect. Please have a look at the multiple Piwik trackers documentation: http://developer.piwik.org/api-reference/tracking-javascript#multiple-piwik-trackers')}}p[d]++}}for(r=0;r<_paq.length;r++){if(_paq[r]){L(_paq[r])}}_paq=new t();c={addPlugin:function(Q,R){a[Q]=R},getTracker:function(Q,R){return new z(Q,R)},getAsyncTracker:function(){return G}};if(typeof define==="function"&&define.amd){define("piwik",[],function(){return c})}return c}())}if(window&&window.piwikAsyncInit){window.piwikAsyncInit()}if(typeof piwik_log!=="function"){piwik_log=function(b,f,d,g){function a(h){try{return eval("piwik_"+h)}catch(i){}return}var c,e=Piwik.getTracker(d,f);e.setDocumentTitle(b);e.setCustomData(g); -c=a("tracker_pause");if(c){e.setLinkTrackingTimer(c)}c=a("download_extensions");if(c){e.setDownloadExtensions(c)}c=a("hosts_alias");if(c){e.setDomains(c)}c=a("ignore_classes");if(c){e.setIgnoreClasses(c)}e.trackPageView();if(a("install_tracker")){piwik_track=function(i,k,j,h){e.setSiteId(k);e.setTrackerUrl(j);e.trackLink(i,h)};e.enableLinkTracking()}}}; \ No newline at end of file +G=new z();var p={setTrackerUrl:1,setAPIUrl:1,setSiteId:1};var d;for(r=0;r<_paq.length;r++){d=_paq[r][0];if(p[d]){L(_paq[r]);delete _paq[r];if(p[d]>1){if(console!==undefined&&console&&console.error){console.error("The method "+d+' is registered more than once in "_paq" variable. Only the last call has an effect. Please have a look at the multiple Piwik trackers documentation: http://developer.piwik.org/api-reference/tracking-javascript#multiple-piwik-trackers')}}p[d]++}}for(r=0;r<_paq.length;r++){if(_paq[r]){L(_paq[r])}}_paq=new t();c={addPlugin:function(Q,R){a[Q]=R},getTracker:function(Q,R){return new z(Q,R)},getAsyncTracker:function(){return G}};if(typeof define==="function"&&define.amd){define("piwik",[],function(){return c})}return c}())}if(window&&window.piwikAsyncInit){window.piwikAsyncInit()}(function(){var a=(typeof AnalyticsTracker);if(a==="undefined"){AnalyticsTracker=Piwik}})();if(typeof piwik_log!=="function"){piwik_log=function(b,f,d,g){function a(h){try{return eval("piwik_"+h) +}catch(i){}return}var c,e=Piwik.getTracker(d,f);e.setDocumentTitle(b);e.setCustomData(g);c=a("tracker_pause");if(c){e.setLinkTrackingTimer(c)}c=a("download_extensions");if(c){e.setDownloadExtensions(c)}c=a("hosts_alias");if(c){e.setDomains(c)}c=a("ignore_classes");if(c){e.setIgnoreClasses(c)}e.trackPageView();if(a("install_tracker")){piwik_track=function(i,k,j,h){e.setSiteId(k);e.setTrackerUrl(j);e.trackLink(i,h)};e.enableLinkTracking()}}}; diff --git a/piwik.php b/piwik.php index f3327f666f..18f5b22a54 100644 --- a/piwik.php +++ b/piwik.php @@ -126,6 +126,7 @@ if (!defined('PIWIK_ENABLE_TRACKING') || PIWIK_ENABLE_TRACKING) { $process->main(); } catch (Exception $e) { echo "Error:" . $e->getMessage(); + exit(1); } ob_end_flush(); if ($GLOBALS['PIWIK_TRACKER_DEBUG'] === true) { diff --git a/tests/PHPUnit/Integration/PrivacyManagerTest.php b/tests/PHPUnit/Integration/PrivacyManagerTest.php index 464b189baf..b32373630b 100644 --- a/tests/PHPUnit/Integration/PrivacyManagerTest.php +++ b/tests/PHPUnit/Integration/PrivacyManagerTest.php @@ -743,19 +743,19 @@ class PrivacyManagerTest extends IntegrationTestCase $febDate1 = '2012-02-04'; $sql = "INSERT INTO %s (idarchive,name,idsite,date1,date2,period,ts_archived,value) - VALUES (10000, ?, 1, ?, ?, ?, ?, ?)"; + VALUES (10000,?,1,?,?,?,?,?)"; // one metric for jan & one for feb Db::query(sprintf($sql, Common::prefixTable($archiveTables['numeric'][0])), - array(self::GARBAGE_FIELD, $janDate1, $janDate1, 1, $janDate1, 100)); + array(self::GARBAGE_FIELD, $janDate1, $janDate1, $janDate1, 1, 100)); Db::query(sprintf($sql, Common::prefixTable($archiveTables['numeric'][1])), - array(self::GARBAGE_FIELD, $febDate1, $febDate1, 1, $febDate1, 200)); + array(self::GARBAGE_FIELD, $febDate1, $febDate1, $febDate1, 1, 200)); // add garbage reports Db::query(sprintf($sql, Common::prefixTable($archiveTables['blob'][0])), - array(self::GARBAGE_FIELD, $janDate1, $janDate1, 10, $janDate1, 'blobval')); + array(self::GARBAGE_FIELD, $janDate1, $janDate1, $janDate1, 10, 'blobval')); Db::query(sprintf($sql, Common::prefixTable($archiveTables['blob'][1])), - array(self::GARBAGE_FIELD, $febDate1, $febDate1, 20, $febDate1, 'blobval')); + array(self::GARBAGE_FIELD, $febDate1, $febDate1, $febDate1, 20, 'blobval')); } protected function _checkNoDataChanges() diff --git a/tests/PHPUnit/UI b/tests/PHPUnit/UI index 39bc6bc899..5c83152eae 160000 --- a/tests/PHPUnit/UI +++ b/tests/PHPUnit/UI @@ -1 +1 @@ -Subproject commit 39bc6bc8996f5a9b310c35968c245bdf3ae652d6 +Subproject commit 5c83152eaea307ab8c8706cd1335572cba984160 -- GitLab