Piwik\Updates\Updates_3_0_0_b1::getDashboardMigrations PHP Метод

getDashboardMigrations() приватный Метод

private getDashboardMigrations ( $allDashboards, $allGoals )
    private function getDashboardMigrations($allDashboards, $allGoals)
    {
        $sqls = array();
        // update dashboard to use new widgets
        $oldWidgets = array(array('module' => 'VisitTime', 'action' => 'getVisitInformationPerServerTime', 'params' => array()), array('module' => 'VisitTime', 'action' => 'getVisitInformationPerLocalTime', 'params' => array()), array('module' => 'VisitTime', 'action' => 'getByDayOfWeek', 'params' => array()), array('module' => 'VisitsSummary', 'action' => 'getEvolutionGraph', 'params' => array('columns' => array('nb_visits'))), array('module' => 'VisitsSummary', 'action' => 'getSparklines', 'params' => array()), array('module' => 'VisitsSummary', 'action' => 'index', 'params' => array()), array('module' => 'Live', 'action' => 'getVisitorLog', 'params' => array('small' => 1)), array('module' => 'VisitorInterest', 'action' => 'getNumberOfVisitsPerVisitDuration', 'params' => array()), array('module' => 'VisitorInterest', 'action' => 'getNumberOfVisitsPerPage', 'params' => array()), array('module' => 'VisitFrequency', 'action' => 'getSparklines', 'params' => array()), array('module' => 'VisitFrequency', 'action' => 'getEvolutionGraph', 'params' => array('columns' => array('nb_visits_returning'))), array('module' => 'DevicesDetection', 'action' => 'getBrowserEngines', 'params' => array()), array('module' => 'Referrers', 'action' => 'getReferrerType', 'params' => array()), array('module' => 'Referrers', 'action' => 'getAll', 'params' => array()), array('module' => 'Referrers', 'action' => 'getSocials', 'params' => array()), array('module' => 'Goals', 'action' => 'widgetGoalsOverview', 'params' => array()), array('module' => 'Goals', 'action' => 'getItemsSku', 'params' => array()), array('module' => 'Goals', 'action' => 'getItemsName', 'params' => array()), array('module' => 'Goals', 'action' => 'getItemsCategory', 'params' => array()), array('module' => 'Ecommerce', 'action' => 'widgetGoalReport', 'params' => array('idGoal' => 'ecommerceOrder')));
        foreach ($allGoals as $goal) {
            $oldWidgets[] = array('module' => 'Goals', 'action' => 'widgetGoalReport', 'params' => array('idGoal' => (int) $goal['idgoal']));
        }
        $newWidgets = array(array('module' => 'VisitTime', 'action' => 'getVisitInformationPerServerTime', 'params' => array()), array('module' => 'VisitTime', 'action' => 'getVisitInformationPerLocalTime', 'params' => array()), array('module' => 'VisitTime', 'action' => 'getByDayOfWeek', 'params' => array()), array('module' => 'VisitsSummary', 'action' => 'getEvolutionGraph', 'params' => array('forceView' => '1', 'viewDataTable' => 'graphEvolution')), array('module' => 'VisitsSummary', 'action' => 'get', 'params' => array('forceView' => '1', 'viewDataTable' => 'sparklines')), array('module' => 'CoreHome', 'action' => 'renderWidgetContainer', 'uniqueId' => 'widgetVisitOverviewWithGraph', 'params' => array('containerId' => 'VisitOverviewWithGraph')), array('module' => 'Live', 'action' => 'getLastVisitsDetails', 'params' => array('forceView' => '1', 'viewDataTable' => 'VisitorLog', 'small' => '1')), array('module' => 'VisitorInterest', 'action' => 'getNumberOfVisitsPerVisitDuration', 'params' => array()), array('module' => 'VisitorInterest', 'action' => 'getNumberOfVisitsPerPage', 'params' => array()), array('module' => 'VisitFrequency', 'action' => 'get', 'params' => array('forceView' => '1', 'viewDataTable' => 'sparklines')), array('module' => 'VisitFrequency', 'action' => 'getEvolutionGraph', 'params' => array('forceView' => 1, 'viewDataTable' => 'graphEvolution')), array('module' => 'DevicesDetection', 'action' => 'getBrowserEngines', 'params' => array()), array('module' => 'Referrers', 'action' => 'getReferrerType', 'params' => array()), array('module' => 'Referrers', 'action' => 'getAll', 'params' => array()), array('module' => 'Referrers', 'action' => 'getSocials', 'params' => array()), array('module' => 'CoreHome', 'action' => 'renderWidgetContainer', 'uniqueId' => 'widgetGoalsOverview', 'params' => array('containerId' => 'GoalsOverview')), array('module' => 'Goals', 'action' => 'getItemsSku', 'params' => array()), array('module' => 'Goals', 'action' => 'getItemsName', 'params' => array()), array('module' => 'Goals', 'action' => 'getItemsCategory', 'params' => array()), array('module' => 'CoreHome', 'action' => 'renderWidgetContainer', 'uniqueId' => 'widgetEcommerceOverview', 'params' => array('containerId' => 'EcommerceOverview')));
        foreach ($allGoals as $goal) {
            $newWidgets[] = array('module' => 'CoreHome', 'action' => 'renderWidgetContainer', 'uniqueId' => 'widgetGoal_' . (int) $goal['idgoal'], 'params' => array('containerId' => 'Goal_' . (int) $goal['idgoal']));
        }
        $table = Common::prefixTable('user_dashboard');
        $sql = sprintf('UPDATE %s SET layout = ? WHERE iddashboard = ?', $table);
        foreach ($allDashboards as $dashboard) {
            $dashboardLayout = json_decode($dashboard['layout']);
            $dashboardLayout = Dashboard\Model::replaceDashboardWidgets($dashboardLayout, $oldWidgets, $newWidgets);
            $newLayout = json_encode($dashboardLayout);
            if ($newLayout != $dashboard['layout']) {
                $sqls[] = $this->migration->db->boundSql($sql, array($newLayout, $dashboard['iddashboard']));
            }
        }
        return $sqls;
    }