Piwik\Plugins\Dashboard\Dashboard::getDefaultLayout PHP Method

getDefaultLayout() public method

public getDefaultLayout ( )
    public function getDefaultLayout()
    {
        $defaultLayout = $this->getLayoutForUser('', 1);
        if (empty($defaultLayout)) {
            $advertisingWidget = '';
            $advertising = StaticContainer::get('Piwik\\ProfessionalServices\\Advertising');
            if ($advertising->areAdsForProfessionalServicesEnabled() && Plugin\Manager::getInstance()->isPluginActivated('ProfessionalServices')) {
                $advertisingWidget = '{"uniqueId":"widgetProfessionalServicespromoServices","parameters":{"module":"ProfessionalServices","action":"promoServices"}},';
            }
            if (Piwik::hasUserSuperUserAccess()) {
                $piwikPromoWidget = '{"uniqueId":"widgetCoreHomegetDonateForm","parameters":{"module":"CoreHome","action":"getDonateForm"}}';
            } else {
                $piwikPromoWidget = '{"uniqueId":"widgetCoreHomegetPromoVideo","parameters":{"module":"CoreHome","action":"getPromoVideo"}}';
            }
            $defaultLayout = '[
                [
                    {"uniqueId":"widgetLivewidget","parameters":{"module":"Live","action":"widget"}},
                    ' . $piwikPromoWidget . '
                ],
                [
                    {"uniqueId":"widgetVisitsSummarygetEvolutionGraphforceView1viewDataTablegraphEvolution","parameters":{"forceView":"1","viewDataTable":"graphEvolution","module":"VisitsSummary","action":"getEvolutionGraph"}},
                    ' . $advertisingWidget . '
                    {"uniqueId":"widgetVisitsSummarygetforceView1viewDataTablesparklines","parameters":{"forceView":"1","viewDataTable":"sparklines","module":"VisitsSummary","action":"get"}}
                ],
                [
                    {"uniqueId":"widgetUserCountryMapvisitorMap","parameters":{"module":"UserCountryMap","action":"visitorMap"}},
                    {"uniqueId":"widgetReferrersgetReferrerType","parameters":{"module":"Referrers","action":"getReferrerType"}},
                    {"uniqueId":"widgetRssWidgetrssPiwik","parameters":{"module":"RssWidget","action":"rssPiwik"}}
                ]
            ]';
        }
        /**
         * Allows other plugins to modify the default dashboard layout.
         *
         * @param string &$defaultLayout JSON encoded string of the default dashboard layout. Contains an
         *                               array of columns where each column is an array of widgets. Each
         *                               widget is an associative array w/ the following elements:
         *
         *                               * **uniqueId**: The widget's unique ID.
         *                               * **parameters**: The array of query parameters that should be used to get this widget's report.
         */
        Piwik::postEvent("Dashboard.changeDefaultDashboardLayout", array(&$defaultLayout));
        $defaultLayout = $this->removeDisabledPluginFromLayout($defaultLayout);
        return $defaultLayout;
    }

Usage Example

Example #1
0
 /**
  * Get the dashboard layout for the current user (anonymous or logged user)
  *
  * @param int $idDashboard
  *
  * @return string $layout
  */
 protected function getLayout($idDashboard)
 {
     if (Piwik::isUserIsAnonymous()) {
         $session = new SessionNamespace("Dashboard");
         if (!isset($session->dashboardLayout)) {
             return $this->dashboard->getDefaultLayout();
         }
         $layout = $session->dashboardLayout;
     } else {
         $layout = $this->dashboard->getLayoutForUser(Piwik::getCurrentUserLogin(), $idDashboard);
     }
     if (!empty($layout)) {
         $layout = $this->dashboard->removeDisabledPluginFromLayout($layout);
     }
     if (empty($layout)) {
         $layout = $this->dashboard->getDefaultLayout();
     }
     return $layout;
 }