PluginProbe ʕ •ᴥ•ʔ
Matomo Analytics – Powerful, Privacy-First Insights for WordPress / 4.13.5
Matomo Analytics – Powerful, Privacy-First Insights for WordPress v4.13.5
5.12.0 5.11.1 5.11.0 5.10.2 5.10.1 trunk 1.0.2 1.0.3 1.0.4 1.0.5 1.0.6 1.1.0 1.1.1 1.1.2 1.1.3 1.2.0 1.3.0 1.3.1 1.3.2 4.0.0 4.0.1 4.0.2 4.0.3 4.0.4 4.1.0 4.1.1 4.1.2 4.1.3 4.10.0 4.11.0 4.12.0 4.13.0 4.13.2 4.13.3 4.13.4 4.13.5 4.14.0 4.14.1 4.14.2 4.15.0 4.15.1 4.15.2 4.15.3 4.2.0 4.3.0 4.3.1 4.4.1 4.4.2 4.5.0 4.6.0 5.0.1 5.0.2 5.0.3 5.0.4 5.0.5 5.0.6 5.0.7 5.0.8 5.1.0 5.1.1 5.1.2 5.1.3 5.1.4 5.1.5 5.1.6 5.1.7 5.10.0 5.2.0 5.2.1 5.2.2 5.3.0 5.3.1 5.3.2 5.3.3 5.6.0 5.6.1 5.7.0 5.7.1 5.8.0 5.8.1 5.8.2
matomo / app / core / Settings / FieldConfig / MultiPair.php
matomo / app / core / Settings / FieldConfig Last commit date
ArrayField.php 4 years ago MultiPair.php 3 years ago
MultiPair.php
100 lines
1 <?php
2 /**
3 * Matomo - free/libre analytics platform
4 *
5 * @link https://matomo.org
6 * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
7 *
8 */
9
10 namespace Piwik\Settings\FieldConfig;
11
12 /**
13 * Lets you configure a multi pair field.
14 *
15 * Usage:
16 *
17 * $field->uiControl = FieldConfig::UI_CONTROL_MULTI_TUPLE;
18 * $field1 = new FieldConfig\MultiPair('Index', 'index', FieldConfig::UI_CONTROL_TEXT);
19 * $field2 = new FieldConfig\MultiPair('Value', 'value', FieldConfig::UI_CONTROL_TEXT);
20 * $field->uiControlAttributes['field1'] = $field1->toArray();
21 * $field->uiControlAttributes['field2'] = $field2->toArray();
22 *
23 * @api
24 */
25 class MultiPair
26 {
27 /**
28 * The name of the key the index should have eg "dimension" will make an index array(array('dimension' => '...'))
29 * @var string
30 */
31 public $key = '';
32
33 /**
34 * Describes what HTML element should be used to manipulate the setting through Piwik's UI.
35 *
36 * See {@link Piwik\Plugin\Settings} for a list of supported control types.
37 *
38 * @var string
39 */
40 public $uiControl = null;
41
42 /**
43 * Defines a custom template file for a UI control. This file should render a UI control and expose the value in a
44 * "formField.value" angular model. For an example see "plugins/CorePluginsAdmin/angularjs/form-field/field-text.html"
45 *
46 * @var string
47 * @deprecated use customFieldComponent instead
48 */
49 public $customUiControlTemplateFile = '';
50
51 /**
52 * Array like ['plugin' => 'MyPlugin', 'component' => 'MyExportedCustomFieldComponent']. For an example see
53 * "plugins/CorePluginsAdmin/vue/src/FormField/FieldText.vue"
54 *
55 * @var string[]
56 */
57 public $customFieldComponent = null;
58
59 /**
60 * This setting's display name, for example, `'Refresh Interval'`.
61 *
62 * Be sure to escape any user input as HTML can be used here.
63 *
64 * @var string
65 */
66 public $title = '';
67
68 /**
69 * The list of all available values for this setting. If null, the setting can have any value.
70 *
71 * If supplied, this field should be an array mapping available values with their prettified
72 * display value. Eg, if set to `array('nb_visits' => 'Visits', 'nb_actions' => 'Actions')`,
73 * the UI will display **Visits** and **Actions**, and when the user selects one, Piwik will
74 * set the setting to **nb_visits** or **nb_actions** respectively.
75 *
76 * @var null|array
77 */
78 public $availableValues = null;
79
80 public function __construct($title, $key, $uiControl = 'text')
81 {
82 $this->title = $title;
83 $this->key = $key;
84 $this->uiControl = $uiControl;
85 }
86
87 public function toArray()
88 {
89 return array(
90 'key' => $this->key,
91 'title' => $this->title,
92 'uiControl' => $this->uiControl,
93 'templateFile' => $this->customUiControlTemplateFile,
94 'component' => $this->customFieldComponent,
95 'availableValues' => $this->availableValues,
96 );
97 }
98
99 }
100