/** * Returns the list of websites ID associated with a URL. * * @param string $url * @return array list of websites ID */ public function getSitesIdFromSiteUrl($url) { $url = $this->removeTrailingSlash($url); list($url, $urlBis) = $this->getNormalizedUrls($url); if (Piwik::hasUserSuperUserAccess()) { $ids = Db::get()->fetchAll('SELECT idsite FROM ' . Common::prefixTable('site') . ' WHERE (main_url = ? OR main_url = ?) ' . 'UNION SELECT idsite FROM ' . Common::prefixTable('site_url') . ' WHERE (url = ? OR url = ?) ', array($url, $urlBis, $url, $urlBis)); } else { $login = Piwik::getCurrentUserLogin(); $ids = Db::get()->fetchAll('SELECT idsite FROM ' . Common::prefixTable('site') . ' WHERE (main_url = ? OR main_url = ?)' . 'AND idsite IN (' . Access::getSqlAccessSite('idsite') . ') ' . 'UNION SELECT idsite FROM ' . Common::prefixTable('site_url') . ' WHERE (url = ? OR url = ?)' . 'AND idsite IN (' . Access::getSqlAccessSite('idsite') . ')', array($url, $urlBis, $login, $url, $urlBis, $login)); } return $ids; }
/** * Returns the list of websites ID associated with a URL. * * @param string $login * @param array $urls * @return array list of websites ID */ public function getSitesIdFromSiteUrlHavingAccess($login, $urls) { $siteUrlTable = Common::prefixTable('site_url'); $sqlAccessSite = Access::getSqlAccessSite('idsite'); $ids = $this->db->fetchAll('SELECT idsite FROM ' . $this->table . ' WHERE main_url IN ( ' . Common::getSqlStringFieldsArray($urls) . ')' . 'AND idsite IN (' . $sqlAccessSite . ') ' . 'UNION SELECT idsite FROM ' . $siteUrlTable . ' WHERE url IN ( ' . Common::getSqlStringFieldsArray($urls) . ')' . 'AND idsite IN (' . $sqlAccessSite . ')', array_merge($urls, array($login), $urls, array($login))); return $ids; }
/** * Returns the list of websites ID associated with a URL. * * @param string $url * @return array list of websites ID */ public function getSitesIdFromSiteUrlHavingAccess($url, $urlBis, $login) { $siteUrlTable = Common::prefixTable('site_url'); $sqlAccessSite = Access::getSqlAccessSite('idsite'); $ids = $this->getDb()->fetchAll('SELECT idsite FROM ' . $this->table . ' WHERE (main_url = ? OR main_url = ?)' . 'AND idsite IN (' . $sqlAccessSite . ') ' . 'UNION SELECT idsite FROM ' . $siteUrlTable . ' WHERE (url = ? OR url = ?)' . 'AND idsite IN (' . $sqlAccessSite . ')', array($url, $urlBis, $login, $url, $urlBis, $login)); return $ids; }