Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/matomo-org/matomo.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/CoreHome/Widgets/GetSystemSummary.php')
-rw-r--r--plugins/CoreHome/Widgets/GetSystemSummary.php79
1 files changed, 55 insertions, 24 deletions
diff --git a/plugins/CoreHome/Widgets/GetSystemSummary.php b/plugins/CoreHome/Widgets/GetSystemSummary.php
index f68ce36d4f..a90d7b0586 100644
--- a/plugins/CoreHome/Widgets/GetSystemSummary.php
+++ b/plugins/CoreHome/Widgets/GetSystemSummary.php
@@ -12,11 +12,11 @@ use Piwik\API\Request;
use Piwik\Db;
use Piwik\Piwik;
use Piwik\Plugin;
+use Piwik\Plugins\CoreHome\SystemSummary\Item;
use Piwik\Plugins\SegmentEditor\Services\StoredSegmentService;
use Piwik\Version;
use Piwik\Widget\Widget;
use Piwik\Widget\WidgetConfig;
-use Piwik\View;
class GetSystemSummary extends Widget
{
@@ -46,39 +46,70 @@ class GetSystemSummary extends Widget
public function render()
{
- $userLogins = Request::processRequest('UsersManager.getUsersLogin', array('filter_limit' => '-1'));
- $websites = Request::processRequest('SitesManager.getAllSites', array('filter_limit' => '-1'));
+ $mysqlVersion = $this->getMySqlVersion();
- $numUsers = count($userLogins);
- if (in_array('anonymous', $userLogins)) {
- $numUsers--;
- }
+ $systemSummary = array();
+
+ /**
+ * Triggered to add system summary items that are shown in the System Summary widget.
+ *
+ * **Example**
+ *
+ * public function addSystemSummaryItem(&$systemSummary)
+ * {
+ * $numUsers = 5;
+ * $systemSummary[] = new SystemSummary\Item($key = 'users', Piwik::translate('General_NUsers', $numUsers), $value = null, array('module' => 'UsersManager', 'action' => 'index'), $icon = 'icon-user');
+ * }
+ *
+ * @param Item[] &$systemSummary An array containing system summary items.
+ */
+ Piwik::postEvent('System.addSystemSummaryItems', array(&$systemSummary));
+
+ $systemSummary[] = new Item($key = 'piwik-version', Piwik::translate('CoreHome_SystemSummaryPiwikVersion'), Version::VERSION, $url = null, $icon = '', $order = 21);
+ $systemSummary[] = new Item($key = 'php-version', Piwik::translate('CoreHome_SystemSummaryMysqlVersion'), $mysqlVersion, $url = null, $icon = '', $order = 22);
+ $systemSummary[] = new Item($key = 'mysql-version', Piwik::translate('CoreHome_SystemSummaryPhpVersion'), phpversion(), $url = null, $icon = '', $order = 23);
+
+ $systemSummary = array_filter($systemSummary);
+ usort($systemSummary, function ($itemA, $itemB) {
+ if ($itemA->getOrder() == $itemB->getOrder()) {
+ return 0;
+ }
+ if ($itemA->getOrder() > $itemB->getOrder()) {
+ return 1;
+ }
+ return -1;
+ });
+
+ /**
+ * Triggered to filter system summary items that are shown in the System Summary widget. A plugin might also
+ * sort the system summary items differently.
+ *
+ * **Example**
+ *
+ * public function filterSystemSummaryItems(&$systemSummary)
+ * {
+ * foreach ($systemSummaryItems as $index => $item) {
+ * if ($item && $item->getKey() === 'users') {
+ * $systemSummaryItems[$index] = null;
+ * }
+ * }
+ * }
+ *
+ * @param Item[] &$systemSummary An array containing system summary items.
+ */
+ Piwik::postEvent('System.filterSystemSummaryItems', array(&$systemSummary));
+
+ $systemSummary = array_filter($systemSummary);
return $this->renderTemplate('getSystemSummary', array(
- 'numWebsites' => count($websites),
- 'numUsers' => $numUsers,
- 'numSegments' => $this->getNumSegments(),
- 'numPlugins' => $this->getNumActivatedPlugins(),
- 'piwikVersion' => Version::VERSION,
- 'mySqlVersion' => $this->getMySqlVersion(),
- 'phpVersion' => phpversion()
+ 'items' => $systemSummary
));
}
- private function getNumSegments()
- {
- $segments = $this->storedSegmentService->getAllSegmentsAndIgnoreVisibility();
- return count($segments);
- }
-
private function getMySqlVersion()
{
$db = Db::get();
return $db->getServerVersion();
}
- private function getNumActivatedPlugins()
- {
- return $this->pluginManager->getNumberOfActivatedPluginsExcludingAlwaysActivated();
- }
} \ No newline at end of file