You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* \+ Новый необязательный параметр. Обеспечивает возможность задать произвольный ключ каждой колонки в результатах вместо простого нумерованного индекса.
7
+
* \+ Виджет также поддерживает изменение индексов на псевдонимы для TV, уже заполненных существующими значениями.
8
+
*\* Исправлено отображение иконки на кнопке «Добавить». Большое спасибо @byscrimm.
9
+
*\+ Composer.json:
10
+
* \+ `support` → `chat`.
11
+
* \+ `authors` → author → `homepage`.
12
+
13
+
4
14
## Версия 4.8.6 (2021-10-04)
5
15
*\* Улучшена работа с устаревшими колонками типа `id`.
6
16
*\* Улучшена работа с невалидным JSON в значении полей.
To install you must unzip the archive to `/assets/plungins/managermanager/widgets/ddmultiplefields/`.
26
23
@@ -34,7 +31,7 @@ You may also read this documentation:
34
31
Type of TV must be `textarea`.
35
32
36
33
37
-
###Parameters description
34
+
## Parameters description
38
35
39
36
*`$params`
40
37
* Desctription: Parameters, the pass-by-name style is used.
@@ -75,6 +72,11 @@ Type of TV must be `textarea`.
75
72
* Valid values: `string`
76
73
* Default value: `''`
77
74
75
+
*`$params->columns[i]['alias']`
76
+
* Desctription: An unique column alias. If empty, just numeric index will be used.
77
+
* Valid values: `string`
78
+
* Default value: —
79
+
78
80
*`$params->columns[i]['width']`
79
81
* Desctription: Column width, px.
80
82
* Valid values: `integer`
@@ -147,43 +149,43 @@ Type of TV must be `textarea`.
147
149
* **Required**
148
150
149
151
150
-
###CMS events
152
+
## CMS events
151
153
152
154
*`OnDocFormPrerender`
153
155
*`OnDocFormRender`
154
156
155
157
156
-
###Output format
158
+
## Output format
157
159
158
160
The widget saves value to a TV as JSON object with the following structure:
159
161
160
162
```json
161
163
{
162
164
"1590412453247": {
163
165
"0": "First row, first column value",
164
-
"1": "First row, second column value"
166
+
"customAlias": "First row, second column value"
165
167
},
166
168
"1590412497589": {
167
169
"0": "Second row, first column value",
168
-
"1": "Second row, Second column value"
170
+
"customAlias": "Second row, Second column value"
169
171
}
170
172
}
171
173
```
172
174
173
175
Where:
174
176
*`1590412453247`, `1590412497589` — the unique auto generated row IDs (JS `(new Date).getTime()` is used while creating rows).
175
-
*`0`, `1` — column numbers.
177
+
*`0`, `customAlias` — column index or alias (if set).
176
178
177
179
Rows objects with empty column values will not be saved.
178
180
If all columns and all rows are empty, an empty string (`''`) will be saved instead of an empty JSON ojbect (`'{}'`).
179
181
180
182
It is strongly recommend to use [(MODX)EvolutionCMS.snippets.ddGetMultipleField](https://code.divandesign.biz/modx/ddgetmultiplefield) >= 3.5 for rendering TVs on site.
181
183
182
184
183
-
###Examples
185
+
## Examples
184
186
185
187
186
-
####Make the TV `someImages` available for adding several number of images
188
+
### Make the TV `someImages` available for adding several number of images
187
189
188
190
Create the TV `someImages`, set it's type equal to `textarea`.
189
191
@@ -200,7 +202,7 @@ mm_ddMultipleFields([
200
202
```
201
203
202
204
203
-
####Create 2 columns: images with titles
205
+
### Create 2 columns: images with titles
204
206
205
207
```php
206
208
mm_ddMultipleFields([
@@ -219,7 +221,50 @@ mm_ddMultipleFields([
219
221
```
220
222
221
223
222
-
#### Table of employees contacts
224
+
### Using column aliases (`$params->columns[i]['alias']`)
225
+
226
+
```php
227
+
mm_ddMultipleFields([
228
+
'fields' => 'photos',
229
+
'columns' => [
230
+
[
231
+
'type' => 'image',
232
+
'title' => 'Photo',
233
+
'alias' => 'src'
234
+
],
235
+
[
236
+
'type' => 'text',
237
+
'title' => 'Title'
238
+
'alias' => 'alt'
239
+
],
240
+
//In the same time we can use columns without aliases, numeric index will be used in this case
241
+
[
242
+
'type' => 'textarea'
243
+
'title' => 'Notes'
244
+
]
245
+
]
246
+
]);
247
+
```
248
+
249
+
Will be save something like this:
250
+
251
+
```json
252
+
{
253
+
"1590412453247": {
254
+
"src": "assets/images/ElonMusk.jpg",
255
+
"alt": "Elon Reeve Musk",
256
+
"2": "Business magnate and investor"
257
+
},
258
+
"1590412497589": {
259
+
"src": "assets/images/YuryDud.jpg",
260
+
"alt": "Yury Aleksandrovich Dud",
261
+
"2": "Russian journalist and YouTuber"
262
+
}
263
+
}
264
+
```
265
+
266
+
267
+
### Table of employees contacts
223
268
224
269
Create the TV `employees`, set it's type equal to `textarea`.
Для установки распакуйте архив в `/assets/plungins/managermanager/widgets/ddmultiplefields/`.
26
23
@@ -34,7 +31,7 @@
34
31
Тип TV, к которой применяется виджет, должен быть `textarea`.
35
32
36
33
37
-
###Описание параметров
34
+
## Описание параметров
38
35
39
36
*`$params`
40
37
* Описание: Параметры, используется стиль именованных параметров.
@@ -75,6 +72,11 @@
75
72
* Допустимые значения: `string`
76
73
* Значение по умолчанию: `''`
77
74
75
+
*`$params->columns[i]['alias']`
76
+
* Описание: Псевдоним колонки (должен быть уникальным в пределах поля). Если не задан, будет использован обычный нумерованный индекс.
77
+
* Допустимые значения: `string`
78
+
* Значение по умолчанию: —
79
+
78
80
*`$params->columns[i]['width']`
79
81
* Описание: Ширина колонки в px.
80
82
* Допустимые значения: `integer`
@@ -147,43 +149,43 @@
147
149
* **Required**
148
150
149
151
150
-
###События CMS
152
+
## События CMS
151
153
152
154
*`OnDocFormPrerender`
153
155
*`OnDocFormRender`
154
156
155
157
156
-
###Формат вывода
158
+
## Формат вывода
157
159
158
160
Виджет сохраняет значение в TV в виде объекта JSON со следующей структурой:
159
161
160
162
```json
161
163
{
162
164
"1590412453247": {
163
165
"0": "First row, first column value",
164
-
"1": "First row, second column value"
166
+
"customAlias": "First row, second column value"
165
167
},
166
168
"1590412497589": {
167
169
"0": "Second row, first column value",
168
-
"1": "Second row, Second column value"
170
+
"customAlias": "Second row, Second column value"
169
171
}
170
172
}
171
173
```
172
174
173
175
Где:
174
176
*`1590412453247`, `1590412497589` — уникальные автоматически сгенерированные ID строк (используется `(new Date).getTime()` в JS при создании строк).
175
-
*`0`, `1` — номера колонок.
177
+
*`0`, `customAlias` — индекс или псевдоним (если задан) колонки.
176
178
177
179
Объекты строк с пустыми значениями колонок не будут сохранены.
178
180
Если все строки и все колонки пустые, будет сохранена пустая строка (`''`) вместо пустого JSON объекта (`'{}'`).
179
181
180
182
Настоятельно рекомендуется использовать [(MODX)EvolutionCMS.snippets.ddGetMultipleField](https://code.divandesign.ru/modx/ddgetmultiplefield) >= 3.5 для вывода TV на сайте.
181
183
182
184
183
-
###Примеры
185
+
## Примеры
184
186
185
187
186
-
####Сделать возможность добавления нескольких изобрежний в TV `someImages`
188
+
### Сделать возможность добавления нескольких изобрежний в TV `someImages`
187
189
188
190
Создаём TV `someImages`, выставляем тип `textarea`.
189
191
@@ -200,7 +202,7 @@ mm_ddMultipleFields([
200
202
```
201
203
202
204
203
-
####Создать 2 колонки: изображения и заголовки
205
+
### Создать 2 колонки: изображения и заголовки
204
206
205
207
```php
206
208
mm_ddMultipleFields([
@@ -219,7 +221,50 @@ mm_ddMultipleFields([
219
221
```
220
222
221
223
222
-
#### Таблица контактов сотрудников
224
+
### Использование псеводнимов колонок (`$params->columns[i]['alias']`)
225
+
226
+
```php
227
+
mm_ddMultipleFields([
228
+
'fields' => 'photos',
229
+
'columns' => [
230
+
[
231
+
'type' => 'image',
232
+
'title' => 'Фото',
233
+
'alias' => 'src'
234
+
],
235
+
[
236
+
'type' => 'text',
237
+
'title' => 'Подпись'
238
+
'alias' => 'alt'
239
+
],
240
+
//И здесь же мы можем задавать колонки без псевдонимов, в этом случае будет просто использован нумерованный индекс
241
+
[
242
+
'type' => 'textarea'
243
+
'title' => 'Заметки'
244
+
]
245
+
]
246
+
]);
247
+
```
248
+
249
+
Сохранит что-то такое:
250
+
251
+
```json
252
+
{
253
+
"1590412453247": {
254
+
"src": "assets/images/ElonMusk.jpg",
255
+
"alt": "Илон Рив Маск",
256
+
"2": "Бизнес-магнат и инвестор"
257
+
},
258
+
"1590412497589": {
259
+
"src": "assets/images/YuryDud.jpg",
260
+
"alt": "Юрий Александрович Дудь",
261
+
"2": "Российский журналист и Ютубер"
262
+
}
263
+
}
264
+
```
265
+
266
+
267
+
### Таблица контактов сотрудников
223
268
224
269
Создаём TV `employees`, выставляем тип `textarea`.
"description": "Widget for plugin ManagerManager that allows you to add any number of fields values (TV) in one document (values are written in field as a JSON object). For example: a few images.",
0 commit comments