public function createGoalDetailPage($goal) { $widgets = array(); $idGoal = (int) $goal['idgoal']; $name = Common::sanitizeInputValue($goal['name']); $params = array('idGoal' => $idGoal); $config = $this->factory->createWidget(); $config->setSubcategoryId($idGoal); $config->forceViewDataTable(Evolution::ID); $config->setAction('getEvolutionGraph'); $config->setParameters($params); $config->setOrder(5); $config->setIsNotWidgetizable(); $widgets[] = $config; $config = $this->factory->createWidget(); $config->setSubcategoryId($idGoal); $config->setName(''); $config->forceViewDataTable(Sparklines::ID); $config->setParameters($params); $config->addParameters(array('allow_multiple' => (int) $goal['allow_multiple'])); $config->setOrder(15); $config->setIsNotWidgetizable(); $widgets[] = $config; $config = $this->factory->createWidget(); $config->setAction('goalConversionsOverview'); $config->setSubcategoryId($idGoal); $config->setName('Goals_ConversionsOverview'); $config->setParameters($params); $config->setOrder(25); $config->setIsNotWidgetizable(); $config->setMiddlewareParameters(array('module' => 'Goals', 'action' => 'hasConversions', 'idGoal' => $idGoal)); $widgets[] = $config; $container = $this->createWidgetizableWidgetContainer('Goal_' . $idGoal, $name, $widgets); $configs = array($container); $config = $this->factory->createContainerWidget('Goals' . $idGoal); $config->setName(Piwik::translate('Goals_GoalConversionsBy', array($name))); $config->setSubcategoryId($idGoal); $config->setParameters(array()); $config->setOrder(35); $config->setIsNotWidgetizable(); $config->setMiddlewareParameters(array('module' => 'Goals', 'action' => 'hasConversions', 'idGoal' => $idGoal)); $this->buildGoalByDimensionView($idGoal, $config); $configs[] = $config; return $configs; }
public function configureWidgets(WidgetsList $widgetsList, ReportWidgetFactory $factory) { $idSite = Common::getRequestVar('idSite', 0, 'int'); if (empty($idSite)) { return; } $goals = $this->getGoals(); $reports = Goals::getReportsWithGoalMetrics(); $page = new Pages($factory, $reports); $widgetsList->addWidgetConfigs($page->createGoalsOverviewPage($goals)); if ($this->isEcommerceEnabled($idSite)) { $widgetsList->addWidgetConfigs($page->createEcommerceOverviewPage()); $widgetsList->addWidgetConfigs($page->createEcommerceSalesPage()); } foreach ($goals as $goal) { $widgetsList->addWidgetConfigs($page->createGoalDetailPage($goal)); } }