Skip to content

Commit

Permalink
Added support for mpq.register
Browse files Browse the repository at this point in the history
  • Loading branch information
dkullmann committed Mar 27, 2012
1 parent 65c8546 commit b6cda28
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 1 deletion.
18 changes: 18 additions & 0 deletions Controller/Component/MixpanelComponent.php
Expand Up @@ -16,8 +16,10 @@ function initialize($controller) {

function beforeRender() {
Configure::write('Mixpanel.events', $this->Session->read('Mixpanel.events'));
Configure::write('Mixpanel.register', $this->Session->read('Mixpanel.register'));
Configure::write('Mixpanel.settings', $this->settings);
$this->Session->delete('Mixpanel.events');
$this->Session->delete('Mixpanel.register');
}

function name_tag($name) {
Expand All @@ -27,6 +29,22 @@ function name_tag($name) {
function identify($id) {
$this->settings['identify'] = $id;
}

/**
* Register new properties using mpq.register(), accepts a key => value array of properties
* Sending a key => value with a duplicate key replaces the old value
*
* @param array $properties Array of key => value properties to register
* @return void
* @author David Kullmann
*/
function register($properties) {
$register = $this->Session->read('Mixpanel.register');
foreach($properties as $key => $value) {
$register[$key] = $value;
}
$this->Session->write('Mixpanel.register', $register);
}

function track($event, $properties = array()) {
$events = $this->Session->read('Mixpanel.events');
Expand Down
4 changes: 3 additions & 1 deletion View/Helper/MixpanelHelper.php
Expand Up @@ -16,12 +16,14 @@ function embed() {
HTML;

$settings = Configure::read('Mixpanel.settings');
$events = Configure::read('Mixpanel.events');
$events = Configure::read('Mixpanel.events');
$register = Configure::read('Mixpanel.register');

$trackers = array();
if (Configure::read('debug')) $trackers[] = 'mpq.set_config({debug: true});';
if (isset($settings['identify'])) $trackers[] = sprintf('mpq.identify(%s);', json_encode($settings['identify']));
if (isset($settings['name_tag'])) $trackers[] = sprintf('mpq.name_tag(%s);', json_encode($settings['name_tag']));
if (isset($register)) $trackers[] = sprintf('mpq.registry(%s);', json_encode($register));

foreach ($events as $event) {
$properties = $event['properties'];
Expand Down
1 change: 1 addition & 0 deletions readme.md
Expand Up @@ -34,6 +34,7 @@ Then add to your app:
// if a user is logged in
$this->Mixpanel->identify($user_id);
$this->Mixpanel->name_tag($user_name);
$this->Mixpanel->register($superProperties);
}

/* app/Controller/PostController.php */
Expand Down

0 comments on commit b6cda28

Please sign in to comment.