| <?php |
|
|
| |
| |
| |
| |
| |
| |
|
|
| namespace Piwik\Plugin\Dimension; |
|
|
| use Piwik\Piwik; |
|
|
| |
| |
| |
| class DimensionMetadataProvider |
| { |
| |
| |
| |
| |
| |
| |
| |
| private $actionReferenceColumnsOverride; |
|
|
| public function __construct(array $actionReferenceColumnsOverride = array()) |
| { |
| $this->actionReferenceColumnsOverride = $actionReferenceColumnsOverride; |
| } |
|
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| public function getActionReferenceColumnsByTable() |
| { |
| $result = array( |
| 'log_link_visit_action' => array('idaction_url', |
| 'idaction_url_ref', |
| 'idaction_name_ref', |
| ), |
|
|
| 'log_conversion' => array('idaction_url'), |
|
|
| 'log_visit' => array('visit_exit_idaction_url', |
| 'visit_exit_idaction_name', |
| 'visit_entry_idaction_url', |
| 'visit_entry_idaction_name'), |
|
|
| 'log_conversion_item' => array('idaction_sku', |
| 'idaction_name', |
| 'idaction_category', |
| 'idaction_category2', |
| 'idaction_category3', |
| 'idaction_category4', |
| 'idaction_category5'), |
| ); |
|
|
| $dimensionIdActionColumns = $this->getVisitActionTableActionReferences(); |
| $result['log_link_visit_action'] = array_unique( |
| array_merge($result['log_link_visit_action'], $dimensionIdActionColumns) |
| ); |
|
|
| foreach ($this->actionReferenceColumnsOverride as $table => $columns) { |
| if (empty($result[$table])) { |
| $result[$table] = $columns; |
| } else { |
| $result[$table] = array_unique(array_merge($result[$table], $columns)); |
| } |
| } |
|
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| Piwik::postEvent('Db.getActionReferenceColumnsByTable', array(&$result)); |
|
|
| return $result; |
| } |
|
|
| private function getVisitActionTableActionReferences() |
| { |
| $idactionColumns = array(); |
| foreach (ActionDimension::getAllDimensions() as $actionDimension) { |
| if ($this->isActionReference($actionDimension)) { |
| $idactionColumns[] = $actionDimension->getColumnName(); |
| } |
| } |
| return $idactionColumns; |
| } |
|
|
|
|
| |
| |
| |
| |
| |
| |
| private function isActionReference(ActionDimension $dimension) |
| { |
| try { |
| $dimension->getActionId(); |
|
|
| return true; |
| } catch (\Exception $ex) { |
| return false; |
| } |
| } |
| } |
|
|