title = Piwik::translate('GeoIp2_ServerBasedVariablesConfiguration'); $geoIpAdminEnabled = UserCountry::isGeoLocationAdminEnabled(); $this->useCustomVars = $this->makeSetting('geoip2usecustom', false, FieldConfig::TYPE_BOOL, function (FieldConfig $field) { $field->title = Piwik::translate('GeoIp2_ShowCustomServerVariablesConfig'); $field->uiControl = FieldConfig::UI_CONTROL_CHECKBOX; }); $this->useCustomVars->setIsWritableByCurrentUser($geoIpAdminEnabled); foreach (ServerModule::$defaultGeoIpServerVars as $name => $value) { $this->geoIp2variables[$name] = $this->createGeoIp2ServerVarSetting($name, $value); $this->geoIp2variables[$name]->setIsWritableByCurrentUser($geoIpAdminEnabled); } } private function createGeoIp2ServerVarSetting($name, $defaultValue) { return $this->makeSetting('geoip2var_'.$name, $default = $defaultValue, FieldConfig::TYPE_STRING, function (FieldConfig $field) use ($name) { $field->title = Piwik::translate('GeoIp2_ServerVariableFor', '' . str_replace('_', ' ', $name) . ''); $field->uiControl = FieldConfig::UI_CONTROL_TEXT; $field->condition = 'geoip2usecustom==1'; }); } }