getAllSites();
Site::setSites($sites);
$sites = array_values($sites);
} else {
$sites = API::getInstance()->getSitesWithAdminAccess();
Site::setSitesFromArray($sites);
}
foreach ($sites as &$site) {
$site['alias_urls'] = API::getInstance()->getSiteUrlsFromId($site['idsite']);
$site['excluded_ips'] = explode(',', $site['excluded_ips']);
$site['excluded_parameters'] = explode(',', $site['excluded_parameters']);
$site['excluded_user_agents'] = explode(',', $site['excluded_user_agents']);
}
$view->adminSites = $sites;
$view->adminSitesCount = count($sites);
$timezones = API::getInstance()->getTimezonesList();
$view->timezoneSupported = SettingsServer::isTimezoneSupportEnabled();
$view->timezones = Common::json_encode($timezones);
$view->defaultTimezone = API::getInstance()->getDefaultTimezone();
$view->currencies = Common::json_encode(API::getInstance()->getCurrencyList());
$view->defaultCurrency = API::getInstance()->getDefaultCurrency();
$view->utcTime = Date::now()->getDatetime();
$excludedIpsGlobal = API::getInstance()->getExcludedIpsGlobal();
$view->globalExcludedIps = str_replace(',', "\n", $excludedIpsGlobal);
$excludedQueryParametersGlobal = API::getInstance()->getExcludedQueryParametersGlobal();
$view->globalExcludedQueryParameters = str_replace(',', "\n", $excludedQueryParametersGlobal);
$globalExcludedUserAgents = API::getInstance()->getExcludedUserAgentsGlobal();
$view->globalExcludedUserAgents = str_replace(',', "\n", $globalExcludedUserAgents);
$view->globalSearchKeywordParameters = API::getInstance()->getSearchKeywordParametersGlobal();
$view->globalSearchCategoryParameters = API::getInstance()->getSearchCategoryParametersGlobal();
$view->isSearchCategoryTrackingEnabled = \Piwik\PluginsManager::getInstance()->isPluginActivated('CustomVariables');
$view->allowSiteSpecificUserAgentExclude =
API::getInstance()->isSiteSpecificUserAgentExcludeEnabled();
$view->globalKeepURLFragments = API::getInstance()->getKeepURLFragmentsGlobal();
$view->currentIpAddress = IP::getIpFromHeader();
$view->showAddSite = (boolean)Common::getRequestVar('showaddsite', false);
$this->setBasicVariablesView($view);
echo $view->render();
}
/**
* Records Global settings when user submit changes
*/
public function setGlobalSettings()
{
$response = new ResponseBuilder(Common::getRequestVar('format'));
try {
$this->checkTokenInUrl();
$timezone = Common::getRequestVar('timezone', false);
$excludedIps = Common::getRequestVar('excludedIps', false);
$excludedQueryParameters = Common::getRequestVar('excludedQueryParameters', false);
$excludedUserAgents = Common::getRequestVar('excludedUserAgents', false);
$currency = Common::getRequestVar('currency', false);
$searchKeywordParameters = Common::getRequestVar('searchKeywordParameters', $default = "");
$searchCategoryParameters = Common::getRequestVar('searchCategoryParameters', $default = "");
$enableSiteUserAgentExclude = Common::getRequestVar('enableSiteUserAgentExclude', $default = 0);
$keepURLFragments = Common::getRequestVar('keepURLFragments', $default = 0);
$api = API::getInstance();
$api->setDefaultTimezone($timezone);
$api->setDefaultCurrency($currency);
$api->setGlobalExcludedQueryParameters($excludedQueryParameters);
$api->setGlobalExcludedIps($excludedIps);
$api->setGlobalExcludedUserAgents($excludedUserAgents);
$api->setGlobalSearchParameters($searchKeywordParameters, $searchCategoryParameters);
$api->setSiteSpecificUserAgentExcludeEnabled($enableSiteUserAgentExclude == 1);
$api->setKeepURLFragmentsGlobal($keepURLFragments);
$toReturn = $response->getResponse();
} catch (Exception $e) {
$toReturn = $response->getResponseException($e);
}
echo $toReturn;
}
/**
* Displays the admin UI page showing all tracking tags
* @return void
*/
function displayJavascriptCode()
{
$idSite = Common::getRequestVar('idSite');
Piwik::checkUserHasViewAccess($idSite);
$jsTag = Piwik::getJavascriptCode($idSite, Url::getCurrentUrlWithoutFileName());
$view = new View('@SitesManager/displayJavascriptCode');
$this->setBasicVariablesView($view);
$view->idSite = $idSite;
$site = new Site($idSite);
$view->displaySiteName = $site->getName();
$view->jsTag = $jsTag;
echo $view->render();
}
/**
* User will download a file called PiwikTracker.php that is the content of the actual script
*/
function downloadPiwikTracker()
{
$path = PIWIK_INCLUDE_PATH . '/libs/PiwikTracker/';
$filename = 'PiwikTracker.php';
header('Content-type: text/php');
header('Content-Disposition: attachment; filename="' . $filename . '"');
echo file_get_contents($path . $filename);
}
/**
* Used to generate the doc at http://piwik.org/docs/tracking-api/
*/
function displayAlternativeTagsHelp()
{
$view = new View('@SitesManager/displayAlternativeTagsHelp');
$view->idSite = Common::getRequestVar('idSite');
$url = Common::getRequestVar('piwikUrl', '', 'string');
if (empty($url)
|| !UrlHelper::isLookLikeUrl($url)
) {
$url = $view->piwikUrl;
}
$view->piwikUrlRequest = $url;
$view->calledExternally = true;
echo $view->render();
}
function getSitesForAutocompleter()
{
$pattern = Common::getRequestVar('term');
$sites = API::getInstance()->getPatternMatchSites($pattern);
$pattern = str_replace('%', '', $pattern);
if (!count($sites)) {
$results[] = array('label' => Piwik_Translate('SitesManager_NotFound') . " $pattern.", 'id' => '#');
} else {
if (strpos($pattern, '/') !== false
&& strpos($pattern, '\\/') === false
) {
$pattern = str_replace('/', '\\/', $pattern);
}
foreach ($sites as $s) {
$hl_name = $s['name'];
if (strlen($pattern) > 0) {
@preg_match_all("/$pattern+/i", $hl_name, $matches);
if (is_array($matches[0]) && count($matches[0]) >= 1) {
foreach ($matches[0] as $match) {
$hl_name = str_replace($match, '' . $match . '', $s['name']);
}
}
}
$results[] = array('label' => $hl_name, 'id' => $s['idsite'], 'name' => $s['name']);
}
}
Json::sendHeaderJSON();
print Common::json_encode($results);
}
}