| <?php |
|
|
| |
| |
| |
| |
| |
| |
|
|
| namespace Piwik\Plugins\ExampleSettingsPlugin; |
|
|
| use Piwik\Settings\Setting; |
| use Piwik\Settings\FieldConfig; |
| use Piwik\Validators\NotEmpty; |
|
|
| |
| |
| |
| |
| |
| |
| |
| |
| class SystemSettings extends \Piwik\Settings\Plugin\SystemSettings |
| { |
| |
| public $metric; |
|
|
| |
| public $browsers; |
|
|
| |
| public $description; |
|
|
| |
| public $password; |
|
|
| protected function init() |
| { |
| |
| $this->metric = $this->createMetricSetting(); |
|
|
| |
| $this->browsers = $this->createBrowsersSetting(); |
|
|
| |
| $this->description = $this->createDescriptionSetting(); |
|
|
| |
| $this->password = $this->createPasswordSetting(); |
| } |
|
|
| private function createMetricSetting() |
| { |
| return $this->makeSetting('metric', $default = 'nb_visits', FieldConfig::TYPE_STRING, function (FieldConfig $field) { |
| $field->title = 'Metric to display'; |
| $field->uiControl = FieldConfig::UI_CONTROL_SINGLE_SELECT; |
| $field->availableValues = array('nb_visits' => 'Visits', 'nb_actions' => 'Actions', 'visitors' => 'Visitors'); |
| $field->description = 'Choose the metric that should be displayed in the browser tab'; |
| $field->validators[] = new NotEmpty(); |
| }); |
| } |
|
|
| private function createBrowsersSetting() |
| { |
| $default = array('firefox', 'chromium', 'safari'); |
|
|
| return $this->makeSetting('browsers', $default, FieldConfig::TYPE_ARRAY, function (FieldConfig $field) { |
| $field->title = 'Supported Browsers'; |
| $field->uiControl = FieldConfig::UI_CONTROL_MULTI_SELECT; |
| $field->availableValues = array('firefox' => 'Firefox', 'chromium' => 'Chromium', 'safari' => 'safari'); |
| $field->description = 'The value will be only displayed in the following browsers'; |
| }); |
| } |
|
|
| private function createDescriptionSetting() |
| { |
| $default = "This is the value: \nAnother line"; |
|
|
| return $this->makeSetting('description', $default, FieldConfig::TYPE_STRING, function (FieldConfig $field) { |
| $field->title = 'Description for value'; |
| $field->uiControl = FieldConfig::UI_CONTROL_TEXTAREA; |
| $field->description = 'This description will be displayed next to the value'; |
| $field->validators[] = new NotEmpty(); |
| }); |
| } |
|
|
| private function createPasswordSetting() |
| { |
| return $this->makeSetting('password', $default = null, FieldConfig::TYPE_STRING, function (FieldConfig $field) { |
| $field->title = 'API password'; |
| $field->uiControl = FieldConfig::UI_CONTROL_PASSWORD; |
| $field->description = 'Password for the 3rd API where we fetch the value'; |
| $field->transform = function ($value) { |
| return password_hash($value, PASSWORD_DEFAULT); |
| }; |
| }); |
| } |
| } |
|
|