Piwik\Plugins\Live\

VisitorDetailsAbstract

Class VisitorDetailsAbstract

This class can be implemented in a plugin to extend the Live reports, visitor log and profile

Methods

The abstract class defines the following methods:

  • setDetails() — Set details of current visit
  • extendVisitorDetails() — Makes it possible to extend the visitor details returned from API
  • provideActionsForVisit() — Makes it possible to enrich the action set for a single visit
  • provideActionsForVisitIds() — Makes it possible to enrich the action set for multiple visits identified by given visit ids
  • filterActions() — Allows filtering the provided actions
  • extendActionDetails() — Allows extended each action with additional information
  • renderAction() — Called when rendering a single Action
  • renderActionTooltip() — Called for rendering the tooltip on actions returned array needs to look like this: array ( 20, // order id 'rendered html content' )
  • renderIcons() — Called when rendering the Icons in visitor log
  • renderVisitorDetails() — Called when rendering the visitor details in visitor log returned array needs to look like this: array ( 20, // order id 'rendered html content' )
  • initProfile() — Allows manipulating the visitor profile properties Will be called when visitor profile is initialized
  • handleProfileVisit() — Allows manipulating the visitor profile properties based on included visits Will be called for every action within the profile
  • handleProfileAction() — Allows manipulating the visitor profile properties based on included actions Will be called for every action within the profile
  • finalizeProfile() — Will be called after iterating over all actions Can be used to set profile information that requires data that was set while iterating over visits & actions

setDetails()

Set details of current visit

Signature

  • It accepts the following parameter(s):

    • $details (array) —
  • It does not return anything.

extendVisitorDetails()

Makes it possible to extend the visitor details returned from API

Example

public function extendVisitorDetails(&$visitor) { $crmData = Model::getCRMData($visitor['userid']);

   foreach ($crmData as $prop => $value) {
       $visitor[$prop] = $value;
   }

}

Signature

  • It accepts the following parameter(s):

    • $visitor (array) —
  • It returns a void value.

provideActionsForVisit()

Makes it possible to enrich the action set for a single visit

Example

public function provideActionsForVisit(&$actions, $visitorDetails) { $adviews = Model::getAdviews($visitorDetails['visitid']); $actions += $adviews; }

Signature

  • It accepts the following parameter(s):

    • $actions (array) — List of action to manipulate
    • $visitorDetails (array) —
  • It returns a void value.

provideActionsForVisitIds()

Makes it possible to enrich the action set for multiple visits identified by given visit ids

action set to enrich needs to have the following structure

$actions = array ( 'idvisit' => array ( list of actions for this visit id ), 'idvisit' => array ( list of actions for this visit id ), ... )

Example

public function provideActionsForVisitIds(&$actions, $visitIds) { $adviews = Model::getAdviewsByVisitIds($visitIds); foreach ($adviews as $idVisit => $adView) { $actions[$idVisit][] = $adView; } }

Signature

  • It accepts the following parameter(s):
    • $actions (array) — action set to enrich
    • $visitIds (array) — list of visit ids
  • It does not return anything.

filterActions()

Allows filtering the provided actions

Example:

public function filterActions(&$actions, $visitorDetailsArray) {
    foreach ($actions as $idx => $action) {
        if ($action['type'] == 'customaction') {
            unset($actions[$idx]);
            continue;
        }
    }
}

Signature

  • It accepts the following parameter(s):

    • $actions (array) —

    • $visitorDetailsArray (array) —

  • It does not return anything.

extendActionDetails()

Allows extended each action with additional information

Signature

  • It accepts the following parameter(s):

    • $action (array) —

    • $nextAction (array) —

    • $visitorDetails (array) —

  • It does not return anything.

renderAction()

Called when rendering a single Action

Signature

  • It accepts the following parameter(s):

    • $action (array) —

    • $previousAction (array) —

    • $visitorDetails (array) —

  • It returns a string value.

renderActionTooltip()

Called for rendering the tooltip on actions returned array needs to look like this: array ( 20, // order id 'rendered html content' )

Signature

  • It accepts the following parameter(s):

    • $action (array) —

    • $visitInfo (array) —

  • It returns a array value.

renderIcons()

Called when rendering the Icons in visitor log

Signature

  • It accepts the following parameter(s):

    • $visitorDetails (array) —
  • It returns a string value.

renderVisitorDetails()

Called when rendering the visitor details in visitor log returned array needs to look like this: array ( 20, // order id 'rendered html content' )

Example public function renderVisitorDetails($visitorDetails) { $view = new View('@MyPlugin/_visitorDetails.twig'); $view->visitInfo = $visitorDetails; return $view->render(); }

Signature

  • It accepts the following parameter(s):

    • $visitorDetails (array) —
  • It returns a array value.

initProfile()

Allows manipulating the visitor profile properties Will be called when visitor profile is initialized

Example

public function initProfile($visit, &$profile) { // initialize properties that will be filled based on visits or actions $profile['totalActions'] = 0; $profile['totalActionsOfMyType'] = 0; }

Signature

  • It accepts the following parameter(s):

    • $visits (DataTable) —

    • $profile (array) —

  • It returns a void value.

handleProfileVisit()

Allows manipulating the visitor profile properties based on included visits Will be called for every action within the profile

Example

public function handleProfileVisit($visit, &$profile) { $profile['totalActions'] += $visit->getColumn('actions'); }

Signature

  • It accepts the following parameter(s):

    • $visit (Piwik\Plugins\Live\DataTable\Row) —

    • $profile (array) —

  • It returns a void value.

handleProfileAction()

Allows manipulating the visitor profile properties based on included actions Will be called for every action within the profile

Example

public function handleProfileAction($action, &$profile) { if ($action['type'] != 'myactiontype') { return; }

   $profile['totalActionsOfMyType']++;

}

Signature

  • It accepts the following parameter(s):

    • $action (array) —

    • $profile (array) —

  • It returns a void value.

finalizeProfile()

Will be called after iterating over all actions Can be used to set profile information that requires data that was set while iterating over visits & actions

Example

public function finalizeProfile($visits, &$profile) { $profile['isPowerUser'] = false;

   if ($profile['totalActionsOfMyType'] > 20) {
       $profile['isPowerUser'] = true;
   }

}

Signature

  • It accepts the following parameter(s):

    • $visits (DataTable) —

    • $profile (array) —

  • It returns a void value.