Исходный код вики Для разработчиков

Версия 45.1 от Михаил Галич на 20.12.2023, 11:43

Последние авторы
1 {{toc depth="4"/}}
2
3 = Инструкция для подключения =
4
5 Назначение данного раздела — описать способы взаимодействия с виджетом Веб-платформы по задуманному вами сценарию. Типичный процесс подключения, открытия и отслеживания виджета выглядит так:
6
7 ~1. Подключите скрипт ##external.script.js## к вашему сайту. Его адрес будет доступен **после добавления сайта** в процессе настройки в **администраторской панели Веб-Платформы**, так же как и параметр ##id## для подключения
8
9 2. Вставьте в необходимом месте на своём сайте код:
10
11 {{code language="html"}}
12 <script type="text/javascript">
13 // инициализируем виджет с параметрами
14 WPInit({
15 id: 1,
16 width: 400,
17 type: 'modal'
18 })
19
20 // сразу откроем его для пользователя
21 WPOpenModal(); // вариант для модального окна
22 // WPOpen(); // вариант для открытия в теле страницы. Используется при инициализации виджета с type: 'instant'
23
24 // будем следить за состоянием виджета
25 WPChange = function(response) {
26 if (response.status == 'reserved') {
27 // если заказ зарезирвирован, занесём данные из response.data.order_id себе на сайт
28 }
29 if (response.status == 'completed') {
30 // если заказ оплачен, занесём данные из response.data.order_id себе на сайт
31 }
32 }
33 </script>
34 {{/code}}
35
36 = Функции =
37
38 == WPInit ==
39
40 (% class="box infomessage" %)
41 (((
42 Функция загрузки виджета с параметризацией, при создании необходимо передать**## id ##**виджета, который можно найти в Административной панели
43 )))
44
45 ===== Минимальный способ инициализации: =====
46
47 {{code language="javascript"}}
48 WPInit({ id: 1 })
49 {{/code}}
50
51 ===== Пример передаваемых данных: =====
52
53 (% class="box infomessage" %)
54 (((
55 Виджет можно инициализировать с различными параметрами, все из них опциональные, кроме **##id##**.
56 )))
57
58 {{code language="javascript"}}
59 WPInit({
60 id: 1,
61 width: 400,
62 height: 600,
63 type: 'modal'
64 })
65 {{/code}}
66
67 == WPOpen ==
68
69 (% class="box infomessage" %)
70 (((
71 Функция открытия виджета в каком-либо блоке, используется при инициализации виджета с## **type: 'instant'**##
72 )))
73
74 ===== Пример передаваемых данных: =====
75
76 {{code language="javascript"}}
77 // показ виджета с группой id 5
78 WPOpen({
79 groupid: [5]
80 })
81 {{/code}}
82
83 == WPOpenModal ==
84
85 (% class="box infomessage" %)
86 (((
87 Функция открытия виджета в модальном окне, используется при инициализации виджета с## **type: 'modal'**##
88 )))
89
90 ===== Пример передаваемых данных: =====
91
92 {{code language="javascript"}}
93 // показ виджета на нажатие кнопки с id "OpenButton"
94 var OpenButton = document.getElementById('OpenButton');
95 OpenButton.onclick = function () {
96 WPOpenModal({ tariffsid: [27, 28] });
97 };
98 {{/code}}
99
100 == WPChange ==
101
102 (% class="box infomessage" %)
103 (((
104 Функция, которая вызывается каждый раз при изменении состояния виджета.
105 Каждый раз передаёт в переменной response состояние в **##status##** и опционально данные в **##data##**.
106 При переопределении этой функции у себя на странице, администратор может следить за состоянием виджета и статусом заказа из javascript
107 )))
108
109 ===== Примеры передаваемых данных: =====
110
111 * ##{ status:'starting' }## — виджет в процессе запуска, в этот момент определяется, что он должен в данный момент отображать
112 * ##{ status:'started' }## — виджет на начальном экране, где показывается список услуг для покупки
113 * ##{ status:'reserved', data: { order_id: 2 } }## — виджет находится на стадии забронированного заказ, в data передаётся id
114 * ##{ status:'completed', data: { order_id: 2 } }## — виджет находится на стадии оплаченного заказ, в data передаётся id заказа
115
116 ===== Пример работы с данными: =====
117
118 {{code language="javascript"}}
119 WPChange = function(response) {
120 if (response.status == 'starting') {
121 // действие на внешней странице
122 }
123 if (response.status == 'started') {
124 // действие на внешней странице
125 }
126 if (response.status == 'reserved') {
127 // id зарезервированного заказа: response.data.order_id
128 }
129 if (response.status == 'completed') {
130 // id оплаченного заказа: response.data.order_id
131 }
132 }
133 {{/code}}
134
135 = Параметры =
136
137 == Обязательные параметры WPInit ==
138
139 ==== id ====
140
141 Тип данных:## //number//##
142
143 (% class="box infomessage" %)
144 (((
145 id виджета, который можно узнать в Административной панели.
146 )))
147
148 == Возможные параметры WPInit ==
149
150 ==== height ====
151
152 Тип данных:## //number //##//|## boolean##//
153
154 По умолчанию:##// false//##
155
156 (% class="box infomessage" %)
157 (((
158 Высота виджета в пикселях, по умолчанию:
159 • 480px, если виджет запущен как type: 'modal'
160 • 100%, если виджет запущен как type: 'instant'
161 )))
162
163 ==== width ====
164
165 Тип данных:## //number //##//|## boolean##//
166
167 По умолчанию:##// false//##
168
169 (% class="box infomessage" %)
170 (((
171 Ширина виджета в пикселях, по умолчанию:
172 • 640px, если виджет запущен как type: 'modal'
173 • 100%, если виджет запущен как type: 'instant'
174 )))
175
176 ==== type ====
177
178 Тип данных:## //string//##
179
180 По умолчанию:##// 'instant'//##
181
182 (% class="box infomessage" %)
183 (((
184 Способ открытия виджета
185 • 'instant' Открытие виджета на месте, где был вызов виджета (на месте тэга script), либо в блоке place, если он указан в параметрах виджета при инициализации
186 • 'modal' Открытие виджета в модальном окне
187 )))
188
189 ==== place ====
190
191 Тип данных:## //string //##//|## boolean##//
192
193 По умолчанию:##// false//##
194
195 (% class="box infomessage" %)
196 (((
197 Идентификатор элемента DOM, в который необходимо поместить виджет, например: **###widget##**. Используется совместно с **##type: 'instant'##**
198 )))
199
200 (% class="box warningmessage" %)
201 (((
202 **Важно:** элемент DOM для place должен быть либо на странице до вставки инициализации виджета (WPInit), либо инициализация виджета должна быть исполнена после загрузки DOM (например, обёрнута в событие $(document).ready(function(){}) в jQuery)
203 )))
204
205 ----
206
207 == Возможные параметры WPOpen и WPOpenModal ==
208
209 === Календарь и даты ===
210
211 ==== disableddates ====
212
213 Тип данных:##// Array<string>//##
214
215 По умолчанию:##// []//##
216
217 (% class="box infomessage" %)
218 (((
219 Параметр отключения дат в календаре (и в //покупке// и в //пополнении//). Делает невозможным выбор определённых дней в массиве дат.
220 )))
221
222 Пример:
223
224 {{code language="javascript"}}
225 disableddates: ['23.02.2018', '08.03.2018'] // уберёт даты 23.02.2018 и 08.03.2018 из возможных для выбора дат в календаре.
226 {{/code}}
227
228 ==== forcedate ====
229
230 Тип данных:##// string//##
231
232 По умолчанию:##// undefined//##
233
234 (% class="box infomessage" %)
235 (((
236 Параметр для открывания виджета с указанной сразу датой (и в //покупке// и в //пополнении//).
237 **##forcedate: '20.05.2018'##** покажет услуги к продаже на дату 20.05.2018.
238 )))
239
240 ==== maxdate ====
241
242 Тип данных:##// string//##
243
244 По умолчанию:##// undefined//##
245
246 (% class="box infomessage" %)
247 (((
248 Параметр максимальной отображаемой даты в календаре (и в //покупке// и в //пополнении//).
249 **##maxdate: '20.05.2018'##** покажет 20.05.2018 как самую последнюю дату, доступную к выбору в календаре.
250 )))
251
252 ==== mindate ====
253
254 Тип данных:##// string//##
255
256 По умолчанию:##// undefined//##
257
258 (% class="box infomessage" %)
259 (((
260 Параметр минимальной отображаемой даты в календаре (и в //покупке// и в //пополнении//).
261 **##mindate: '20.05.2018'##** покажет 20.05.2018 как самую первую дату, доступную к выбору в календаре, если она находится после текущего дня.
262 )))
263
264 ==== nocalendar ====
265
266 Тип данных:## //boolean//##
267
268 По умолчанию:##// false//##
269
270 (% class="box infomessage" %)
271 (((
272 Убирает календарь внутри виджета (и в //покупке// и в //пополнении//), в случаях, когда дата, на которую покупается/пополняется билет, не важна.
273 )))
274
275 ----
276
277 === Услуги, пакеты услуг, группы услуг ===
278
279 ==== tariffsid ====
280
281 Тип данных:##// Array<number> //##//|## boolean##//
282
283 По умолчанию:##// []//##
284
285 (% class="box infomessage" %)
286 (((
287 Тарифы, которые следует показать на вкладке «Покупка услуг». По умолчанию массив пуст и не показывает отдельно никакие из услуг. Используется для принудительной фильтрации в том случае, когда определённому пользователю необходимо показывать услуги, доступные только для него.
288 )))
289
290 Пример:
291
292 {{code language="javascript"}}
293 tariffsid: [29, 30] // покажет тарифы с id 29 и 30 во вкладке «Покупка услуг».
294 tariffsid: false // уберёт все тарифы с первой страницы
295 {{/code}}
296
297 ==== rewritetariffsid ====
298
299 Тип данных:##// Array<number> //##//|## boolean##//
300
301 По умолчанию:##// []//##
302
303 (% class="box infomessage" %)
304 (((
305 Тарифы, которые следует показать после ввода карты во вкладке «Пополнение услуг». По умолчанию массив пуст и не показывает отдельно никакие из услуг. Используется для принудительной фильтрации в том случае, когда определённому пользователю необходимо показывать услуги, доступные только для него.
306 )))
307
308 Пример:
309
310 {{code language="javascript"}}
311 rtariffsid: [56, 57] // покажет тарифы с id 56 и 57 после ввода карты во вкладке «Пополнение услуг»
312 rtariffsid: false // уберёт все тарифы во вкладке «Пополнение услуг»
313 {{/code}}
314
315 ==== rtariffsid ====
316
317 (% class="box infomessage" %)
318 (((
319 См. rewritetariffsid
320 )))
321
322 ==== bundlesid ====
323
324 Тип данных:##// Array<number> //##//|## boolean##//
325
326 По умолчанию:##// []//##
327
328 (% class="box infomessage" %)
329 (((
330 Пакеты услуг, которые следует показать на первой странице. По умолчанию массив пуст и не показывает отдельно никакие из пакетов услуг. Используется для принудительной фильтрации в том случае, когда определённому пользователю необходимо показывать пакеты услуг, доступные только для него.
331 )))
332
333 Пример:
334
335 {{code language="javascript"}}
336 bundlesid: [4, 5] // покажет пакеты услуг с id 4 и 5 в момент открытия виджета.
337 bundlesid: false // уберёт все пакеты услуг с первой страницы
338 {{/code}}
339
340 ==== bundleslessonstariffsid ====
341
342 Тип данных:##// Array<number>//##
343
344 По умолчанию:##// []//##
345
346 (% class="box warningmessage" %)
347 (((
348 Описание отсутствует
349 )))
350
351 ==== groupid ====
352
353 Тип данных:##// number//##
354
355 По умолчанию:##// undefined//##
356
357 (% class="box infomessage" %)
358 (((
359 Параметр, который форсирует показ определённой группы услуг ппс. groupid: 5 покажет только одну группу с id 5 в виджете.
360 )))
361
362 ----
363
364 === Предзаказ ===
365
366 ==== preorder ====
367
368 Тип данных:##// Array<object>//##
369
370 По умолчанию:##// undefined//##
371
372 (% class="box infomessage" %)
373 (((
374 Параметр, позволяющий купить сразу несколько услуг и перейти к подтверждению покупки.
375 • id — id услуги к покупке
376 • date — дата, на которую покупается услуга
377 • count — количество покупаемых услуг
378 )))
379
380 ===== Пример передаваемых данных: =====
381
382 {{code language="javascript"}}
383 // либо WPOpenModal({})
384 WPOpen({
385 preorder: [
386 {
387 id: 57,
388 date: '06.06.2019',
389 count: 1
390 }, {
391 id: 58,
392 date: '07.06.2019',
393 count: 2
394 }
395 ]
396 })
397 {{/code}}
398
399 ----
400
401 === Отображение ===
402
403 ==== cartmaxitems **##*##** ====
404
405 Тип данных:##// number//##
406
407 По умолчанию:##// 6//##
408
409 (% class="box infomessage" %)
410 (((
411 Ограничивает максимальное кол-во товаров в корзине. ##Минимальное значение 1, но не меньше **cartminitems**. Максимальное значение 60.##
412 )))
413
414 ==== cartminitems **##*##** ====
415
416 Тип данных:##// number//##
417
418 По умолчанию:##// 1//##
419
420 (% class="box infomessage" %)
421 (((
422 Ограничивает минимальное кол-во товаров в корзине. ##Минимальное значение 1. Максимальное значение 60, но не больше **cartmaxitems**.##
423 )))
424
425 ==== categories ====
426
427 Тип данных:##// Array<string>//##
428
429 По умолчанию:##// []//##
430
431 (% class="box warningmessage" %)
432 (((
433 Описание отсутствует
434 )))
435
436 ==== clubsiteid ====
437
438 Тип данных:##// number//##
439
440 По умолчанию:##// 0//##
441
442 (% class="box warningmessage" %)
443 (((
444 Описание отсутствует
445 )))
446
447 ==== coachid ====
448
449 Тип данных:##// number//##
450
451 По умолчанию:##// undefined//##
452
453 (% class="box warningmessage" %)
454 (((
455 Описание отсутствует
456 )))
457
458 ==== disablemultipleseances **##*##** ====
459
460 Тип данных:##// boolean//##
461
462 По умолчанию:##// false//##
463
464 (% class="box infomessage" %)
465 (((
466 Параметр предотвращает добавление в корзину тарифов с различными сеансами.
467 Таким образом как только в корзине появится хоть один товар с сеансом "10:00 - 11:30", товары, у которых есть сеанс например "13:00 - 14:30" будет невозможно добавить в корзину.
468 Товары без сеансов __не будут затронуты__.
469 )))
470
471 ==== forcemedia ====
472
473 Тип данных:##// string//##
474
475 По умолчанию:##// ''//##
476
477 (% class="box infomessage" %)
478 (((
479 Параметр, который вставяет строчку с носителем в поле носителя во вкладке «Пополнение услуг». Используется, например, для QR-кода нанесённого на носитель, чтобы быстро его пополнить.
480 )))
481
482 Пример:
483
484 {{code language="javascript"}}
485 forcemedia: 'E0012345678900'
486 {{/code}}
487
488 ==== forceseanceid **##*##** ====
489
490 Тип данных:##// number//##
491
492 По умолчанию без указания идентификатора не учитывается.
493
494 (% class="box infomessage" %)
495 (((
496 Заставит виджет выбрать мероприятие арены по идентификатору платформы и не позволять вернуться к этапу выбора других мероприятий.
497 )))
498
499 ==== forcesectorid **##*##** ====
500
501 Тип данных:##// number//##
502
503 По умолчанию без указания идентификатора не учитывается.
504
505 (% class="box infomessage" %)
506 (((
507 Заставит виджет выбрать сектор мероприятия по **##id##** и не позволять вернуться к этапу выбора других секторов.
508 )))
509
510 ==== forcetab **##*##** ====
511
512 Тип данных:##// string//##
513
514 По умолчанию:##// ''//##
515
516 (% class="box infomessage" %)
517 (((
518 Переключение на необходимую вкладку виджета («**покупка услуг**» или «**пополнение услуг**») при загрузке.
519 По умолчанию открывается вкладка «**покупка услуг**».
520 **##forcetab: 'rewrite'##** принудительно откроет «**пополнение услуг**».
521 Обычно используется в комбинации с параметром **##onlytab##**
522 )))
523
524 ==== grouplessonsskillstariffs ====
525
526 Тип данных:##// Array<number> //##//|## object##//
527
528 По умолчанию:##// {}//##
529
530 (% class="box warningmessage" %)
531 (((
532 Описание отсутствует
533 )))
534
535 ==== grouplessonstariffsid ====
536
537 Тип данных:##// Array<number>//##
538
539 По умолчанию:##// []//##
540
541 (% class="box warningmessage" %)
542 (((
543 Описание отсутствует
544 )))
545
546 ==== lessonslocation **##*##** ====
547
548 Тип данных:##// number//##
549
550 По умолчанию:##// undefined//##
551
552 (% class="box infomessage" %)
553 (((
554 Отображение места занятия для индивидуальных, групповых и многодневных занятий
555 )))
556
557 [[image:1702560957244-690.png]]
558
559 ==== lessonstariffsid ====
560
561 Тип данных:##// Array<number>//##
562
563 По умолчанию:##// []//##
564
565 (% class="box infomessage" %)
566 (((
567 Ограничить видимость доступных тарифов в выпадающем списке программ обучения по массиву с их идентификаторами
568 )))
569
570 [[image:1702641274330-465.png]]
571
572 ==== locale **##*##** ====
573
574 Тип данных:##// string//##
575
576 По умолчанию:##// ''//##
577
578 (% class="box infomessage" %)
579 (((
580 Параметр локализации. Позволяет переключать между языками виджета, например 'ru' - русский язык, 'en' - английский язык.
581 )))
582
583 ==== marketbillid ====
584
585 Тип данных:##// number//##
586
587 По умолчанию:##// undefined//##
588
589 (% class="box warningmessage" %)
590 (((
591 Описание отсутствует
592 )))
593
594 ==== marketemployeeid ====
595
596 Тип данных:##// number//##
597
598 По умолчанию:##// undefined//##
599
600 (% class="box warningmessage" %)
601 (((
602 Описание отсутствует
603 )))
604
605 ==== minimap **##*##** ====
606
607 Тип данных:##// boolean//##
608
609 По умолчанию:##// true//##
610
611 (% class="box infomessage" %)
612 (((
613 Отображать миникарту.
614 )))
615
616 ==== minimapaspect **##*##** ====
617
618 Тип данных:##// number//##
619
620 По умолчанию:##// 0.2//##
621
622 (% class="box infomessage" %)
623 (((
624 Размер миникарты относительной полного размера карты, а не контейнера, в которой она находится.
625 )))
626
627 ==== multidayslessonsskillstariffs **##*##** ====
628
629 Тип данных:##// Array<number> //##//|## object##//
630
631 По умолчанию:##// []//##
632
633 (% class="box infomessage" %)
634 (((
635 Производит фильтрацию тарифов для многодневных занятий. Принимает массив идентификаторов.
636 Параметр дополняет фильтрацию по параметру **##grouplessonsskillstariffs##**.
637 )))
638
639 ==== nocategories **##*##** ====
640
641 Тип данных:##// boolean//##
642
643 По умолчанию:##// false//##
644
645 (% class="box infomessage" %)
646 (((
647 Если **##true##** скрывает фильтр по категории инструкторских занятий
648 )))
649
650 [[image:1702638427440-675.png]]
651
652 ==== nocoach **##*##** ====
653
654 Тип данных:##// boolean//##
655
656 По умолчанию:##// false//##
657
658 (% class="box infomessage" %)
659 (((
660 Если **##true##** скрывает выпадающее меню выбора инструктора
661 )))
662
663 [[image:1702638265778-588.png]]
664
665 ==== nolocation **##*##** ====
666
667 Тип данных:##// boolean//##
668
669 По умолчанию:##// false//##
670
671 (% class="box infomessage" %)
672 (((
673 Если **##true##** скрывает фильтр по месту проведения инструкторских занятий
674 )))
675
676 [[image:1702638034420-756.png]]
677
678 ==== nopromo **##*##** ====
679
680 Тип данных:##// boolean//##
681
682 По умолчанию:##// false//##
683
684 (% class="box infomessage" %)
685 (((
686 Убирает вывод промокода на странице подтверждения заказа.
687 )))
688
689 ==== noskills **##*##** ====
690
691 Тип данных:##// boolean//##
692
693 По умолчанию:##// false//##
694
695 (% class="box infomessage" %)
696 (((
697 Если **##true##** скрывает фильтр по дисциплине инструкторских занятий
698 )))
699
700 [[image:1702638705750-678.png]]
701
702 ==== notariffs ====
703
704 Тип данных:##// boolean//##
705
706 По умолчанию:##// false//##
707
708 (% class="box warningmessage" %)
709 (((
710 Описание отсутствует
711 )))
712
713 ==== onlytab **##*##** ====
714
715 Тип данных:##// string //##//|## Array<string>##//
716
717 По умолчанию:##// []//##
718
719 (% class="box infomessage" %)
720 (((
721 Скрытие других вкладок виджета («покупка услуг» или «пополнение услуг») при загрузке. Обычно используется в комбинации с параметром **##forcetab##**
722 )))
723
724 {{code language="javascript"}}
725 onlytab: 'service' // покажет только вкладку «покупка услуг».
726 onlytab: 'rewrite' // покажет только вкладку «пополнение услуг».
727 onlytab: ['service', 'rewrite'] // покажет только вкладки «покупка услуг» и «пополнение услуг»;
728 {{/code}}
729
730 ==== ordercomment **##*##** ====
731
732 Тип данных:##// string//##
733
734 По умолчанию:##// ''//##
735
736 (% class="box infomessage" %)
737 (((
738 Опциональный комментарий к заказу. Максимальная длинна комментария 50 символов.
739 )))
740
741 ==== personallessonsskillstariffs **##*##** ====
742
743 Тип данных:##// Array<number> //##//|## object##//
744
745 По умолчанию:##// []//##
746
747 (% class="box infomessage" %)
748 (((
749 Производит фильтрацию тарифов для индивидуальных занятий. Принимает массив идентификаторов.
750 )))
751
752 ==== placeid **##*##** ====
753
754 Тип данных:##// number//##
755
756 По умолчанию:##// undefined//##
757
758 (% class="box infomessage" %)
759 (((
760 идентификатор места, использующийся для получения списка инструкторов.
761 )))
762
763 ==== requiredloyalty **##*##** ====
764
765 Тип данных:##// boolean//##
766
767 По умолчанию:##// false//##
768
769 (% class="box infomessage" %)
770 (((
771 Включает обязательную регистрацию клиента в программе настроенной на объектке.
772 )))
773
774 ==== resetcart **##*##** ====
775
776 Тип данных:##// boolean//##
777
778 По умолчанию:##// false//##
779
780 (% class="box infomessage" %)
781 (((
782 Автоматически очищать содержимое корзины.
783 )))
784
785 ==== saletermstype **##*##** ====
786
787 Тип данных:##// string//##
788
789 По умолчанию:##// '//default//'//##
790
791 (% class="box infomessage" %)
792 (((
793 Перед оплатой просит пользователя согласиться с правилами в форме галочки или всплывающего окна
794 )))
795
796 {{code language="javascript"}}
797 saletermstype: 'checkbox' // потребует установку галочки для согласия.
798 saletermstype: 'dialog' // покажет всплывающее окно с правилами, которые нужно принять.
799 saletermstype: 'default' // принятие правил не требуется.
800 {{/code}}
801
802 ==== shownoticketsseances **##*##** ====
803
804 Тип данных:##// boolean//##
805
806 По умолчанию:##// false//##
807
808 (% class="box infomessage" %)
809 (((
810 Не скрывать сеансы, на которые закончились билеты. Работает если **##tariffsseancesfilter: true##**
811 )))
812
813 ==== showoverseances **##*##** ====
814
815 Тип данных:##// boolean//##
816
817 По умолчанию:##// false//##
818
819 (% class="box infomessage" %)
820 (((
821 Отвечает за отображение прошедших сеансов в списке для фильтрации по времени. При значении **##true##** прошедшие сеансы будут отображаться, но недоступны для выбора пользователем. Работает если **##tariffsseancesfilter: true##**
822 )))
823
824 [[image:1702554598837-627.png]]
825
826 ==== skills **##*##** ====
827
828 Тип данных:##// Array<number>//##
829
830 По умолчанию:##// []//##
831
832 (% class="box infomessage" %)
833 (((
834 Ограничить видимость доступных к выбору дисциплин по идентификатору
835 )))
836
837 [[image:1702639385677-964.png]]
838
839 ==== tariffsseancesfilter **##*##** ====
840
841 Тип данных:##// boolean//##
842
843 По умолчанию:##// false//##
844
845 (% class="box infomessage" %)
846 (((
847 Включить отображение фильтра тарифов по сеансам.
848 )))
849
850 [[image:https://info.moipass.ru/images/tariffsseancesfilter.png||alt="Example"]]
851
852 ----
853
854 (% class="box warningmessage" %)
855 (((
856 **##* ##**- доступно в новой версии виджета
857 )))