Piwik\Plugins\Live\
Class VisitorDetailsAbstract
This class can be implemented in a plugin to extend the Live reports, visit log and profile
The abstract class defines the following methods:
setDetails()
— Set details of current visitextendVisitorDetails()
— Makes it possible to extend the visitor details returned from APIprovideActionsForVisit()
— Makes it possible to enrich the action set for a single visitprovideActionsForVisitIds()
— Makes it possible to enrich the action set for multiple visits identified by given visit idsfilterActions()
— Allows filtering the provided actionsextendActionDetails()
— Allows extended each action with additional informationrenderAction()
— Called when rendering a single ActionrenderActionTooltip()
— 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 visit logrenderVisitorDetails()
— Called when rendering the visitor details in visit 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 initializedhandleProfileVisit()
— Allows manipulating the visitor profile properties based on included visits Will be called for every action within the profilehandleProfileAction()
— Allows manipulating the visitor profile properties based on included actions Will be called for every action within the profilefinalizeProfile()
— 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 & actionsgetDb()
setDetails()
Set details of current visit
It accepts the following parameter(s):
$details
(array
) —It does not return anything or a mixed result.
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;
}
}
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; }
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; } }
$actions
(array
) —
action set to enrich$visitIds
(array
) —
list of visit idsfilterActions()
Allows filtering the provided actions
Example:
public function filterActions(&$actions, $visitorDetailsArray) {
foreach ($actions as $idx => $action) {
if ($action['type'] == 'customaction') {
unset($actions[$idx]);
continue;
}
}
}
It accepts the following parameter(s):
$actions
(array
) —
$visitorDetailsArray
(array
) —
It does not return anything or a mixed result.
extendActionDetails()
Allows extended each action with additional information
It accepts the following parameter(s):
$action
(array
) —
$nextAction
(array
) —
$visitorDetails
(array
) —
It does not return anything or a mixed result.
renderAction()
Called when rendering a single Action
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' )
It accepts the following parameter(s):
$action
(array
) —
$visitInfo
(array
) —
It returns a array
value.
renderIcons()
Called when rendering the Icons in visit log
It accepts the following parameter(s):
$visitorDetails
(array
) —It returns a string
value.
renderVisitorDetails()
Called when rendering the visitor details in visit 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(); }
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; }
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'); }
It accepts the following parameter(s):
$visit
(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']++;
}
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;
}
}
It accepts the following parameter(s):
$visits
(DataTable
) —
$profile
(array
) —
It returns a void
value.
getDb()
Since Matomo Matomo
Db
|Piwik\Db\AdapterInterface
—