Added hook for custom processing of page title, changed some method visibilites to...
authorfrancois <francois@735d13b6-9817-0410-8766-e36946ffe9aa>
Mon, 10 Dec 2012 12:22:21 +0000 (12:22 +0000)
committerfrancois <francois@735d13b6-9817-0410-8766-e36946ffe9aa>
Mon, 10 Dec 2012 12:22:21 +0000 (12:22 +0000)
git-svn-id: https://svn.typo3.org/TYPO3v4/Extensions/rsgoogleanalytics/trunk@68639 735d13b6-9817-0410-8766-e36946ffe9aa

ChangeLog
class.tx_rsgoogleanalytics.php
doc/manual.pdf
doc/manual.sxw

index 7c71a03..8766695 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2012-12-10 Francois Suter  <typo3@cobweb.ch>\r
+\r
+       * Added hook for custom processing of page title, changed some method visibilites to provide a clear API, resolves #43615\r
+\r
 2012-12-03 Francois Suter  <typo3@cobweb.ch>\r
 \r
        * Added code for properly tracking cross-domain links, resolves #43568\r
index 48a8ac8..19f938a 100644 (file)
@@ -77,6 +77,30 @@ class tx_rsgoogleanalytics implements t3lib_singleton {
        }
 
        /**
+        * Returns the extension's TypoScript configuration
+        *
+        * @return array
+        */
+       public function getModConfig() {
+               return $this->modConfig;
+       }
+
+       /**
+        * Adds a GA command to the command list
+        *
+        * @param string $command The GA command
+        * @param int $key The key at which to add the command in the commands array (at the end if empty)
+        */
+       public function addCommand($command, $key = 0) {
+               $key = intval($key);
+               if (empty($key)) {
+                       array_push($this->commands, $command);
+               } else {
+                       $this->commands[$key] = $command;
+               }
+       }
+
+       /**
         * Adds the tracking code at the end of the body tag (pi Method called from TS USER_INT). further the method
         * Adds some js code for downloads and external links if configured.
         *
@@ -105,6 +129,14 @@ class tx_rsgoogleanalytics implements t3lib_singleton {
                } else {
                        $pageName = NULL;
                }
+
+                       // Hook for special treatment of the page name
+               if (is_array($GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['rsgoogleanalytics']['processPageName'])) {
+                       foreach($GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['rsgoogleanalytics']['processPageName'] as $className) {
+                               $processor = &t3lib_div::getUserObj($className);
+                               $pageName = $processor->processPageName($pageName, $this);
+                       }
+               }
                return $this->buildTrackingCode($pageName);
        }
 
@@ -294,7 +326,7 @@ class tx_rsgoogleanalytics implements t3lib_singleton {
         * @param array $parameter The list of call parameters
         * @return string The assembled JavaScript command
         */
-       protected function buildCommand($command, array $parameter) {
+       public function buildCommand($command, array $parameter) {
                        // Generate traditional code
                if (empty($this->modConfig['asynchronous'])) {
                        $command = "\t" . $this->trackerVar . '._' . $command . '(' . implode(', ', $this->wrapJSParams($parameter)) . ');';
@@ -320,7 +352,7 @@ class tx_rsgoogleanalytics implements t3lib_singleton {
         * @param array $parameter The list of call parameters
         * @return string The assembled JavaScript command
         */
-       protected function buildGatCommand($command, array $parameter) {
+       public function buildGatCommand($command, array $parameter) {
                        // Generate traditional code
                if (empty($this->modConfig['asynchronous'])) {
                        $command = "\t" . '_gat._' . $command . '(' . implode(', ', $this->wrapJSParams($parameter)) . ');';
index 8593c37..192a268 100644 (file)
Binary files a/doc/manual.pdf and b/doc/manual.pdf differ
index 7310979..c2c2392 100644 (file)
Binary files a/doc/manual.sxw and b/doc/manual.sxw differ