Development

Changeset 7189

You must first sign up to be able to contribute.

Changeset 7189

Show
Ignore:
Timestamp:
01/25/08 18:29:15 (5 years ago)
Author:
Kris.Wallsmith
Message:

sfGoogleAnalyticsPlugin 1.0-RC1: Completed rename of plugin.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • plugins/sfGoogleAnalyticsPlugin/trunk/README

    r5612 r7189  
    1 = sfUrchinPlugin plugin = 
     1= sfGoogleAnalyticsPlugin plugin = 
    22 
    33Easily adds tracking code for [http://www.google.com/analytics Google Analytics] to your presentation layer. 
     
    55== Features == 
    66 
    7  * `sfUrchinActionMixin`: Adds convenience methods to your actions. 
    8  * `sfUrchinFilter`: Adds necessary tracking code to the bottom of every HTML page. 
    9  * `UrchinHelper`: Helper functions for adding `urchinTracker` calls to links. 
     7 * `sfGoogleAnalyticsActionMixin`: Adds convenience methods to your actions. 
     8 * `sfGoogleAnalyticsFilter`: Adds necessary tracking code to the bottom of every HTML page. 
     9 * `GoogleAnalyticsHelper`: Helper functions for adding `urchinTracker` calls to links. 
    1010 
    1111== Installation == 
     
    1414  
    1515  {{{ 
    16   ./symfony plugin-install http://plugins.symfony-project.com/sfUrchinPlugin 
     16  ./symfony plugin-install http://plugins.symfony-project.com/sfGoogleAnalyticsPlugin 
    1717  }}} 
    1818  
     
    2121  {{{ 
    2222  prod: 
    23     urchin
     23    google_analytics
    2424      enabled:     on 
    2525      uacct:       xx-xxxxxxx-x # <-- put your site's account number here 
    2626     
    2727  all: 
    28     urchin
     28    google_analytics
    2929      enabled:     off 
    3030  }}} 
    3131  
    32  * Add `sfUrchinFilter` to `filters.yml` just after `web_debug`: 
     32 * Add `sfGoogleAnalyticsFilter` to `filters.yml` just after `web_debug`: 
    3333  
    3434  {{{ 
    3535  rendering: ~ 
    3636  web_debug: ~ 
    37   urchin
    38     class: sfUrchinFilter 
     37  google_analytics
     38    class: sfGoogleAnalyticsFilter 
    3939  # etc... 
    4040  }}} 
     
    4848  {{{ 
    4949  // from inside an action 
    50   null $this->setUrchinParam(string $utParam) 
     50  null $this->setGoogleAnalyticsParam(string $utParam) 
    5151  }}} 
    5252 
     
    5757  {{{ 
    5858  // from inside an action 
    59   $this->setUrchinParam('/error/404?page='.$this->getModuleName().'/'.$this->getActionName()); 
     59  $this->setGoogleAnalyticsParam('/error/404?page='.$this->getModuleName().'/'.$this->getActionName()); 
    6060  }}} 
    6161 
     
    6464  {{{ 
    6565  // from inside an action 
    66   null $this->addUrchinVar(string $name, string $value) 
     66  null $this->addGoogleAnalyticsVar(string $name, string $value) 
    6767  }}} 
    6868 
     
    7171  {{{ 
    7272  // from inside an action 
    73   $this->addUrchinVar('udn', 'domain.com'); 
     73  $this->addGoogleAnalyticsVar('udn', 'domain.com'); 
    7474  }}} 
    7575 
     
    8989 
    9090  {{{ 
    91   string urchin_link_to(string $name, string $internalUri[, string $urchinUri[, array $options]]) 
     91  string google_analytics_link_to(string $name, string $internalUri[, string $urchinUri[, array $options]]) 
    9292  }}} 
    9393 
     
    9797 
    9898  {{{ 
    99   <?php use_helper('Urchin') ?> 
     99  <?php use_helper('GoogleAnalytics') ?> 
    100100   
    101101  <p> 
    102102    For more information, please visit the  
    103     <?php echo urchin_link_to('symfony project site',  
    104                               'http://www.symfony-project.com',  
    105                               '/outbound/symfony') ?>. 
     103    <?php echo google_analytics_link_to('symfony project site',  
     104                                        'http://www.symfony-project.com',  
     105                                        '/outbound/symfony') ?>. 
    106106  </p> 
    107107  }}} 
     
    110110 
    111111  {{{ 
    112   <?php use_helper('Urchin') ?> 
     112  <?php use_helper('GoogleAnalytics') ?> 
    113113   
    114114  <p> 
    115     You can also download <?php echo urchin_link_to('the PDF version',  
    116                                                     '/doc/the-book.pdf') ?>. 
     115    You can also download <?php echo google_analytics_link_to('the PDF version',  
     116                                                              '/doc/the-book.pdf') ?>. 
    117117  </p> 
    118118  }}} 
     
    121121 
    122122  {{{ 
    123   string urchin_link_to_function(string $name, string $function, string $urchinUri[, array $options]) 
     123  string google_analytics_link_to_function(string $name, string $function, string $urchinUri[, array $options]) 
    124124  }}} 
    125125 
     
    127127 
    128128  {{{ 
    129   <?php use_helper('Urchin') ?> 
     129  <?php use_helper('GoogleAnalytics') ?> 
    130130   
    131   <p><?php echo urchin_link_to_function('close window',  
    132                                         'window.close()',  
    133                                         '/popups/mom/close',  
    134                                         'id=closer') ?></p> 
     131  <p><?php echo google_analytics_link_to_function('close window',  
     132                                                  'window.close()',  
     133                                                  '/popups/mom/close',  
     134                                                  'id=closer') ?></p> 
    135135  }}} 
    136136 
     
    141141  {{{ 
    142142  prod: 
    143     urchin
     143    google_analytics
    144144      enabled:    on 
    145145   
    146146  all: 
    147     urchin
     147    google_analytics
    148148      uacct:      xx-xxxxxxx-x 
    149149      insertion:  top 
     
    152152These settings will place the tracking code just inside the response's opening `<body>` tag (in the `prod` environment). The plugin defaults to placing the tracking code just before the response's closing `</body>` tag. 
    153153 
    154 == Roadmap == 
     154== Version 1.1 Roadmap == 
    155155 
    156 Support for: 
    157  
    158  * `__utmLinker()` 
    159  * `__utmLinkPost()` 
     156Refactor plugin to accommodate both version of Google Analytics tracking code: legacy Urchin Javascript and the new Google Javascript. 
    160157 
    161158== Changelog == 
     159 
     160=== Version 1.0-RC1 === 
     161 
     162 * Renamed plugin from sfUrchinPlugin to sfGoogleAnalyticsPlugin. 
    162163 
    163164=== Version 0.3.1-beta === 
  • plugins/sfGoogleAnalyticsPlugin/trunk/config/app.yml

    r5608 r7189  
    11# all: 
    2 #   urchin
     2#   google_analytics
    33#     enabled:      off 
    44#     uacct:        ~       # Profile number 
  • plugins/sfGoogleAnalyticsPlugin/trunk/config/config.php

    r5350 r7189  
    11<?php 
    22 
    3 sfMixer::register('sfComponent', array('sfUrchinActionMixin', 'setUrchinParam')); 
    4 sfMixer::register('sfComponent', array('sfUrchinActionMixin', 'addUrchinVar')); 
     3sfMixer::register('sfComponent', array('sfGoogleAnalyticsActionMixin', 'setGoogleAnalyticsParam')); 
     4sfMixer::register('sfComponent', array('sfGoogleAnalyticsActionMixin', 'addGoogleAnalyticsVar')); 
  • plugins/sfGoogleAnalyticsPlugin/trunk/lib/action/sfGoogleAnalyticsActionMixin.class.php

    r5350 r7189  
    22 
    33/** 
    4  * Action mixin methods for the sfUrchinPlugin. 
     4 * Action mixin methods for the sfGoogleAnalyticsPlugin. 
    55 *  
    6  * @package     sfUrchinPlugin 
     6 * @package     sfGoogleAnalyticsPlugin 
    77 * @subpackage  action 
    88 * @author      Kris Wallsmith <kris [dot] wallsmith [at] gmail [dot] com> 
    99 * @version     SVN: $Id$ 
    1010 */ 
    11 class sfUrchinActionMixin 
     11class sfGoogleAnalyticsActionMixin 
    1212{ 
    1313  /** 
     
    1919   * @param   string $utParam 
    2020   */ 
    21   public static function setUrchinParam($action, $utParam) 
     21  public static function setGoogleAnalyticsParam($action, $utParam) 
    2222  { 
    2323    $moduleName = $action->getModuleName(); 
    2424    $actionName = $action->getActionName(); 
    2525     
    26     $actionConfig = sfConfig::get('mod_'.$moduleName.'_'.$actionName.'_urchin', array()); 
     26    $actionConfig = sfConfig::get('mod_'.$moduleName.'_'.$actionName.'_google_analytics', array()); 
    2727    $actionConfig['ut_param'] = $utParam; 
    2828     
    29     sfConfig::set('mod_'.$moduleName.'_'.$actionName.'_urchin', $actionConfig); 
     29    sfConfig::set('mod_'.$moduleName.'_'.$actionName.'_google_analytics', $actionConfig); 
    3030  } 
    3131   
     
    3939   * @param   string $value 
    4040   */ 
    41   public static function addUrchinVar($action, $name, $value) 
     41  public static function addGoogleAnalyticsVar($action, $name, $value) 
    4242  { 
    4343    $moduleName = $action->getModuleName(); 
    4444    $actionName = $action->getActionName(); 
    4545     
    46     $actionConfig = sfConfig::get('mod_'.$moduleName.'_'.$actionName.'_urchin', array()); 
     46    $actionConfig = sfConfig::get('mod_'.$moduleName.'_'.$actionName.'_google_analytics', array()); 
    4747    if (!isset($actionConfig['vars'])) 
    4848    { 
     
    5151    $actionConfig['vars'][$name] = $value; 
    5252     
    53     sfConfig::set('mod_'.$moduleName.'_'.$actionName.'_urchin', $actionConfig); 
     53    sfConfig::set('mod_'.$moduleName.'_'.$actionName.'_google_analytics', $actionConfig); 
    5454  } 
    5555   
  • plugins/sfGoogleAnalyticsPlugin/trunk/lib/exception/sfGoogleAnalyticsException.class.php

    r5280 r7189  
    22 
    33/** 
    4  * Exception class for sfUrchinPlugin. 
     4 * Exception class for sfGoogleAnalyticsPlugin. 
    55 *  
    6  * @package     sfUrchinPlugin 
     6 * @package     sfGoogleAnalyticsPlugin 
    77 * @subpackage  exception 
    88 * @author      Kris Wallsmith <kris [dot] wallsmith [at] gmail [dot] com> 
    99 * @version     SVN: $Id$ 
    1010 */ 
    11 class sfUrchinException extends sfException 
     11class sfGoogleAnalyticsException extends sfException 
    1212{ 
    13    
    1413} 
  • plugins/sfGoogleAnalyticsPlugin/trunk/lib/filter/sfGoogleAnalyticsFilter.class.php

    r5612 r7189  
    1111 *  web_debug: ~ 
    1212 *   
    13  *  # sfUrchinPlugin filter 
    14  *  urchin
    15  *    class: sfUrchinFilter 
     13 *  # sfGoogleAnalyticsPlugin filter 
     14 *  google_analytics
     15 *    class: sfGoogleAnalyticsFilter 
    1616 *   
    1717 *  # etc ... 
    1818 * </code> 
    1919 *  
    20  * @package     sfUrchinPlugin 
     20 * @package     sfGoogleAnalyticsPlugin 
    2121 * @subpackage  filter 
    2222 * @author      Kris Wallsmith <kris [dot] wallsmith [at] gmail [dot] com> 
    2323 * @version     SVN: $Id$ 
    2424 */ 
    25 class sfUrchinFilter extends sfFilter 
     25class sfGoogleAnalyticsFilter extends sfFilter 
    2626{ 
    2727  /** 
     
    3838    if ($this->isTrackable()) 
    3939    { 
    40       $insertion    = sfConfig::get('app_urchin_insertion', 'bottom'); 
     40      $insertion    = sfConfig::get('app_google_analytics_insertion', 'bottom'); 
    4141      $insertMethod = 'insertTrackingCode'.$insertion; 
    4242       
     
    4545        if (sfConfig::get('sf_logging_enabled')) 
    4646        { 
    47           $this->getContext()->getLogger()->info('{sfUrchinFilter} Inserting tracking code in "'.$insertion.'" position.'); 
     47          $this->getContext()->getLogger()->info('{sfGoogleAnalyticsFilter} Inserting tracking code in "'.$insertion.'" position.'); 
    4848        } 
    4949         
     
    5353      else 
    5454      { 
    55         throw new sfUrchinException('Unrecognized insertion.'); 
     55        throw new sfGoogleAnalyticsException('Unrecognized insertion.'); 
    5656      } 
    5757    } 
    5858    elseif (sfConfig::get('sf_logging_enabled')) 
    5959    { 
    60       $this->getContext()->getLogger()->info('{sfUrchinFilter} Tracking code not inserted.'); 
     60      $this->getContext()->getLogger()->info('{sfGoogleAnalyticsFilter} Tracking code not inserted.'); 
    6161    } 
    6262  } 
     
    7777     
    7878    // don't add analytics: 
    79     // * if urchin is not enabled 
     79    // * if google analytics is not enabled 
    8080    // * for XHR requests 
    8181    // * if not HTML 
     
    8383    // * if not rendering to the client 
    8484    // * if HTTP headers only 
    85     if (!sfConfig::get('app_urchin_enabled') || 
     85    if (!sfConfig::get('app_google_analytics_enabled') || 
    8686        $request->isXmlHttpRequest() || 
    8787        strpos($response->getContentType(), 'html') === false || 
     
    151151  protected function generateTrackingCode() 
    152152  { 
    153     return sfUrchinToolkit::getHtml(); 
     153    return sfGoogleAnalyticsToolkit::getHtml(); 
    154154  } 
    155155} 
  • plugins/sfGoogleAnalyticsPlugin/trunk/lib/helper/GoogleAnalyticsHelper.php

    r5280 r7189  
    66 * links when analytics is turned off in the configuration. 
    77 *  
    8  * @package     sfUrchinPlugin 
     8 * @package     sfGoogleAnalyticsPlugin 
    99 * @subpackage  helper 
    1010 * @author      Kris Wallsmith <kris [dot] wallsmith [at] gmail [dot] com> 
     
    2727 * @return  string 
    2828 */ 
    29 function urchin_link_to($name, $internalUri, $urchinUri = null, $options = array()) 
     29function google_analytics_link_to($name, $internalUri, $urchinUri = null, $options = array()) 
    3030{ 
    31   if(sfConfig::get('app_urchin_enabled')) 
     31  if (sfConfig::get('app_google_analytics_enabled')) 
    3232  { 
    33     if(!$urchinUri) 
     33    if (!$urchinUri) 
    3434    { 
    3535      $urchinUri = url_for($internalUri); 
    3636    } 
    3737     
    38     $newOnclick = 'urchinTracker(\'' . $urchinUri . '\');'; 
     38    $newOnclick = 'urchinTracker(\''.$urchinUri.'\');'; 
    3939     
    4040    $options = _parse_attributes($options); 
    41     $options['onclick'] = isset($options['onclick']) ? ($newOnclick . $options['onclick']) : $newOnclick; 
     41    $options['onclick'] = isset($options['onclick']) ? ($newOnclick.$options['onclick']) : $newOnclick; 
    4242  } 
    4343 
     
    5555 * @return  string 
    5656 */ 
    57 function urchin_link_to_function($name, $function, $urchinUri, $options = array()) 
     57function google_analytics_link_to_function($name, $function, $urchinUri, $options = array()) 
    5858{ 
    5959  $link = link_to_function($name, $function, $options); 
    6060   
    61   if(sfConfig::get('app_urchin_enabled'))  
     61  if (sfConfig::get('app_google_analytics_enabled'))  
    6262  { 
    63     $link = str_replace('onclick="', 'onclick="urchinTracker(\'' . $urchinUri . '\');', $link); 
     63    $link = str_replace('onclick="', 'onclick="urchinTracker(\''.$urchinUri.'\');', $link); 
    6464  } 
    6565   
  • plugins/sfGoogleAnalyticsPlugin/trunk/lib/util/sfGoogleAnalyticsToolkit.class.php

    r5350 r7189  
    22 
    33/** 
    4  * Utility methods for the sfUrchinPlugin. 
     4 * Utility methods for the sfGoogleAnalyticsPlugin. 
    55 *  
    6  * @package     sfUrchinPlugin 
     6 * @package     sfGoogleAnalyticsPlugin 
    77 * @subpackage  util 
    88 * @author      Kris Wallsmith <kris [dot] wallsmith [at] gmail [dot] com> 
    99 * @version     SVN: $Id$ 
    1010 */ 
    11 class sfUrchinToolkit 
     11class sfGoogleAnalyticsToolkit 
    1212{ 
    1313  /** 
     
    1515   *  
    1616   * @author  Kris Wallsmith 
    17    * @throws  sfUrchinException 
     17   * @throws  sfGoogleAnalyticsException 
    1818   *  
    1919   * @return  string 
     
    2828    $action  = $context->getActionName(); 
    2929     
    30     $actionConfig = sfConfig::get('mod_'.$module.'_'.$action.'_urchin', array()); 
     30    $actionConfig = sfConfig::get('mod_'.$module.'_'.$action.'_google_analytics', array()); 
    3131     
    3232    $usrc = $request->isSecure() ?  
    33       sfConfig::get('app_urchin_usrc_ssl', 'https://ssl.google-analytics.com/urchin.js') :  
    34       sfConfig::get('app_urchin_usrc', 'http://www.google-analytics.com/urchin.js'); 
     33      sfConfig::get('app_google_analytics_usrc_ssl', 'https://ssl.google-analytics.com/urchin.js') :  
     34      sfConfig::get('app_google_analytics_usrc', 'http://www.google-analytics.com/urchin.js'); 
    3535     
    3636    // initial parameter 
     
    4242    else 
    4343    { 
    44       $utParam = sfConfig::get('app_urchin_ut_param'); 
    45       $utParam = sfConfig::get('mod_'.$module.'_urchin_ut_param', $utParam); 
     44      $utParam = sfConfig::get('app_google_analytics_ut_param'); 
     45      $utParam = sfConfig::get('mod_'.$module.'_google_analytics_ut_param', $utParam); 
    4646    } 
    4747     
    4848    // initialization variables 
    49     $vars = sfConfig::get('app_urchin_vars', array()); 
    50     $vars = array_merge($vars, sfConfig::get('mod_'.$module.'_urchin_vars', array())); 
     49    $vars = sfConfig::get('app_google_analytics_vars', array()); 
     50    $vars = array_merge($vars, sfConfig::get('mod_'.$module.'_google_analytics_vars', array())); 
    5151    if (isset($actionConfig['vars']) && is_array($actionConfig['vars'])) 
    5252    { 
     
    5858    { 
    5959      // backwards compatibility 
    60       $vars['uacct'] = sfConfig::get('app_urchin_uacct'); 
     60      $vars['uacct'] = sfConfig::get('app_google_analytics_uacct'); 
    6161      if (!$vars['uacct']) 
    6262      { 
    63         throw new sfUrchinException('Please add your Urchin account number to your app.yml.'); 
     63        throw new sfGoogleAnalyticsException('Please add your Google Analytics account number to your app.yml.'); 
    6464      } 
    6565    } 
  • plugins/sfGoogleAnalyticsPlugin/trunk/package.xml

    r5612 r7189  
    11<?xml version="1.0" encoding="UTF-8"?> 
    22<package xmlns="http://pear.php.net/dtd/package-2.0" xmlns:tasks="http://pear.php.net/dtd/tasks-1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" packagerversion="1.4.1" version="2.0" xsi:schemaLocation="http://pear.php.net/dtd/tasks-1.0 http://pear.php.net/dtd/tasks-1.0.xsd http://pear.php.net/dtd/package-2.0 http://pear.php.net/dtd/package-2.0.xsd"> 
    3   <name>sfUrchinPlugin</name> 
     3  <name>sfGoogleAnalyticsPlugin</name> 
    44  <channel>pear.symfony-project.com</channel> 
    55  <summary>Easily add Google Analytics.</summary> 
     
    1111    <active>yes</active> 
    1212  </lead> 
    13   <date>2007-10-22</date> 
     13  <date>2008-01-25</date> 
    1414  <version> 
    15     <release>0.3.1</release> 
    16     <api>0.3.1</api> 
     15    <release>1.0-RC1</release> 
     16    <api>1.0-RC1</api> 
    1717  </version> 
    1818  <stability> 
    19     <release>beta</release> 
    20     <api>beta</api> 
     19    <release>stable</release> 
     20    <api>stable</api> 
    2121  </stability> 
    2222  <license uri="http://www.symfony-project.com/license">MIT license</license> 
     
    3030      <dir name="lib"> 
    3131        <dir name="action"> 
    32           <file role="data" name="sfUrchinActionMixin.class.php"/> 
     32          <file role="data" name="sfGoogleAnalyticsActionMixin.class.php"/> 
    3333        </dir> 
    3434        <dir name="exception"> 
    35           <file role="data" name="sfUrchinException.class.php"/> 
     35          <file role="data" name="sfGoogleAnalyticsException.class.php"/> 
    3636        </dir> 
    3737        <dir name="filter"> 
    38           <file role="data" name="sfUrchinFilter.php"/> 
     38          <file role="data" name="sfGoogleAnalyticsFilter.class.php"/> 
    3939        </dir> 
    4040        <dir name="helper"> 
    41           <file role="data" name="UrchinHelper.php"/> 
     41          <file role="data" name="GoogleAnalyticsHelper.php"/> 
    4242        </dir> 
    4343        <dir name="util"> 
    44           <file role="data" name="sfUrchinToolkit.class.php"/> 
     44          <file role="data" name="sfGoogleAnalyticsToolkit.class.php"/> 
    4545        </dir> 
    4646      </dir>