add icons for Character groups
This commit is contained in:
commit
2d9a41a5fe
3461 changed files with 594457 additions and 0 deletions
1555
www/analytics/plugins/SitesManager/API.php
Normal file
1555
www/analytics/plugins/SitesManager/API.php
Normal file
File diff suppressed because it is too large
Load diff
158
www/analytics/plugins/SitesManager/Controller.php
Normal file
158
www/analytics/plugins/SitesManager/Controller.php
Normal file
|
|
@ -0,0 +1,158 @@
|
|||
<?php
|
||||
/**
|
||||
* Piwik - Open source web analytics
|
||||
*
|
||||
* @link http://piwik.org
|
||||
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
|
||||
*
|
||||
*/
|
||||
namespace Piwik\Plugins\SitesManager;
|
||||
|
||||
use Exception;
|
||||
use Piwik\API\ResponseBuilder;
|
||||
use Piwik\Common;
|
||||
use Piwik\DataTable\Renderer\Json;
|
||||
use Piwik\Date;
|
||||
use Piwik\IP;
|
||||
use Piwik\Piwik;
|
||||
use Piwik\SettingsPiwik;
|
||||
use Piwik\SettingsServer;
|
||||
use Piwik\Site;
|
||||
use Piwik\Url;
|
||||
use Piwik\UrlHelper;
|
||||
use Piwik\View;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
class Controller extends \Piwik\Plugin\ControllerAdmin
|
||||
{
|
||||
/**
|
||||
* Main view showing listing of websites and settings
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
$view = new View('@SitesManager/index');
|
||||
|
||||
Site::clearCache();
|
||||
if (Piwik::hasUserSuperUserAccess()) {
|
||||
$sitesRaw = API::getInstance()->getAllSites();
|
||||
} else {
|
||||
$sitesRaw = API::getInstance()->getSitesWithAdminAccess();
|
||||
}
|
||||
// Gets sites after Site.setSite hook was called
|
||||
$sites = array_values( Site::getSites() );
|
||||
if(count($sites) != count($sitesRaw)) {
|
||||
throw new Exception("One or more website are missing or invalid.");
|
||||
}
|
||||
|
||||
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\Plugin\Manager::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);
|
||||
return $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);
|
||||
}
|
||||
|
||||
return $toReturn;
|
||||
}
|
||||
|
||||
/**
|
||||
* Displays the admin UI page showing all tracking tags
|
||||
* @return string
|
||||
*/
|
||||
function displayJavascriptCode()
|
||||
{
|
||||
$idSite = Common::getRequestVar('idSite');
|
||||
Piwik::checkUserHasViewAccess($idSite);
|
||||
$jsTag = Piwik::getJavascriptCode($idSite, SettingsPiwik::getPiwikUrl());
|
||||
$view = new View('@SitesManager/displayJavascriptCode');
|
||||
$this->setBasicVariablesView($view);
|
||||
$view->idSite = $idSite;
|
||||
$site = new Site($idSite);
|
||||
$view->displaySiteName = $site->getName();
|
||||
$view->jsTag = $jsTag;
|
||||
|
||||
return $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 . '"');
|
||||
return file_get_contents($path . $filename);
|
||||
}
|
||||
}
|
||||
216
www/analytics/plugins/SitesManager/SitesManager.php
Normal file
216
www/analytics/plugins/SitesManager/SitesManager.php
Normal file
|
|
@ -0,0 +1,216 @@
|
|||
<?php
|
||||
/**
|
||||
* Piwik - Open source web analytics
|
||||
*
|
||||
* @link http://piwik.org
|
||||
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
|
||||
*
|
||||
*/
|
||||
namespace Piwik\Plugins\SitesManager;
|
||||
|
||||
use Piwik\Menu\MenuAdmin;
|
||||
use Piwik\Piwik;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
class SitesManager extends \Piwik\Plugin
|
||||
{
|
||||
const KEEP_URL_FRAGMENT_USE_DEFAULT = 0;
|
||||
const KEEP_URL_FRAGMENT_YES = 1;
|
||||
const KEEP_URL_FRAGMENT_NO = 2;
|
||||
|
||||
/**
|
||||
* @see Piwik\Plugin::getListHooksRegistered
|
||||
*/
|
||||
public function getListHooksRegistered()
|
||||
{
|
||||
return array(
|
||||
'AssetManager.getJavaScriptFiles' => 'getJsFiles',
|
||||
'AssetManager.getStylesheetFiles' => 'getStylesheetFiles',
|
||||
'Menu.Admin.addItems' => 'addMenu',
|
||||
'Tracker.Cache.getSiteAttributes' => 'recordWebsiteDataInCache',
|
||||
'Translate.getClientSideTranslationKeys' => 'getClientSideTranslationKeys',
|
||||
);
|
||||
}
|
||||
|
||||
function addMenu()
|
||||
{
|
||||
MenuAdmin::getInstance()->add('CoreAdminHome_MenuManage', 'SitesManager_Sites',
|
||||
array('module' => 'SitesManager', 'action' => 'index'),
|
||||
Piwik::isUserHasSomeAdminAccess(),
|
||||
$order = 1);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get CSS files
|
||||
*/
|
||||
public function getStylesheetFiles(&$stylesheets)
|
||||
{
|
||||
$stylesheets[] = "plugins/SitesManager/stylesheets/SitesManager.less";
|
||||
$stylesheets[] = "plugins/Zeitgeist/stylesheets/base.less";
|
||||
}
|
||||
|
||||
/**
|
||||
* Get JavaScript files
|
||||
*/
|
||||
public function getJsFiles(&$jsFiles)
|
||||
{
|
||||
$jsFiles[] = "plugins/SitesManager/javascripts/SitesManager.js";
|
||||
}
|
||||
|
||||
/**
|
||||
* Hooks when a website tracker cache is flushed (website updated, cache deleted, or empty cache)
|
||||
* Will record in the tracker config file all data needed for this website in Tracker.
|
||||
*
|
||||
* @param array $array
|
||||
* @param int $idSite
|
||||
* @return void
|
||||
*/
|
||||
public function recordWebsiteDataInCache(&$array, $idSite)
|
||||
{
|
||||
$idSite = (int)$idSite;
|
||||
|
||||
// add the 'hosts' entry in the website array
|
||||
$array['hosts'] = $this->getTrackerHosts($idSite);
|
||||
|
||||
$website = API::getInstance()->getSiteFromId($idSite);
|
||||
$array['excluded_ips'] = $this->getTrackerExcludedIps($website);
|
||||
$array['excluded_parameters'] = self::getTrackerExcludedQueryParameters($website);
|
||||
$array['excluded_user_agents'] = self::getExcludedUserAgents($website);
|
||||
$array['keep_url_fragment'] = self::shouldKeepURLFragmentsFor($website);
|
||||
$array['sitesearch'] = $website['sitesearch'];
|
||||
$array['sitesearch_keyword_parameters'] = $this->getTrackerSearchKeywordParameters($website);
|
||||
$array['sitesearch_category_parameters'] = $this->getTrackerSearchCategoryParameters($website);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns whether we should keep URL fragments for a specific site.
|
||||
*
|
||||
* @param array $site DB data for the site.
|
||||
* @return bool
|
||||
*/
|
||||
private static function shouldKeepURLFragmentsFor($site)
|
||||
{
|
||||
if ($site['keep_url_fragment'] == self::KEEP_URL_FRAGMENT_YES) {
|
||||
return true;
|
||||
} else if ($site['keep_url_fragment'] == self::KEEP_URL_FRAGMENT_NO) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return API::getInstance()->getKeepURLFragmentsGlobal();
|
||||
}
|
||||
|
||||
private function getTrackerSearchKeywordParameters($website)
|
||||
{
|
||||
$searchParameters = $website['sitesearch_keyword_parameters'];
|
||||
if (empty($searchParameters)) {
|
||||
$searchParameters = API::getInstance()->getSearchKeywordParametersGlobal();
|
||||
}
|
||||
return explode(",", $searchParameters);
|
||||
}
|
||||
|
||||
private function getTrackerSearchCategoryParameters($website)
|
||||
{
|
||||
$searchParameters = $website['sitesearch_category_parameters'];
|
||||
if (empty($searchParameters)) {
|
||||
$searchParameters = API::getInstance()->getSearchCategoryParametersGlobal();
|
||||
}
|
||||
return explode(",", $searchParameters);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the array of excluded IPs to save in the config file
|
||||
*
|
||||
* @param array $website
|
||||
* @return array
|
||||
*/
|
||||
private function getTrackerExcludedIps($website)
|
||||
{
|
||||
$excludedIps = $website['excluded_ips'];
|
||||
$globalExcludedIps = API::getInstance()->getExcludedIpsGlobal();
|
||||
|
||||
$excludedIps .= ',' . $globalExcludedIps;
|
||||
|
||||
$ipRanges = array();
|
||||
foreach (explode(',', $excludedIps) as $ip) {
|
||||
$ipRange = API::getInstance()->getIpsForRange($ip);
|
||||
if ($ipRange !== false) {
|
||||
$ipRanges[] = $ipRange;
|
||||
}
|
||||
}
|
||||
return $ipRanges;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the array of excluded user agent substrings for a site. Filters out
|
||||
* any garbage data & trims each entry.
|
||||
*
|
||||
* @param array $website The full set of information for a site.
|
||||
* @return array
|
||||
*/
|
||||
private static function getExcludedUserAgents($website)
|
||||
{
|
||||
$excludedUserAgents = API::getInstance()->getExcludedUserAgentsGlobal();
|
||||
if (API::getInstance()->isSiteSpecificUserAgentExcludeEnabled()) {
|
||||
$excludedUserAgents .= ',' . $website['excluded_user_agents'];
|
||||
}
|
||||
return self::filterBlankFromCommaSepList($excludedUserAgents);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the array of URL query parameters to exclude from URLs
|
||||
*
|
||||
* @param array $website
|
||||
* @return array
|
||||
*/
|
||||
public static function getTrackerExcludedQueryParameters($website)
|
||||
{
|
||||
$excludedQueryParameters = $website['excluded_parameters'];
|
||||
$globalExcludedQueryParameters = API::getInstance()->getExcludedQueryParametersGlobal();
|
||||
|
||||
$excludedQueryParameters .= ',' . $globalExcludedQueryParameters;
|
||||
return self::filterBlankFromCommaSepList($excludedQueryParameters);
|
||||
}
|
||||
|
||||
/**
|
||||
* Trims each element of a comma-separated list of strings, removes empty elements and
|
||||
* returns the result (as an array).
|
||||
*
|
||||
* @param string $parameters The unfiltered list.
|
||||
* @return array The filtered list of strings as an array.
|
||||
*/
|
||||
static private function filterBlankFromCommaSepList($parameters)
|
||||
{
|
||||
$parameters = explode(',', $parameters);
|
||||
$parameters = array_filter($parameters, 'strlen');
|
||||
$parameters = array_unique($parameters);
|
||||
return $parameters;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the hosts alias URLs
|
||||
* @param int $idSite
|
||||
* @return array
|
||||
*/
|
||||
private function getTrackerHosts($idSite)
|
||||
{
|
||||
$urls = API::getInstance()->getSiteUrlsFromId($idSite);
|
||||
$hosts = array();
|
||||
foreach ($urls as $url) {
|
||||
$url = parse_url($url);
|
||||
if (isset($url['host'])) {
|
||||
$hosts[] = $url['host'];
|
||||
}
|
||||
}
|
||||
return $hosts;
|
||||
}
|
||||
|
||||
public function getClientSideTranslationKeys(&$translationKeys)
|
||||
{
|
||||
$translationKeys[] = "General_Save";
|
||||
$translationKeys[] = "General_OrCancel";
|
||||
$translationKeys[] = "SitesManager_OnlyOneSiteAtTime";
|
||||
$translationKeys[] = "SitesManager_DeleteConfirm";
|
||||
}
|
||||
}
|
||||
473
www/analytics/plugins/SitesManager/javascripts/SitesManager.js
Normal file
473
www/analytics/plugins/SitesManager/javascripts/SitesManager.js
Normal file
|
|
@ -0,0 +1,473 @@
|
|||
/*!
|
||||
* Piwik - Web Analytics
|
||||
*
|
||||
* @link http://piwik.org
|
||||
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
|
||||
*/
|
||||
|
||||
// NOTE: if you cannot find the definition of a variable here, look in index.twig
|
||||
function SitesManager(_timezones, _currencies, _defaultTimezone, _defaultCurrency) {
|
||||
|
||||
var timezones = _timezones;
|
||||
var currencies = _currencies;
|
||||
var defaultTimezone = _defaultTimezone;
|
||||
var defaultCurrency = _defaultCurrency;
|
||||
var siteBeingEdited = false;
|
||||
var siteBeingEditedName = '';
|
||||
|
||||
function sendDeleteSiteAJAX(idSite) {
|
||||
var ajaxHandler = new ajaxHelper();
|
||||
ajaxHandler.addParams({
|
||||
idSite: idSite,
|
||||
module: 'API',
|
||||
format: 'json',
|
||||
method: 'SitesManager.deleteSite'
|
||||
}, 'GET');
|
||||
ajaxHandler.redirectOnSuccess();
|
||||
ajaxHandler.setLoadingElement();
|
||||
ajaxHandler.send(true);
|
||||
}
|
||||
|
||||
function sendAddSiteAJAX(row) {
|
||||
var siteName = $(row).find('input#name').val();
|
||||
var urls = $(row).find('textarea#urls').val();
|
||||
urls = urls.trim().split("\n");
|
||||
var excludedIps = $(row).find('textarea#excludedIps').val();
|
||||
excludedIps = piwikHelper.getApiFormatTextarea(excludedIps);
|
||||
var timezone = $(row).find('#timezones option:selected').val();
|
||||
var currency = $(row).find('#currencies option:selected').val();
|
||||
var excludedQueryParameters = $(row).find('textarea#excludedQueryParameters').val();
|
||||
excludedQueryParameters = piwikHelper.getApiFormatTextarea(excludedQueryParameters);
|
||||
var excludedUserAgents = $(row).find('textarea#excludedUserAgents').val();
|
||||
excludedUserAgents = piwikHelper.getApiFormatTextarea(excludedUserAgents);
|
||||
var keepURLFragments = $('#keepURLFragmentSelect', row).val();
|
||||
var ecommerce = $(row).find('#ecommerce option:selected').val();
|
||||
var sitesearch = $(row).find('#sitesearch option:selected').val();
|
||||
var searchKeywordParameters = $('input#searchKeywordParameters').val();
|
||||
var searchCategoryParameters = $('input#searchCategoryParameters').val();
|
||||
|
||||
var ajaxHandler = new ajaxHelper();
|
||||
ajaxHandler.addParams({
|
||||
module: 'API',
|
||||
format: 'json',
|
||||
method: 'SitesManager.addSite'
|
||||
}, 'GET');
|
||||
ajaxHandler.addParams({
|
||||
siteName: siteName,
|
||||
timezone: timezone,
|
||||
currency: currency,
|
||||
ecommerce: ecommerce,
|
||||
excludedIps: excludedIps,
|
||||
excludedQueryParameters: excludedQueryParameters,
|
||||
excludedUserAgents: excludedUserAgents,
|
||||
keepURLFragments: keepURLFragments,
|
||||
siteSearch: sitesearch,
|
||||
searchKeywordParameters: searchKeywordParameters,
|
||||
searchCategoryParameters: searchCategoryParameters,
|
||||
urls: urls
|
||||
}, 'POST');
|
||||
ajaxHandler.redirectOnSuccess();
|
||||
ajaxHandler.setLoadingElement();
|
||||
ajaxHandler.send(true);
|
||||
}
|
||||
|
||||
function sendUpdateSiteAJAX(row) {
|
||||
var siteName = $(row).find('input#siteName').val();
|
||||
var idSite = $(row).children('#idSite').html();
|
||||
var urls = $(row).find('textarea#urls').val();
|
||||
urls = urls.trim().split("\n");
|
||||
var excludedIps = $(row).find('textarea#excludedIps').val();
|
||||
excludedIps = piwikHelper.getApiFormatTextarea(excludedIps);
|
||||
|
||||
var excludedQueryParameters = $(row).find('textarea#excludedQueryParameters').val();
|
||||
excludedQueryParameters = piwikHelper.getApiFormatTextarea(excludedQueryParameters);
|
||||
var excludedUserAgents = $(row).find('textarea#excludedUserAgents').val();
|
||||
excludedUserAgents = piwikHelper.getApiFormatTextarea(excludedUserAgents);
|
||||
var keepURLFragments = $('#keepURLFragmentSelect', row).val();
|
||||
var timezone = $(row).find('#timezones option:selected').val();
|
||||
var currency = $(row).find('#currencies option:selected').val();
|
||||
var ecommerce = $(row).find('#ecommerce option:selected').val();
|
||||
var sitesearch = $(row).find('#sitesearch option:selected').val();
|
||||
var searchKeywordParameters = $('input#searchKeywordParameters').val();
|
||||
var searchCategoryParameters = $('input#searchCategoryParameters').val();
|
||||
|
||||
var ajaxHandler = new ajaxHelper();
|
||||
ajaxHandler.addParams({
|
||||
module: 'API',
|
||||
format: 'json',
|
||||
method: 'SitesManager.updateSite',
|
||||
idSite: idSite
|
||||
}, 'GET');
|
||||
ajaxHandler.addParams({
|
||||
siteName: siteName,
|
||||
timezone: timezone,
|
||||
currency: currency,
|
||||
ecommerce: ecommerce,
|
||||
excludedIps: excludedIps,
|
||||
excludedQueryParameters: excludedQueryParameters,
|
||||
excludedUserAgents: excludedUserAgents,
|
||||
keepURLFragments: keepURLFragments,
|
||||
siteSearch: sitesearch,
|
||||
searchKeywordParameters: searchKeywordParameters,
|
||||
searchCategoryParameters: searchCategoryParameters,
|
||||
urls: urls
|
||||
}, 'POST');
|
||||
ajaxHandler.redirectOnSuccess();
|
||||
ajaxHandler.setLoadingElement();
|
||||
ajaxHandler.send(true);
|
||||
}
|
||||
|
||||
function sendGlobalSettingsAJAX() {
|
||||
var timezone = $('#defaultTimezone').find('option:selected').val();
|
||||
var currency = $('#defaultCurrency').find('option:selected').val();
|
||||
var excludedIps = $('textarea#globalExcludedIps').val();
|
||||
excludedIps = piwikHelper.getApiFormatTextarea(excludedIps);
|
||||
var excludedQueryParameters = $('textarea#globalExcludedQueryParameters').val();
|
||||
excludedQueryParameters = piwikHelper.getApiFormatTextarea(excludedQueryParameters);
|
||||
var globalExcludedUserAgents = $('textarea#globalExcludedUserAgents').val();
|
||||
globalExcludedUserAgents = piwikHelper.getApiFormatTextarea(globalExcludedUserAgents);
|
||||
var globalKeepURLFragments = $('#globalKeepURLFragments').is(':checked') ? 1 : 0;
|
||||
var searchKeywordParameters = $('input#globalSearchKeywordParameters').val();
|
||||
var searchCategoryParameters = $('input#globalSearchCategoryParameters').val();
|
||||
var enableSiteUserAgentExclude = $('input#enableSiteUserAgentExclude').is(':checked') ? 1 : 0;
|
||||
|
||||
var ajaxHandler = new ajaxHelper();
|
||||
ajaxHandler.addParams({
|
||||
module: 'SitesManager',
|
||||
format: 'json',
|
||||
action: 'setGlobalSettings'
|
||||
}, 'GET');
|
||||
ajaxHandler.addParams({
|
||||
timezone: timezone,
|
||||
currency: currency,
|
||||
excludedIps: excludedIps,
|
||||
excludedQueryParameters: excludedQueryParameters,
|
||||
excludedUserAgents: globalExcludedUserAgents,
|
||||
keepURLFragments: globalKeepURLFragments,
|
||||
enableSiteUserAgentExclude: enableSiteUserAgentExclude,
|
||||
searchKeywordParameters: searchKeywordParameters,
|
||||
searchCategoryParameters: searchCategoryParameters
|
||||
}, 'POST');
|
||||
ajaxHandler.redirectOnSuccess();
|
||||
ajaxHandler.setLoadingElement('#ajaxLoadingGlobalSettings');
|
||||
ajaxHandler.setErrorElement('#ajaxErrorGlobalSettings');
|
||||
ajaxHandler.send(true);
|
||||
}
|
||||
|
||||
this.init = function () {
|
||||
$('.addRowSite').click(function () {
|
||||
piwikHelper.hideAjaxError();
|
||||
$('.addRowSite').toggle();
|
||||
|
||||
var excludedUserAgentCell = '';
|
||||
if ($('#exclude-user-agent-header').is(':visible')) {
|
||||
excludedUserAgentCell = '<td><textarea cols="20" rows="4" id="excludedUserAgents"></textarea><br />' + excludedUserAgentsHelp + '</td>';
|
||||
}
|
||||
|
||||
var numberOfRows = $('table#editSites')[0].rows.length;
|
||||
var newRowId = 'rowNew' + numberOfRows;
|
||||
var submitButtonHtml = '<input type="submit" class="addsite submit" value="' + _pk_translate('General_Save') + '" />';
|
||||
$($.parseHTML(' <tr id="' + newRowId + '">\
|
||||
<td> </td>\
|
||||
<td><input id="name" value="Name" size="15" /><br/><br/><br/>' + submitButtonHtml + '</td>\
|
||||
<td><textarea cols="25" rows="3" id="urls">http://siteUrl.com/\nhttp://siteUrl2.com/</textarea><br />' + aliasUrlsHelp + keepURLFragmentSelectHTML + '</td>\
|
||||
<td><textarea cols="20" rows="4" id="excludedIps"></textarea><br />' + excludedIpHelp + '</td>\
|
||||
<td><textarea cols="20" rows="4" id="excludedQueryParameters"></textarea><br />' + excludedQueryParametersHelp + '</td>' +
|
||||
excludedUserAgentCell +
|
||||
'<td>' + getSitesearchSelector(false) + '</td>\
|
||||
<td>' + getTimezoneSelector(defaultTimezone) + '<br />' + timezoneHelp + '</td>\
|
||||
<td>' + getCurrencySelector(defaultCurrency) + '<br />' + currencyHelp + '</td>\
|
||||
<td>' + getEcommerceSelector(0) + '<br />' + ecommerceHelp + '</td>\
|
||||
<td>' + submitButtonHtml + '</td>\
|
||||
<td><span class="cancel link_but">' + sprintf(_pk_translate('General_OrCancel'), "", "") + '</span></td>\
|
||||
</tr>'))
|
||||
.appendTo('#editSites')
|
||||
;
|
||||
|
||||
piwikHelper.lazyScrollTo('#' + newRowId);
|
||||
|
||||
$('.addsite').click(function () {
|
||||
sendAddSiteAJAX($('tr#' + newRowId));
|
||||
});
|
||||
|
||||
$('.cancel').click(function () {
|
||||
piwikHelper.hideAjaxError();
|
||||
$(this).parents('tr').remove();
|
||||
$('.addRowSite').toggle();
|
||||
});
|
||||
return false;
|
||||
});
|
||||
|
||||
// when click on deleteuser, the we ask for confirmation and then delete the user
|
||||
$('.deleteSite').click(function () {
|
||||
piwikHelper.hideAjaxError();
|
||||
var idRow = $(this).attr('id');
|
||||
var nameToDelete = $(this).parent().parent().find('input#siteName').val() || $(this).parent().parent().find('td#siteName').html();
|
||||
var idsiteToDelete = $(this).parent().parent().find('#idSite').html();
|
||||
|
||||
$('#confirm').find('h2').text(sprintf(_pk_translate('SitesManager_DeleteConfirm'), '"' + nameToDelete + '" (idSite = ' + idsiteToDelete + ')'));
|
||||
piwikHelper.modalConfirm('#confirm', { yes: function () {
|
||||
|
||||
sendDeleteSiteAJAX(idsiteToDelete);
|
||||
}});
|
||||
}
|
||||
);
|
||||
|
||||
var alreadyEdited = [];
|
||||
$('.editSite')
|
||||
.click(function () {
|
||||
piwikHelper.hideAjaxError();
|
||||
var idRow = $(this).attr('id');
|
||||
if (alreadyEdited[idRow] == 1) return;
|
||||
if (siteBeingEdited) {
|
||||
$('#alert').find('h2').text(sprintf(_pk_translate('SitesManager_OnlyOneSiteAtTime'), '"' + $("<div/>").html(siteBeingEditedName).text() + '"'));
|
||||
piwikHelper.modalConfirm('#alert', {});
|
||||
return;
|
||||
}
|
||||
siteBeingEdited = true;
|
||||
|
||||
alreadyEdited[idRow] = 1;
|
||||
$('tr#' + idRow + ' .editableSite').each(
|
||||
// make the fields editable
|
||||
// change the EDIT button to VALID button
|
||||
function (i, n) {
|
||||
var contentBefore = $(n).html();
|
||||
|
||||
var idName = $(n).attr('id');
|
||||
if (idName == 'siteName') {
|
||||
siteBeingEditedName = contentBefore;
|
||||
var contentAfter = '<input id="' + idName + '" value="' + piwikHelper.htmlEntities( piwikHelper.htmlDecode(contentBefore))+ '" size="15" />';
|
||||
|
||||
var inputSave = $('<br/><input style="margin-top:50px" type="submit" class="submit" value="' + _pk_translate('General_Save') + '" />')
|
||||
.click(function () { submitUpdateSite($(this).parent()); });
|
||||
var spanCancel = $('<div><br/>' + sprintf(_pk_translate('General_OrCancel'), "", "") + '</div>')
|
||||
.click(function () { piwikHelper.refreshAfter(0); });
|
||||
$(n)
|
||||
.html(contentAfter)
|
||||
.keypress(submitSiteOnEnter)
|
||||
.append(inputSave)
|
||||
.append(spanCancel);
|
||||
}
|
||||
else if (idName == 'urls') {
|
||||
var keepURLFragmentsForSite = $(this).closest('tr').attr('data-keep-url-fragments');
|
||||
var contentAfter = '<textarea cols="25" rows="3" id="urls">' + contentBefore.replace(/<br *\/? *> */gi, "\n") + '</textarea>';
|
||||
contentAfter += '<br />' + aliasUrlsHelp + keepURLFragmentSelectHTML;
|
||||
$(n).html(contentAfter).find('select').val(keepURLFragmentsForSite);
|
||||
}
|
||||
else if (idName == 'excludedIps') {
|
||||
var contentAfter = '<textarea cols="20" rows="4" id="excludedIps">' + contentBefore.replace(/<br *\/? *>/gi, "\n") + '</textarea>';
|
||||
contentAfter += '<br />' + excludedIpHelp;
|
||||
$(n).html(contentAfter);
|
||||
}
|
||||
else if (idName == 'excludedQueryParameters') {
|
||||
var contentAfter = '<textarea cols="20" rows="4" id="excludedQueryParameters">' + contentBefore.replace(/<br *\/? *>/gi, "\n") + '</textarea>';
|
||||
contentAfter += '<br />' + excludedQueryParametersHelp;
|
||||
$(n).html(contentAfter);
|
||||
}
|
||||
else if (idName == 'excludedUserAgents') {
|
||||
var contentAfter = '<textarea cols="20" rows="4" id="excludedUserAgents">' +
|
||||
contentBefore.replace(/<br *\/? *>/gi, "\n") + '</textarea><br />' + excludedUserAgentsHelp;
|
||||
$(n).html(contentAfter);
|
||||
}
|
||||
else if (idName == 'timezone') {
|
||||
var contentAfter = getTimezoneSelector(contentBefore);
|
||||
contentAfter += '<br />' + timezoneHelp;
|
||||
$(n).html(contentAfter);
|
||||
}
|
||||
else if (idName == 'currency') {
|
||||
var contentAfter = getCurrencySelector(contentBefore);
|
||||
contentAfter += '<br />' + currencyHelp;
|
||||
$(n).html(contentAfter);
|
||||
}
|
||||
else if (idName == 'ecommerce') {
|
||||
var ecommerceActive = contentBefore.indexOf("ecommerceActive") > 0 ? 1 : 0;
|
||||
contentAfter = getEcommerceSelector(ecommerceActive) + '<br />' + ecommerceHelp;
|
||||
$(n).html(contentAfter);
|
||||
}
|
||||
else if (idName == 'sitesearch') {
|
||||
contentAfter = getSitesearchSelector(contentBefore);
|
||||
$(n).html(contentAfter);
|
||||
onClickSiteSearchUseDefault();
|
||||
}
|
||||
}
|
||||
);
|
||||
$(this)
|
||||
.toggle()
|
||||
.parent()
|
||||
.prepend($('<input type="submit" class="updateSite submit" value="' + _pk_translate('General_Save') + '" />')
|
||||
.click(function () { sendUpdateSiteAJAX($('tr#' + idRow)); })
|
||||
);
|
||||
});
|
||||
|
||||
$('#globalSettingsSubmit').click(function () {
|
||||
sendGlobalSettingsAJAX();
|
||||
});
|
||||
|
||||
$('#defaultTimezone').html(getTimezoneSelector(defaultTimezone));
|
||||
$('#defaultCurrency').html(getCurrencySelector(defaultCurrency));
|
||||
|
||||
$('td.editableSite').click(function (event) {
|
||||
$(this).parent().find('.editSite').click();
|
||||
});
|
||||
};
|
||||
|
||||
function getSitesearchSelector(contentBefore) {
|
||||
var globalKeywordParameters = $('input#globalSearchKeywordParameters').val().trim();
|
||||
var globalCategoryParameters = $('input#globalSearchCategoryParameters').val().trim();
|
||||
if (contentBefore) {
|
||||
var enabled = contentBefore.indexOf("sitesearchActive") > 0 ? 1 : 0;
|
||||
var spanSearch = $(contentBefore).filter('.sskp');
|
||||
var searchKeywordParameters = spanSearch.attr('sitesearch_keyword_parameters').trim();
|
||||
var searchCategoryParameters = spanSearch.attr('sitesearch_category_parameters').trim();
|
||||
var checked = globalKeywordParameters.length && !searchKeywordParameters.trim().length;
|
||||
} else {
|
||||
var searchKeywordParameters = globalKeywordParameters;
|
||||
var searchCategoryParameters = globalCategoryParameters;
|
||||
var enabled = searchKeywordParameters.length || searchCategoryParameters.length; // default is enabled
|
||||
var checked = enabled;
|
||||
}
|
||||
|
||||
var searchGlobalHasValues = globalKeywordParameters.trim().length;
|
||||
var html = '<select id="sitesearch" onchange="return onClickSiteSearchUseDefault();">';
|
||||
var selected = ' selected="selected" ';
|
||||
html += '<option ' + (enabled ? selected : '') + ' value="1">' + sitesearchEnabled + '</option>';
|
||||
html += '<option ' + (enabled ? '' : selected) + ' value="0">' + sitesearchDisabled + '</option>';
|
||||
html += '</select>';
|
||||
html += '<span style="font-size: 11px;"><br/>';
|
||||
|
||||
if (searchGlobalHasValues) {
|
||||
var checkedStr = checked ? ' checked ' : '';
|
||||
html += '<span id="sitesearchUseDefault"' + (!enabled ? ' style="display:none" ' : '') + '><input type="checkbox" '
|
||||
+ checkedStr + ' id="sitesearchUseDefaultCheck" onclick="return onClickSiteSearchUseDefault();"> '
|
||||
+ sitesearchUseDefault + ' </span>';
|
||||
+ '</label>';
|
||||
|
||||
html += '<div ' + ((checked && enabled) ? '' : 'style="display-none"') + ' class="searchDisplayParams form-description">'
|
||||
+ searchKeywordLabel + ' (' + strDefault + ') ' + ': '
|
||||
+ piwikHelper.htmlEntities( globalKeywordParameters )
|
||||
+ (globalCategoryParameters.length ? ', ' + searchCategoryLabel + ': ' + piwikHelper.htmlEntities(globalCategoryParameters) : '')
|
||||
+ '</div>';
|
||||
}
|
||||
html += '<div id="sitesearchIntro">' + sitesearchIntro + '</div>';
|
||||
|
||||
html += '<div id="searchSiteParameters">';
|
||||
html += '<br/><label><div style="margin-bottom:3px">'
|
||||
+ piwikHelper.htmlEntities(searchKeywordLabel)
|
||||
+ '</div><input type="text" size="22" id="searchKeywordParameters" value="'
|
||||
+ piwikHelper.htmlEntities(searchKeywordParameters)
|
||||
+ '" style="font-size:9pt;font-family:monospace"></input>'
|
||||
+ searchKeywordHelp + '</label>';
|
||||
|
||||
// if custom var plugin is disabled, category tracking not supported
|
||||
if (globalCategoryParameters != 'globalSearchCategoryParametersIsDisabled') {
|
||||
html += '<br/><label><div style="margin-bottom:3px">' + searchCategoryLabel + '</div><input type="text" size="22" id="searchCategoryParameters" value="' + searchCategoryParameters + '" style="font-size:9pt;font-family:monospace"></input>' + searchCategoryHelp + '</label>';
|
||||
}
|
||||
html += '</div></span>';
|
||||
|
||||
return html;
|
||||
}
|
||||
|
||||
function getEcommerceSelector(enabled) {
|
||||
var html = '<select id="ecommerce">';
|
||||
var selected = ' selected="selected" ';
|
||||
html += '<option ' + (enabled ? '' : selected) + ' value="0">' + ecommerceDisabled + '</option>';
|
||||
html += '<option ' + (enabled ? selected : '') + ' value="1">' + ecommerceEnabled + '</option>';
|
||||
html += '</select>';
|
||||
return html;
|
||||
}
|
||||
|
||||
function getTimezoneSelector(selectedTimezone) {
|
||||
var html = '<select id="timezones">';
|
||||
for (var continent in timezones) {
|
||||
html += '<optgroup label="' + continent + '">';
|
||||
for (var timezoneId in timezones[continent]) {
|
||||
var selected = '';
|
||||
if (timezoneId == selectedTimezone) {
|
||||
selected = ' selected="selected" ';
|
||||
}
|
||||
html += '<option ' + selected + ' value="' + timezoneId + '">' + timezones[continent][timezoneId] + '</option>';
|
||||
}
|
||||
html += "</optgroup>\n";
|
||||
}
|
||||
html += '</select>';
|
||||
return html;
|
||||
}
|
||||
|
||||
|
||||
function getCurrencySelector(selectedCurrency) {
|
||||
var html = '<select id="currencies">';
|
||||
for (var currency in currencies) {
|
||||
var selected = '';
|
||||
if (currency == selectedCurrency) {
|
||||
selected = ' selected="selected" ';
|
||||
}
|
||||
html += '<option ' + selected + ' value="' + currency + '">' + currencies[currency] + '</option>';
|
||||
}
|
||||
html += '</select>';
|
||||
return html;
|
||||
}
|
||||
|
||||
function submitSiteOnEnter(e) {
|
||||
var key = e.keyCode || e.which;
|
||||
if (key == 13) {
|
||||
submitUpdateSite(this);
|
||||
$(this).find('.addsite').click();
|
||||
}
|
||||
}
|
||||
|
||||
function submitUpdateSite(self) {
|
||||
$(self).parent().find('.updateSite').click();
|
||||
}
|
||||
}
|
||||
|
||||
function onClickSiteSearchUseDefault() {
|
||||
// Site Search enabled
|
||||
if ($('select#sitesearch').val() == "1") {
|
||||
$('#sitesearchUseDefault').show();
|
||||
|
||||
// Use default is checked
|
||||
if ($('#sitesearchUseDefaultCheck').is(':checked')) {
|
||||
$('#searchSiteParameters').hide();
|
||||
$('#sitesearchIntro').show();
|
||||
$('#searchKeywordParameters,#searchCategoryParameters').val('');
|
||||
$('.searchDisplayParams').show();
|
||||
// Use default is unchecked
|
||||
|
||||
} else {
|
||||
$('#sitesearchIntro').hide();
|
||||
$('.searchDisplayParams').hide();
|
||||
$('#searchSiteParameters').show();
|
||||
}
|
||||
} else {
|
||||
$('.searchDisplayParams').hide();
|
||||
$('#sitesearchUseDefault').hide();
|
||||
$('#searchSiteParameters').hide();
|
||||
$('#sitesearchIntro').show();
|
||||
}
|
||||
}
|
||||
|
||||
$(function () {
|
||||
|
||||
// when code element is clicked, select the text
|
||||
$('.trackingHelp code').click(function() {
|
||||
// credit where credit is due:
|
||||
// http://stackoverflow.com/questions/1173194/select-all-div-text-with-single-mouse-click
|
||||
var range;
|
||||
if (document.body.createTextRange) // MSIE
|
||||
{
|
||||
range = document.body.createTextRange();
|
||||
range.moveToElementText(this);
|
||||
range.select();
|
||||
}
|
||||
else if (window.getSelection) // others
|
||||
{
|
||||
range = document.createRange();
|
||||
range.selectNodeContents(this);
|
||||
|
||||
var selection = window.getSelection();
|
||||
selection.removeAllRanges();
|
||||
selection.addRange(range);
|
||||
}
|
||||
})
|
||||
.click();
|
||||
});
|
||||
|
|
@ -0,0 +1,69 @@
|
|||
.trackingHelp ul {
|
||||
padding-left: 40px;
|
||||
list-style-type: square;
|
||||
}
|
||||
|
||||
.trackingHelp ul li {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.trackingHelp h2 {
|
||||
margin-top: 20px;
|
||||
}
|
||||
|
||||
.trackingHelp p {
|
||||
text-align: justify;
|
||||
}
|
||||
|
||||
.addRowSite {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.addRowSite:before {
|
||||
display: inline-block;
|
||||
content: url(plugins/UsersManager/images/add.png);
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
#editSites {
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
#editSites h4 {
|
||||
font-size: .8em;
|
||||
margin: 1em 0 1em 0;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
#editSites .entityTable tr td {
|
||||
vertical-align: top;
|
||||
padding-top: 7px;
|
||||
}
|
||||
|
||||
#editSites .addRowSite:hover,
|
||||
#editSites .editableSite:hover,
|
||||
#editSites .addsite:hover,
|
||||
#editSites .cancel:hover,
|
||||
#editSites .deleteSite:hover,
|
||||
#editSites .editSite:hover,
|
||||
#editSites .updateSite:hover {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
#editSites .addRowSite a {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
#editSites .addRowSite {
|
||||
padding: 1em;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.ecommerceInactive,
|
||||
.sitesearchInactive {
|
||||
color: #666666;
|
||||
}
|
||||
|
||||
#searchSiteParameters {
|
||||
display: none;
|
||||
}
|
||||
|
|
@ -0,0 +1,18 @@
|
|||
<h2>{{ 'SitesManager_TrackingTags'|translate(displaySiteName) }}</h2>
|
||||
|
||||
<div class='trackingHelp'>
|
||||
<p>{{ 'Installation_JSTracking_Intro'|translate }}</p>
|
||||
|
||||
<p>{{ 'CoreAdminHome_JSTrackingIntro3'|translate('<a href="http://piwik.org/integrate/" target="_blank">','</a>')|raw }}</p>
|
||||
|
||||
<h3>{{ 'General_JsTrackingTag'|translate }}</h3>
|
||||
|
||||
<p>{{ 'CoreAdminHome_JSTracking_CodeNote'|translate("</body>")|raw }}</p>
|
||||
|
||||
<pre class="code-pre"><code>{{ jsTag|raw }}</code></pre>
|
||||
|
||||
<br/>
|
||||
<p>{{ 'CoreAdminHome_JSTrackingIntro5'|translate('<a target="_blank" href="http://piwik.org/docs/javascript-tracking/">','</a>')|raw }}</p>
|
||||
|
||||
<p>{{ 'Installation_JSTracking_EndNote'|translate('<em>','</em>')|raw }}</p>
|
||||
</div>
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
{% extends 'admin.twig' %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
{% include "@SitesManager/_displayJavascriptCode.twig" %}
|
||||
{% endblock %}
|
||||
426
www/analytics/plugins/SitesManager/templates/index.twig
Normal file
426
www/analytics/plugins/SitesManager/templates/index.twig
Normal file
|
|
@ -0,0 +1,426 @@
|
|||
{% extends 'admin.twig' %}
|
||||
|
||||
{% block content %}
|
||||
{% import 'macros.twig' as piwik %}
|
||||
{% import 'ajaxMacros.twig' as ajax %}
|
||||
|
||||
{% set excludedIpHelpPlain %}
|
||||
{{ 'SitesManager_HelpExcludedIps'|translate("1.2.3.*","1.2.*.*") }}
|
||||
<br/><br/>
|
||||
{{ 'SitesManager_YourCurrentIpAddressIs'|translate("<i>" ~ currentIpAddress ~ "</i>")|raw }}
|
||||
{% endset %}
|
||||
|
||||
{% set excludedIpHelp=piwik.inlineHelp(excludedIpHelpPlain) %}
|
||||
|
||||
{% set defaultTimezoneHelpPlain %}
|
||||
{% if timezoneSupported %}
|
||||
{{ 'SitesManager_ChooseCityInSameTimezoneAsYou'|translate }}
|
||||
{% else %}
|
||||
{{ 'SitesManager_AdvancedTimezoneSupportNotFound'|translate }}
|
||||
{% endif %}
|
||||
<br/><br/>
|
||||
{{ 'SitesManager_UTCTimeIs'|translate(utcTime) }}
|
||||
{% endset %}
|
||||
|
||||
{% set timezoneHelpPlain %}
|
||||
{{ defaultTimezoneHelpPlain }}
|
||||
<br/><br/>
|
||||
{{ 'SitesManager_ChangingYourTimezoneWillOnlyAffectDataForward'|translate }}
|
||||
{% endset %}
|
||||
|
||||
{% set currencyHelpPlain %}
|
||||
{{ piwik.inlineHelp('SitesManager_CurrencySymbolWillBeUsedForGoals'|translate) }}
|
||||
{% endset %}
|
||||
|
||||
{% set ecommerceHelpPlain %}
|
||||
{{ 'SitesManager_EcommerceHelp'|translate }}
|
||||
<br/>
|
||||
{{ 'SitesManager_PiwikOffersEcommerceAnalytics'|translate("<a href='http://piwik.org/docs/ecommerce-analytics/' target='_blank'>","</a>")|raw }}
|
||||
{% endset %}
|
||||
|
||||
{% set excludedQueryParametersHelp %}
|
||||
{{ 'SitesManager_ListOfQueryParametersToExclude'|translate }}
|
||||
<br/><br/>
|
||||
{{ 'SitesManager_PiwikWillAutomaticallyExcludeCommonSessionParameters'|translate("phpsessid, sessionid, ...") }}
|
||||
{% endset %}
|
||||
|
||||
{% set excludedQueryParametersHelp=piwik.inlineHelp(excludedQueryParametersHelp) %}
|
||||
|
||||
{% set excludedUserAgentsHelp %}
|
||||
{{ 'SitesManager_GlobalExcludedUserAgentHelp1'|translate }}
|
||||
<br/><br/>
|
||||
{{ 'SitesManager_GlobalListExcludedUserAgents_Desc'|translate }} {{ 'SitesManager_GlobalExcludedUserAgentHelp2'|translate }}
|
||||
{% endset %}
|
||||
|
||||
{% set excludedUserAgentsHelp=piwik.inlineHelp(excludedUserAgentsHelp) %}
|
||||
|
||||
{% set keepURLFragmentSelectHTML %}
|
||||
<h4 style="display:inline-block;">{{ 'SitesManager_KeepURLFragmentsLong'|translate }}</h4>
|
||||
|
||||
<select id="keepURLFragmentSelect">
|
||||
<option value="0"> {% if globalKeepURLFragments %}{{ 'General_Yes'|translate }}{% else %}{{ 'General_No'|translate }}{% endif %}
|
||||
({{ 'General_Default'|translate }})
|
||||
</option>
|
||||
<option value="1">{{ 'General_Yes'|translate }}</option>
|
||||
<option value="2">{{ 'General_No'|translate }}</option>
|
||||
</select>
|
||||
{% endset %}
|
||||
|
||||
<script type="text/javascript">
|
||||
var excludedIpHelp = '{{ excludedIpHelp|e('js') }}';
|
||||
var aliasUrlsHelp = '{{ piwik.inlineHelp('SitesManager_AliasUrlHelp'|translate)|e('js') }}';
|
||||
var excludedQueryParametersHelp = '{{ excludedQueryParametersHelp|e('js') }}';
|
||||
var excludedUserAgentsHelp = '{{ excludedUserAgentsHelp|e('js') }}';
|
||||
var timezoneHelp = '{{ piwik.inlineHelp(timezoneHelpPlain)|e('js') }}';
|
||||
var currencyHelp = '{{ currencyHelpPlain|e('js') }}';
|
||||
var ecommerceHelp = '{{ piwik.inlineHelp(ecommerceHelpPlain)|e('js') }}';
|
||||
var ecommerceEnabled = '{{ 'SitesManager_EnableEcommerce'|translate|e('js') }}';
|
||||
var ecommerceDisabled = '{{ 'SitesManager_NotAnEcommerceSite'|translate|e('js') }}';
|
||||
{% set defaultTimezoneHelp=piwik.inlineHelp(defaultTimezoneHelpPlain) %}
|
||||
{% set searchKeywordHelp=piwik.inlineHelp('SitesManager_SearchKeywordParametersDesc'|translate) %}
|
||||
{% set searchCategoryHelpText %}
|
||||
{{ 'Goals_Optional'|translate }} {{ 'SitesManager_SearchCategoryParametersDesc'|translate }}
|
||||
{% endset %}
|
||||
{% set searchCategoryHelp=piwik.inlineHelp(searchCategoryHelpText) %}
|
||||
var sitesearchEnabled = '{{ 'SitesManager_EnableSiteSearch'|translate|e('js') }}';
|
||||
var sitesearchDisabled = '{{ 'SitesManager_DisableSiteSearch'|translate|e('js') }}';
|
||||
var searchKeywordHelp = '{{ searchKeywordHelp|e('js') }}';
|
||||
var searchCategoryHelp = '{{ searchCategoryHelp|e('js') }}';
|
||||
var sitesearchDesc = '{{ 'SitesManager_TrackingSiteSearch'|translate|e('js') }}';
|
||||
var keepURLFragmentSelectHTML = '{{ keepURLFragmentSelectHTML|e('js') }}';
|
||||
|
||||
var sitesManager = new SitesManager({{ timezones|raw }}, {{ currencies|raw }}, '{{ defaultTimezone|raw }}', '{{ defaultCurrency|raw }}');
|
||||
{% set searchKeywordLabel='SitesManager_SearchKeywordLabel'|translate %}
|
||||
{% set searchCategoryLabel='SitesManager_SearchCategoryLabel'|translate %}
|
||||
var searchKeywordLabel = '{{ searchKeywordLabel|e('js') }}';
|
||||
var searchCategoryLabel = '{{ searchCategoryLabel|e('js') }}';
|
||||
{% set sitesearchIntro='SitesManager_SiteSearchUse'|translate %}
|
||||
var sitesearchIntro = '{{ piwik.inlineHelp(sitesearchIntro)|e('js') }}';
|
||||
var sitesearchUseDefault = '{% if isSuperUser %}{{ 'SitesManager_SearchUseDefault'|translate('<a href="#globalSiteSearch">','</a>')|e('js') }}{% else %}{{ 'SitesManager_SearchUseDefault'|translate('','')|e('js') }}{% endif %}';
|
||||
var strDefault = '{{ 'General_Default'|translate|e('js') }}';
|
||||
|
||||
$(function () {
|
||||
sitesManager.init();
|
||||
});
|
||||
</script>
|
||||
|
||||
<h2 piwik-enriched-headline help-url="http://piwik.org/docs/manage-websites/">{{ 'SitesManager_WebsitesManagement'|translate }}</h2>
|
||||
<p>{{ 'SitesManager_MainDescription'|translate }}
|
||||
{{ 'SitesManager_YouCurrentlyHaveAccessToNWebsites'|translate("<strong>" ~ adminSitesCount ~ "</strong>")|raw }}
|
||||
{% if isSuperUser %}
|
||||
<br/>
|
||||
{{ 'SitesManager_SuperUserAccessCan'|translate("<a href='#globalSettings'>","</a>")|raw }}
|
||||
{% endif %}
|
||||
</p>
|
||||
{{ ajax.errorDiv() }}
|
||||
{{ ajax.loadingDiv() }}
|
||||
|
||||
{% set createNewWebsite %}
|
||||
<a href="javascript:" class="addRowSite">
|
||||
{{ 'SitesManager_AddSite'|translate }}
|
||||
</a>
|
||||
{% endset %}
|
||||
|
||||
{% if adminSites|length == 0 %}
|
||||
{{ 'SitesManager_NoWebsites'|translate }}
|
||||
{% else %}
|
||||
|
||||
<div class="ui-confirm" id="confirm">
|
||||
<h2></h2>
|
||||
<input role="yes" type="button" value="{{ 'General_Yes'|translate }}"/>
|
||||
<input role="no" type="button" value="{{ 'General_No'|translate }}"/>
|
||||
</div>
|
||||
<div class="entityContainer">
|
||||
{% if isSuperUser %}
|
||||
{{ createNewWebsite }}
|
||||
{% endif %}
|
||||
<table class="entityTable dataTable" id="editSites">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>{{ 'General_Id'|translate }}</th>
|
||||
<th>{{ 'General_Name'|translate }}</th>
|
||||
<th>{{ 'SitesManager_Urls'|translate }}</th>
|
||||
<th>{{ 'SitesManager_ExcludedIps'|translate }}</th>
|
||||
<th>{{ 'SitesManager_ExcludedParameters'|translate|replace({" ":"<br />"})|raw }}</th>
|
||||
<th id='exclude-user-agent-header'
|
||||
{% if not allowSiteSpecificUserAgentExclude %}style="display:none;"{% endif %}>{{ 'SitesManager_ExcludedUserAgents'|translate }}</th>
|
||||
<th>{{ 'Actions_SubmenuSitesearch'|translate }}</th>
|
||||
<th>{{ 'SitesManager_Timezone'|translate }}</th>
|
||||
<th>{{ 'SitesManager_Currency'|translate }}</th>
|
||||
<th>{{ 'Goals_Ecommerce'|translate }}</th>
|
||||
<th></th>
|
||||
<th></th>
|
||||
<th>{{ 'General_JsTrackingTag'|translate }}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for i,site in adminSites %}
|
||||
<tr id="row{{ site.idsite }}" data-keep-url-fragments="{{ site.keep_url_fragment }}">
|
||||
<td id="idSite">{{ site.idsite }}</td>
|
||||
<td id="siteName" class="editableSite">
|
||||
{{- site.name|raw -}}
|
||||
</td>
|
||||
<td id="urls" class="editableSite">
|
||||
{%- for url in site.alias_urls -%}
|
||||
{{- url|trim|replace({'http://': ''})|raw -}}<br />
|
||||
{%- endfor -%}
|
||||
</td>
|
||||
<td id="excludedIps" class="editableSite">
|
||||
{%- for ip in site.excluded_ips -%}
|
||||
{{- ip -}}<br/>
|
||||
{%- endfor -%}
|
||||
</td>
|
||||
<td id="excludedQueryParameters" class="editableSite">
|
||||
{%- for parameter in site.excluded_parameters -%}
|
||||
{{- parameter|raw -}}<br />
|
||||
{%- endfor -%}
|
||||
</td>
|
||||
<td id="excludedUserAgents" class="editableSite"
|
||||
{% if not allowSiteSpecificUserAgentExclude %}style="display:none;"{% endif %}>
|
||||
{%- for ua in site.excluded_user_agents -%}
|
||||
{{- ua|raw -}}<br />
|
||||
{%- endfor -%}
|
||||
</td>
|
||||
<td id="sitesearch" class="editableSite">
|
||||
{% if site.sitesearch %}
|
||||
<span class="sitesearchActive">{{ 'General_Yes'|translate }}</span>
|
||||
{% else %}
|
||||
<span class="sitesearchInactive">-</span>
|
||||
{% endif %}
|
||||
<span class="sskp" sitesearch_keyword_parameters="{{- site.sitesearch_keyword_parameters -}}"
|
||||
sitesearch_category_parameters="{{- site.sitesearch_category_parameters -}}"
|
||||
id="sitesearch_parameters">
|
||||
</span>
|
||||
</td>
|
||||
<td id="timezone" class="editableSite">{{ site.timezone }}</td>
|
||||
<td id="currency" class="editableSite">{{ site.currency }}</td>
|
||||
<td id="ecommerce" class="editableSite">
|
||||
{% if site.ecommerce %}
|
||||
<span class='ecommerceActive'>{{ 'General_Yes'|translate }}</span>
|
||||
{% else %}
|
||||
<span class='ecommerceInactive'>-</span>
|
||||
{% endif %}
|
||||
</td>
|
||||
<td>
|
||||
<span id="row{{ site.idsite }}" class='editSite link_but'>
|
||||
<img src='plugins/Zeitgeist/images/ico_edit.png' title="{{ 'General_Edit'|translate }}"
|
||||
border="0"/>
|
||||
<span>{{ 'General_Edit'|translate }}</span>
|
||||
</span>
|
||||
</td>
|
||||
<td>
|
||||
<span id="row{{ site.idsite }}" class="deleteSite link_but">
|
||||
<img src='plugins/Zeitgeist/images/ico_delete.png' title="{{ 'General_Delete'|translate }}"
|
||||
border="0"/>
|
||||
<span>{{ 'General_Delete'|translate }}</span>
|
||||
</span>
|
||||
</td>
|
||||
<td>
|
||||
<a href='{{ linkTo({'module':'CoreAdminHome','action':'trackingCodeGenerator','idSite':site.idsite,'updated':false }) }}'>
|
||||
{{ 'SitesManager_ShowTrackingTag'|translate }}
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
{% if isSuperUser %}
|
||||
{{ createNewWebsite }}
|
||||
{% endif %}
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{# Admin users use these values for Site Search column, when editing websites #}
|
||||
{% if not isSuperUser %}
|
||||
<input type="hidden" size="15" id="globalSearchKeywordParameters"
|
||||
value="{{ globalSearchKeywordParameters }}"/>
|
||||
<input type="hidden" size="15" id="globalSearchCategoryParameters"
|
||||
value="{{ globalSearchCategoryParameters }}"/>
|
||||
{% endif %}
|
||||
|
||||
{% if isSuperUser %}
|
||||
<br/>
|
||||
|
||||
<h2 id="globalSettings">{{ 'SitesManager_GlobalWebsitesSettings'|translate }}</h2>
|
||||
<br/>
|
||||
<table style="width:600px;" class="adminTable">
|
||||
|
||||
<tr>
|
||||
<td colspan="2">
|
||||
<strong>{{ 'SitesManager_GlobalListExcludedIps'|translate }}</strong>
|
||||
|
||||
<p>{{ 'SitesManager_ListOfIpsToBeExcludedOnAllWebsites'|translate }} </p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<textarea cols="30" rows="3" id="globalExcludedIps">
|
||||
{{- globalExcludedIps -}}
|
||||
</textarea>
|
||||
</td>
|
||||
<td>
|
||||
<label for="globalExcludedIps">{{ excludedIpHelp }}</label>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">
|
||||
<strong>{{ 'SitesManager_GlobalListExcludedQueryParameters'|translate }}</strong>
|
||||
|
||||
<p>{{ 'SitesManager_ListOfQueryParametersToBeExcludedOnAllWebsites'|translate }} </p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>
|
||||
<textarea cols="30" rows="3" id="globalExcludedQueryParameters">
|
||||
{{- globalExcludedQueryParameters -}}
|
||||
</textarea>
|
||||
</td>
|
||||
<td>
|
||||
<label for="globalExcludedQueryParameters">{{ excludedQueryParametersHelp }}</label>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
{# global excluded user agents #}
|
||||
<tr>
|
||||
<td colspan="2">
|
||||
<strong>{{ 'SitesManager_GlobalListExcludedUserAgents'|translate }}</strong>
|
||||
|
||||
<p>{{ 'SitesManager_GlobalListExcludedUserAgents_Desc'|translate }}</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>
|
||||
<textarea cols="30" rows="3" id="globalExcludedUserAgents">
|
||||
{{- globalExcludedUserAgents -}}
|
||||
</textarea>
|
||||
</td>
|
||||
<td><label for="globalExcludedUserAgents">{{ excludedUserAgentsHelp }}</label>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>
|
||||
<input type="checkbox" id="enableSiteUserAgentExclude" name="enableSiteUserAgentExclude"
|
||||
{% if allowSiteSpecificUserAgentExclude %}checked="checked"{% endif %}/>
|
||||
<label for="enableSiteUserAgentExclude">
|
||||
{{ 'SitesManager_EnableSiteSpecificUserAgentExclude'|translate }}
|
||||
</label>
|
||||
<span id="enableSiteUserAgentExclude-loading" class="loadingPiwik" style="display:none;">
|
||||
<img src="plugins/Zeitgeist/images/loading-blue.gif"/>
|
||||
</span>
|
||||
</td>
|
||||
<td>
|
||||
{{ piwik.inlineHelp('SitesManager_EnableSiteSpecificUserAgentExclude_Help'|translate('<a href="#editSites">','</a>'))|raw }}
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
{# global keep URL fragments #}
|
||||
<tr>
|
||||
<td colspan="2">
|
||||
<strong>{{ 'SitesManager_KeepURLFragments'|translate }}</strong>
|
||||
|
||||
<p>{{ 'SitesManager_KeepURLFragmentsHelp'|translate("<em>#</em>","<em>example.org/index.html#first_section</em>","<em>example.org/index.html</em>")|raw }}
|
||||
</p>
|
||||
<input type="checkbox" id="globalKeepURLFragments" name="globalKeepURLFragments"
|
||||
{% if globalKeepURLFragments %}checked="checked"{% endif %}/>
|
||||
<label for="globalKeepURLFragments">{{ 'SitesManager_KeepURLFragmentsLong'|translate }}</label>
|
||||
|
||||
<p>{{ 'SitesManager_KeepURLFragmentsHelp2'|translate }}</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
{# global site search #}
|
||||
<tr>
|
||||
<td colspan="2">
|
||||
<strong id="globalSiteSearch">{{ 'SitesManager_TrackingSiteSearch'|translate }}</strong>
|
||||
|
||||
<p>{{ sitesearchIntro }}</p>
|
||||
<span class="form-description" style="font-size:8pt;">
|
||||
{{ 'SitesManager_SearchParametersNote'|translate }} {{ 'SitesManager_SearchParametersNote2'|translate }}
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2">
|
||||
<label>{{ searchKeywordLabel }}
|
||||
<input type="text" size="15" id="globalSearchKeywordParameters"
|
||||
value="{{ globalSearchKeywordParameters|raw }}"/>
|
||||
|
||||
<div style='width: 200px;float:right;'>{{ searchKeywordHelp }}</div>
|
||||
</label>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">
|
||||
{% if not isSearchCategoryTrackingEnabled %}
|
||||
<input value='globalSearchCategoryParametersIsDisabled' id="globalSearchCategoryParameters"
|
||||
type='hidden'/>
|
||||
<span class='form-description'>Note: you could also track your Internal Search Engine Categories, but the plugin Custom Variables is required. Please enable the plugin CustomVariables (or ask your Piwik admin).</span>
|
||||
{% else %}
|
||||
{{ 'Goals_Optional'|translate }} {{ 'SitesManager_SearchCategoryDesc'|translate }} <br/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2">
|
||||
<label>{{ searchCategoryLabel }}
|
||||
<input type="text" size="15" id="globalSearchCategoryParameters"
|
||||
value="{{ globalSearchCategoryParameters|raw }}"/>
|
||||
|
||||
<div style='width: 200px;float:right;'>{{ searchCategoryHelp }}</div>
|
||||
</label>
|
||||
{% endif %}
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">
|
||||
<strong>{{ 'SitesManager_DefaultTimezoneForNewWebsites'|translate }}</strong>
|
||||
|
||||
<p>{{ 'SitesManager_SelectDefaultTimezone'|translate }} </p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<div id='defaultTimezone'></div>
|
||||
</td>
|
||||
<td>
|
||||
{{ defaultTimezoneHelp }}
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">
|
||||
<strong>{{ 'SitesManager_DefaultCurrencyForNewWebsites'|translate }}</strong>
|
||||
|
||||
<p>{{ 'SitesManager_SelectDefaultCurrency'|translate }}</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<div id='defaultCurrency'></div>
|
||||
</td>
|
||||
<td>
|
||||
{{ currencyHelpPlain }}
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<span style="margin-left:20px;">
|
||||
<input type="submit" class="submit" id='globalSettingsSubmit' value="{{ 'General_Save'|translate }}"/>
|
||||
</span>
|
||||
{{ ajax.errorDiv('ajaxErrorGlobalSettings') }}
|
||||
{{ ajax.loadingDiv('ajaxLoadingGlobalSettings') }}
|
||||
{% endif %}
|
||||
{% if showAddSite %}
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function () {
|
||||
$('.addRowSite:first').trigger('click');
|
||||
});
|
||||
</script>
|
||||
{% endif %}
|
||||
|
||||
<br/><br/><br/><br/>
|
||||
{% endblock %}
|
||||
Loading…
Add table
Add a link
Reference in a new issue