Exemple #1
0
    /**
     * 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;
    }
Exemple #2
0
 /**
  * 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;
 }
Exemple #3
0
 /**
  * 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;
 }