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:
-rwxr-xr-xplugins/MultiSites/API.php4
-rw-r--r--plugins/SitesManager/API.php33
-rw-r--r--plugins/SitesManager/Model.php62
3 files changed, 75 insertions, 24 deletions
diff --git a/plugins/MultiSites/API.php b/plugins/MultiSites/API.php
index fa0cf38aca..f64a673f23 100755
--- a/plugins/MultiSites/API.php
+++ b/plugins/MultiSites/API.php
@@ -17,6 +17,7 @@ use Piwik\Period\Range;
use Piwik\Piwik;
use Piwik\Plugins\Goals\Archiver;
use Piwik\Plugins\SitesManager\API as APISitesManager;
+use Piwik\Plugins\SitesManager\Model as ModelSitesManager;
use Piwik\Site;
use Piwik\TaskScheduler;
@@ -171,7 +172,8 @@ class API extends \Piwik\Plugin\API
// Both calls above have called Site::setSitesFromArray. We now get these sites:
$sitesToProblablyAdd = Site::getSites();
} else if (is_array($idSitesOrIdSite)) {
- $sitesToProblablyAdd = APISitesManager::getInstance()->getSitesFromIds($idSitesOrIdSite);
+ $model = new ModelSitesManager();
+ $sitesToProblablyAdd = $model->getSitesFromIds($idSitesOrIdSite);
} else {
$sitesToProblablyAdd = array(APISitesManager::getInstance()->getSiteFromId($idSitesOrIdSite));
}
diff --git a/plugins/SitesManager/API.php b/plugins/SitesManager/API.php
index 5c1702ad8b..8eca58f47b 100644
--- a/plugins/SitesManager/API.php
+++ b/plugins/SitesManager/API.php
@@ -180,14 +180,18 @@ class API extends \Piwik\Plugin\API
public function getSiteFromId($idSite)
{
Piwik::checkUserHasViewAccess($idSite);
- $site = Db::get()->fetchRow("SELECT *
- FROM " . Common::prefixTable("site") . "
- WHERE idsite = ?", $idSite);
+
+ $site = $this->getModel()->getSiteFromId($idSite);
Site::setSitesFromArray(array($site));
return $site;
}
+ private function getModel()
+ {
+ return new Model();
+ }
+
/**
* Returns the list of alias URLs registered for the given idSite.
* The website ID must be valid when calling this method!
@@ -419,29 +423,12 @@ class API extends \Piwik\Plugin\API
* @param bool $limit
* @return array
*/
- public function getSitesFromIds($idSites, $limit = false)
+ private function getSitesFromIds($idSites, $limit = false)
{
- Piwik::checkUserHasViewAccess($idSites);
-
- if (count($idSites) === 0) {
- return array();
- }
-
- if ($limit) {
- $limit = "LIMIT " . (int)$limit;
- } else {
- $limit = '';
- }
-
- $idSites = array_map('intval', $idSites);
-
- $db = Db::get();
- $sites = $db->fetchAll("SELECT *
- FROM " . Common::prefixTable("site") . "
- WHERE idsite IN (" . implode(", ", $idSites) . ")
- ORDER BY idsite ASC $limit");
+ $sites = $this->getModel()->getSitesFromIds($idSites, $limit);
Site::setSitesFromArray($sites);
+
return $sites;
}
diff --git a/plugins/SitesManager/Model.php b/plugins/SitesManager/Model.php
new file mode 100644
index 0000000000..9e77f48888
--- /dev/null
+++ b/plugins/SitesManager/Model.php
@@ -0,0 +1,62 @@
+<?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\Plugins\SitesManager;
+
+use Piwik\Db;
+use Piwik\Common;
+use Exception;
+
+class Model
+{
+ /**
+ * Returns the list of websites from the ID array in parameters.
+ *
+ * @param array $idSites list of website ID
+ * @param bool $limit
+ * @return array
+ */
+ public function getSitesFromIds($idSites, $limit = false)
+ {
+ if (count($idSites) === 0) {
+ return array();
+ }
+
+ if ($limit) {
+ $limit = "LIMIT " . (int)$limit;
+ } else {
+ $limit = '';
+ }
+
+ $idSites = array_map('intval', $idSites);
+
+ $db = Db::get();
+ $sites = $db->fetchAll("SELECT *
+ FROM " . Common::prefixTable("site") . "
+ WHERE idsite IN (" . implode(", ", $idSites) . ")
+ ORDER BY idsite ASC $limit");
+
+ return $sites;
+ }
+
+ /**
+ * Returns the website information : name, main_url
+ *
+ * @throws Exception if the site ID doesn't exist or the user doesn't have access to it
+ * @param int $idSite
+ * @return array
+ */
+ public function getSiteFromId($idSite)
+ {
+ $site = Db::get()->fetchRow("SELECT *
+ FROM " . Common::prefixTable("site") . "
+ WHERE idsite = ?", $idSite);
+
+ return $site;
+ }
+}