Piwik\Widget\WidgetsList::get PHP Method

get() public static method

Get all widgets defined in the Piwik platform.
public static get ( ) : static
return static
    public static function get()
    {
        $list = new static();
        $widgets = StaticContainer::get('Piwik\\Plugin\\WidgetsProvider');
        $widgetContainerConfigs = $widgets->getWidgetContainerConfigs();
        foreach ($widgetContainerConfigs as $config) {
            if ($config->isEnabled()) {
                $list->addWidgetConfig($config);
            }
        }
        $widgetConfigs = $widgets->getWidgetConfigs();
        foreach ($widgetConfigs as $widget) {
            if ($widget->isEnabled()) {
                $list->addWidgetConfig($widget);
            }
        }
        $reports = StaticContainer::get('Piwik\\Plugin\\ReportsProvider');
        $reports = $reports->getAllReports();
        foreach ($reports as $report) {
            if ($report->isEnabled()) {
                $factory = new ReportWidgetFactory($report);
                $report->configureWidgets($list, $factory);
            }
        }
        /**
         * Triggered to filter widgets.
         *
         * **Example**
         *
         *     public function removeWidgetConfigs(Piwik\Widget\WidgetsList $list)
         *     {
         *         $list->remove($category='General_Visits'); // remove all widgets having this category
         *     }
         *
         * @param WidgetsList $list An instance of the WidgetsList. You can change the list of widgets this way.
         */
        Piwik::postEvent('Widget.filterWidgets', array($list));
        return $list;
    }

Usage Example

コード例 #1
0
ファイル: Controller.php プロジェクト: piwik/piwik
 public function home()
 {
     $isMarketplaceEnabled = Marketplace::isMarketplaceEnabled();
     $isFeedbackEnabled = Plugin\Manager::getInstance()->isPluginLoaded('Feedback');
     $widgetsList = WidgetsList::get();
     $hasDonateForm = $widgetsList->isDefined('CoreHome', 'getDonateForm');
     $hasPiwikBlog = $widgetsList->isDefined('RssWidget', 'rssPiwik');
     return $this->renderTemplate('home', array('isMarketplaceEnabled' => $isMarketplaceEnabled, 'isFeedbackEnabled' => $isFeedbackEnabled, 'hasDonateForm' => $hasDonateForm, 'hasPiwikBlog' => $hasPiwikBlog));
 }
All Usage Examples Of Piwik\Widget\WidgetsList::get