/** Get latest searches */ public function latestSearches($return = false) { $view = new Piwik_ViewDataTable_HtmlTable(); $view->init($this->pluginName, __FUNCTION__, 'LatestReferrers.getLatestSearches'); $cols = array(Piwik_LatestReferrers::REFERRER, Piwik_LatestReferrers::REFERRER_KEYWORD, Piwik_LatestReferrers::ENTRY_URL, Piwik_LatestReferrers::TIME, Piwik_LatestReferrers::OCCURRENCES); return $this->latestLinks($return, $view, $cols); }
protected function postDataTableLoadedFromAPI() { parent::postDataTableLoadedFromAPI(); Piwik_Controller::setPeriodVariablesView($this); $columnUniqueVisitors = false; if($this->period == 'day') { $columnUniqueVisitors = 'nb_uniq_visitors'; } // only display conversion rate for the plugins that do not provide "per goal" metrics // otherwise, conversion rate is meaningless as a whole (since we don't process 'cross goals' conversions) $columnConversionRate = false; if(empty($this->viewProperties['show_goals'])) { $columnConversionRate = 'conversion_rate'; } $this->setColumnsToDisplay(array('label', 'nb_visits', $columnUniqueVisitors, 'nb_actions_per_visit', 'avg_time_on_site', 'bounce_rate', $columnConversionRate )); $this->dataTable->filter('ColumnCallbackReplace', array('avg_time_on_site', create_function('$averageTimeOnSite', 'return Piwik::getPrettyTimeFromSeconds($averageTimeOnSite);'))); }
protected function getRequestString() { $string = parent::getRequestString(); foreach ($this->extraRequestParams as $param => $value) { $string .= '&' . $param . '=' . urlencode($value); } return $string; }
protected function postDataTableLoadedFromAPI() { parent::postDataTableLoadedFromAPI(); $this->columnsToPercentageFilter[] = 'goals_conversion_rate'; foreach ($this->columnsToPercentageFilter as $columnName) { $this->dataTable->filter('ColumnCallbackReplace', array($columnName, create_function('$rate', 'return $rate."%";'))); } $this->dataTable->filter('ColumnCallbackReplace', array('revenue_per_visit', array("Piwik", "getPrettyMoney"))); }
protected function postDataTableLoadedFromAPI() { parent::postDataTableLoadedFromAPI(); Piwik_Controller::setPeriodVariablesView($this); $columnUniqueVisitors = false; if ($this->period == 'day') { $columnUniqueVisitors = 'nb_uniq_visitors'; } $this->setColumnsToDisplay(array('label', 'nb_visits', $columnUniqueVisitors, 'nb_actions_per_visit', 'avg_time_on_site', 'bounce_rate', 'conversion_rate')); $this->dataTable->filter('ColumnCallbackReplace', array('avg_time_on_site', create_function('$averageTimeOnSite', 'return Piwik::getPrettyTimeFromSeconds($averageTimeOnSite);'))); }
/** Logins overview */ public function getLoginsTable($return = false) { $view = new Piwik_ViewDataTable_HtmlTable(); $view->init($this->pluginName, __FUNCTION__, 'SiteUsers.getLogins'); $columns = array('username', 'iduser', 'total_logins', 'visits_with_logins', 'duration'); foreach ($columns as $column) { $view->setColumnTranslation($column, Piwik_Translate('SiteUsers_Col_' . $column)); } $view->setColumnsToDisplay($columns); $view->setSortedColumn('total_logins', 'desc'); $view->disableFooter(); $result = $this->renderView($view, true); if ($return) { return $result; } echo $result; }
protected function postDataTableLoadedFromAPI() { $valid = parent::postDataTableLoadedFromAPI(); if ($valid === false) { return false; } foreach ($this->getColumnsToDisplay() as $columnName) { if (strpos($columnName, 'conversion_rate')) { $this->dataTable->filter('ColumnCallbackReplace', array($columnName, create_function('$rate', 'if($rate==0) return "0%"; else return $rate;'))); } } $this->columnsToRevenueFilter[] = 'revenue_per_visit'; foreach ($this->columnsToRevenueFilter as $columnName) { $this->dataTable->filter('ColumnCallbackReplace', array($columnName, create_function('$value', 'return sprintf("%.1f",$value);'))); $this->dataTable->filter('ColumnCallbackReplace', array($columnName, array("Piwik", "getPrettyMoney"), array($this->getIdSite()))); } foreach ($this->columnsToConversionFilter as $columnName) { // this ensures that the value is set to zero for all rows where the value was not set (no conversion) $this->dataTable->filter('ColumnCallbackReplace', array($columnName, create_function('$value', 'return $value;'))); } return true; }