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:
authorThomas Steur <thomas.steur@gmail.com>2015-07-03 03:54:27 +0300
committersgiehl <stefan@piwik.org>2015-10-06 18:25:13 +0300
commit9ba8f216fd7856ce5fef06bf82ecb8f8a2e7e630 (patch)
tree6ce07d18a85d00b39ab720abe042361c0775aead /core/Plugin/Categories.php
parent8ccc9dc05da021325cdbf141a548637fa52f16b2 (diff)
generate pages instead of implementing them in each controller
Diffstat (limited to 'core/Plugin/Categories.php')
-rw-r--r--core/Plugin/Categories.php71
1 files changed, 71 insertions, 0 deletions
diff --git a/core/Plugin/Categories.php b/core/Plugin/Categories.php
new file mode 100644
index 0000000000..4d0543e014
--- /dev/null
+++ b/core/Plugin/Categories.php
@@ -0,0 +1,71 @@
+<?php
+/**
+ * Piwik - free/libre analytics platform
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
+ */
+namespace Piwik\Plugin;
+
+use Piwik\Container\StaticContainer;
+use Piwik\Piwik;
+use Piwik\Plugin;
+
+/**
+ * Get categories and subcategories that are defined by plugins.
+ */
+class Categories
+{
+ private $pluginManager;
+
+ public function __construct(Plugin\Manager $pluginManager)
+ {
+ $this->pluginManager = $pluginManager;
+ }
+
+ /** @return \Piwik\Category\Category[] */
+ public function getAllCategories()
+ {
+ $categories = $this->pluginManager->findMultipleComponents('Categories', '\\Piwik\\Category\\Category');
+
+ $instances = array();
+ foreach ($categories as $category) {
+ $cat = StaticContainer::getContainer()->make($category);
+ $instances[$cat->getId()] = $cat;
+ }
+
+ return $instances;
+ }
+
+ /** @return \Piwik\Category\Subcategory[] */
+ public function getAllSubcategories()
+ {
+ $subcategories = array();
+
+ /**
+ * Triggered to add custom subcategories.
+ *
+ * **Example**
+ *
+ * public function addSubcategories(&$subcategories)
+ * {
+ * $subcategory = new Subcategory();
+ * $subcategory->setId('General_Overview');
+ * $subcategory->setCategoryId('General_Visits');
+ * $subcategory->setOrder(5);
+ * $subcategories[] = $subcategory;
+ * }
+ *
+ * @param array &$subcategories An array containing a list of subcategories.
+ */
+ Piwik::postEvent('Category.addSubcategories', array(&$subcategories));
+
+ $classes = $this->pluginManager->findMultipleComponents('Categories', '\\Piwik\\Category\\Subcategory');
+
+ foreach ($classes as $subcategory) {
+ $subcategories[] = StaticContainer::getContainer()->make($subcategory);
+ }
+
+ return $subcategories;
+ }
+} \ No newline at end of file