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

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

Последние авторы
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
298
299 ==== rtariffsid ====
300
301 Тип данных:##// Array<number> //##//|## boolean##//
302
303 По умолчанию:##// []//##
304
305 (% class="box infomessage" %)
306 (((
307 Тарифы, которые следует показать после ввода карты во вкладке «Пополнение услуг». По умолчанию массив пуст и не показывает отдельно никакие из услуг. Используется для принудительной фильтрации в том случае, когда определённому пользователю необходимо показывать услуги, доступные только для него.
308 )))
309
310 Пример:
311
312 {{code language="javascript"}}
313 rtariffsid: [56, 57] // покажет тарифы с id 56 и 57 после ввода карты во вкладке «Пополнение услуг»
314 rtariffsid: false // уберёт все тарифы во вкладке «Пополнение услуг»
315 {{/code}}
316
317
318
319 ==== rewritetariffsid ====
320
321 (% class="box infomessage" %)
322 (((
323 См. rtariffsid
324 )))
325
326 ==== bundlesid ====
327
328 Тип данных:##// Array<number> //##//|## boolean##//
329
330 По умолчанию:##// []//##
331
332 (% class="box infomessage" %)
333 (((
334 Пакеты услуг, которые следует показать на первой странице. По умолчанию массив пуст и не показывает отдельно никакие из пакетов услуг. Используется для принудительной фильтрации в том случае, когда определённому пользователю необходимо показывать пакеты услуг, доступные только для него.
335 )))
336
337 Пример:
338
339 {{code language="javascript"}}
340 bundlesid: [4, 5] // покажет пакеты услуг с id 4 и 5 в момент открытия виджета.
341 bundlesid: false // уберёт все пакеты услуг с первой страницы
342 {{/code}}
343
344 ==== bundleslessonstariffsid ====
345
346 Тип данных:##// Array<number>//##
347
348 По умолчанию:##// []//##
349
350 (% class="box warningmessage" %)
351 (((
352 Описание отсутствует
353 )))
354
355 ==== groupid ====
356
357 Тип данных:##// number//##
358
359 По умолчанию:##// undefined//##
360
361 (% class="box infomessage" %)
362 (((
363 Параметр, который форсирует показ определённой группы услуг ппс. groupid: 5 покажет только одну группу с id 5 в виджете.
364 )))
365
366 ----
367
368 === Предзаказ ===
369
370 ==== preorder ====
371
372 Тип данных:##// Array<object>//##
373
374 По умолчанию:##// undefined//##
375
376 (% class="box infomessage" %)
377 (((
378 Параметр, позволяющий купить сразу несколько услуг и перейти к подтверждению покупки.
379 • id — id услуги к покупке
380 • date — дата, на которую покупается услуга
381 • count — количество покупаемых услуг
382 )))
383
384 ===== Пример передаваемых данных: =====
385
386 {{code language="javascript"}}
387 // либо WPOpenModal({})
388 WPOpen({
389 preorder: [
390 {
391 id: 57,
392 date: '06.06.2019',
393 count: 1
394 }, {
395 id: 58,
396 date: '07.06.2019',
397 count: 2
398 }
399 ]
400 })
401 {{/code}}
402
403 ----
404
405 === Отображение ===
406
407 ==== cartmaxitems **##*##** ====
408
409 Тип данных:##// number//##
410
411 По умолчанию:##// 6//##
412
413 (% class="box infomessage" %)
414 (((
415 Ограничивает максимальное кол-во товаров в корзине. ##Минимальное значение 1, но не меньше **cartminitems**. Максимальное значение 60.##
416 )))
417
418 ==== cartminitems **##*##** ====
419
420 Тип данных:##// number//##
421
422 По умолчанию:##// 1//##
423
424 (% class="box infomessage" %)
425 (((
426 Ограничивает минимальное кол-во товаров в корзине. ##Минимальное значение 1. Максимальное значение 60, но не больше **cartmaxitems**.##
427 )))
428
429 ==== categories ====
430
431 Тип данных:##// Array<string>//##
432
433 По умолчанию:##// []//##
434
435 (% class="box warningmessage" %)
436 (((
437 Описание отсутствует
438 )))
439
440 ==== clubsiteid ====
441
442 Тип данных:##// number//##
443
444 По умолчанию:##// 0//##
445
446 (% class="box warningmessage" %)
447 (((
448 Описание отсутствует
449 )))
450
451 ==== coachid ====
452
453 Тип данных:##// number//##
454
455 По умолчанию:##// undefined//##
456
457 (% class="box warningmessage" %)
458 (((
459 Описание отсутствует
460 )))
461
462 ==== disablemultipleseances **##*##** ====
463
464 Тип данных:##// boolean//##
465
466 По умолчанию:##// false//##
467
468 (% class="box infomessage" %)
469 (((
470 Параметр предотвращает добавление в корзину тарифов с различными сеансами.
471 Таким образом как только в корзине появится хоть один товар с сеансом "10:00 - 11:30", товары, у которых есть сеанс например "13:00 - 14:30" будет невозможно добавить в корзину.
472 Товары без сеансов __не будут затронуты__.
473 )))
474
475 ==== forcemedia ====
476
477 Тип данных:##// string//##
478
479 По умолчанию:##// ''//##
480
481 (% class="box infomessage" %)
482 (((
483 Параметр, который вставяет строчку с носителем в поле носителя во вкладке «Пополнение услуг». Используется, например, для QR-кода нанесённого на носитель, чтобы быстро его пополнить.
484 )))
485
486 Пример:
487
488 {{code language="javascript"}}
489 forcemedia: 'E0012345678900'
490 {{/code}}
491
492 ==== forceseanceid **##*##** ====
493
494 Тип данных:##// number//##
495
496 По умолчанию без указания идентификатора не учитывается.
497
498 (% class="box infomessage" %)
499 (((
500 Заставит виджет выбрать мероприятие арены по идентификатору платформы и не позволять вернуться к этапу выбора других мероприятий.
501 )))
502
503 ==== forcesectorid **##*##** ====
504
505 Тип данных:##// number//##
506
507 По умолчанию без указания идентификатора не учитывается.
508
509 (% class="box infomessage" %)
510 (((
511 Заставит виджет выбрать сектор мероприятия по **##id##** и не позволять вернуться к этапу выбора других секторов.
512 )))
513
514 ==== forcetab **##*##** ====
515
516 Тип данных:##// string//##
517
518 По умолчанию:##// ''//##
519
520 (% class="box infomessage" %)
521 (((
522 Переключение на необходимую вкладку виджета («**покупка услуг**» или «**пополнение услуг**») при загрузке.
523 По умолчанию открывается вкладка «**покупка услуг**».
524 **##forcetab: 'rewrite'##** принудительно откроет «**пополнение услуг**».
525 Обычно используется в комбинации с параметром **##onlytab##**
526 )))
527
528 ==== grouplessonsskillstariffs ====
529
530 Тип данных:##// Array<number> //##//|## object##//
531
532 По умолчанию:##// {}//##
533
534 (% class="box warningmessage" %)
535 (((
536 Описание отсутствует
537 )))
538
539 ==== grouplessonstariffsid ====
540
541 Тип данных:##// Array<number>//##
542
543 По умолчанию:##// []//##
544
545 (% class="box warningmessage" %)
546 (((
547 Описание отсутствует
548 )))
549
550 ==== lessonslocation **##*##** ====
551
552 Тип данных:##// number//##
553
554 По умолчанию:##// undefined//##
555
556 (% class="box infomessage" %)
557 (((
558 Отображение места занятия для индивидуальных, групповых и многодневных занятий
559 )))
560
561 [[image:1702560957244-690.png]]
562
563 ==== lessonstariffsid ====
564
565 Тип данных:##// Array<number>//##
566
567 По умолчанию:##// []//##
568
569 (% class="box infomessage" %)
570 (((
571 Ограничить видимость доступных тарифов в выпадающем списке программ обучения по массиву с их идентификаторами
572 )))
573
574 [[image:1702641274330-465.png]]
575
576 ==== locale **##*##** ====
577
578 Тип данных:##// string//##
579
580 По умолчанию:##// ''//##
581
582 (% class="box infomessage" %)
583 (((
584 Параметр локализации. Позволяет переключать между языками виджета, например 'ru' - русский язык, 'en' - английский язык.
585 )))
586
587 ==== marketbillid ====
588
589 Тип данных:##// number//##
590
591 По умолчанию:##// undefined//##
592
593 (% class="box warningmessage" %)
594 (((
595 Описание отсутствует
596 )))
597
598 ==== marketemployeeid ====
599
600 Тип данных:##// number//##
601
602 По умолчанию:##// undefined//##
603
604 (% class="box warningmessage" %)
605 (((
606 Описание отсутствует
607 )))
608
609 ==== minimap **##*##** ====
610
611 Тип данных:##// boolean//##
612
613 По умолчанию:##// true//##
614
615 (% class="box infomessage" %)
616 (((
617 Отображать миникарту.
618 )))
619
620 ==== minimapaspect **##*##** ====
621
622 Тип данных:##// number//##
623
624 По умолчанию:##// 0.2//##
625
626 (% class="box infomessage" %)
627 (((
628 Размер миникарты относительной полного размера карты, а не контейнера, в которой она находится.
629 )))
630
631 ==== multidayslessonsskillstariffs **##*##** ====
632
633 Тип данных:##// Array<number> //##//|## object##//
634
635 По умолчанию:##// []//##
636
637 (% class="box infomessage" %)
638 (((
639 Производит фильтрацию тарифов для многодневных занятий. Принимает массив идентификаторов.
640 Параметр дополняет фильтрацию по параметру **##grouplessonsskillstariffs##**.
641 )))
642
643 ==== nocategories **##*##** ====
644
645 Тип данных:##// boolean//##
646
647 По умолчанию:##// false//##
648
649 (% class="box infomessage" %)
650 (((
651 Если **##true##** скрывает фильтр по категории инструкторских занятий
652 )))
653
654 [[image:1702638427440-675.png]]
655
656 ==== nocoach **##*##** ====
657
658 Тип данных:##// boolean//##
659
660 По умолчанию:##// false//##
661
662 (% class="box infomessage" %)
663 (((
664 Если **##true##** скрывает выпадающее меню выбора инструктора
665 )))
666
667 [[image:1702638265778-588.png]]
668
669 ==== nolocation **##*##** ====
670
671 Тип данных:##// boolean//##
672
673 По умолчанию:##// false//##
674
675 (% class="box infomessage" %)
676 (((
677 Если **##true##** скрывает фильтр по месту проведения инструкторских занятий
678 )))
679
680 [[image:1702638034420-756.png]]
681
682 ==== nopromo **##*##** ====
683
684 Тип данных:##// boolean//##
685
686 По умолчанию:##// false//##
687
688 (% class="box infomessage" %)
689 (((
690 Убирает вывод промокода на странице подтверждения заказа.
691 )))
692
693 ==== noskills **##*##** ====
694
695 Тип данных:##// boolean//##
696
697 По умолчанию:##// false//##
698
699 (% class="box infomessage" %)
700 (((
701 Если **##true##** скрывает фильтр по дисциплине инструкторских занятий
702 )))
703
704 [[image:1702638705750-678.png]]
705
706 ==== notariffs ====
707
708 Тип данных:##// boolean//##
709
710 По умолчанию:##// false//##
711
712 (% class="box warningmessage" %)
713 (((
714 Описание отсутствует
715 )))
716
717 ==== onlytab **##*##** ====
718
719 Тип данных:##// string //##//|## Array<string>##//
720
721 По умолчанию:##// []//##
722
723 (% class="box infomessage" %)
724 (((
725 Скрытие других вкладок виджета («покупка услуг» или «пополнение услуг») при загрузке. Обычно используется в комбинации с параметром **##forcetab##**
726 )))
727
728 {{code language="javascript"}}
729 onlytab: 'service' // покажет только вкладку «покупка услуг».
730 onlytab: 'rewrite' // покажет только вкладку «пополнение услуг».
731 onlytab: ['service', 'rewrite'] // покажет только вкладки «покупка услуг» и «пополнение услуг»;
732 {{/code}}
733
734 ==== ordercomment **##*##** ====
735
736 Тип данных:##// string//##
737
738 По умолчанию:##// ''//##
739
740 (% class="box infomessage" %)
741 (((
742 Опциональный комментарий к заказу. Максимальная длинна комментария 50 символов.
743 )))
744
745 ==== personallessonsskillstariffs **##*##** ====
746
747 Тип данных:##// Array<number> //##//|## object##//
748
749 По умолчанию:##// []//##
750
751 (% class="box infomessage" %)
752 (((
753 Производит фильтрацию тарифов для индивидуальных занятий. Принимает массив идентификаторов.
754 )))
755
756 ==== placeid **##*##** ====
757
758 Тип данных:##// number//##
759
760 По умолчанию:##// undefined//##
761
762 (% class="box infomessage" %)
763 (((
764 идентификатор места, использующийся для получения списка инструкторов.
765 )))
766
767 ==== requiredloyalty **##*##** ====
768
769 Тип данных:##// boolean//##
770
771 По умолчанию:##// false//##
772
773 (% class="box infomessage" %)
774 (((
775 Включает обязательную регистрацию клиента в программе настроенной на объектке.
776 )))
777
778 ==== resetcart **##*##** ====
779
780 Тип данных:##// boolean//##
781
782 По умолчанию:##// false//##
783
784 (% class="box infomessage" %)
785 (((
786 Автоматически очищать содержимое корзины.
787 )))
788
789 ==== saletermstype **##*##** ====
790
791 Тип данных:##// string//##
792
793 По умолчанию:##// '//default//'//##
794
795 (% class="box infomessage" %)
796 (((
797 Перед оплатой просит пользователя согласиться с правилами в форме галочки или всплывающего окна
798 )))
799
800 {{code language="javascript"}}
801 saletermstype: 'checkbox' // потребует установку галочки для согласия.
802 saletermstype: 'dialog' // покажет всплывающее окно с правилами, которые нужно принять.
803 saletermstype: 'default' // принятие правил не требуется.
804 {{/code}}
805
806 ==== shownoticketsseances **##*##** ====
807
808 Тип данных:##// boolean//##
809
810 По умолчанию:##// false//##
811
812 (% class="box infomessage" %)
813 (((
814 Не скрывать сеансы, на которые закончились билеты. Работает если **##tariffsseancesfilter: true##**
815 )))
816
817 ==== showoverseances **##*##** ====
818
819 Тип данных:##// boolean//##
820
821 По умолчанию:##// false//##
822
823 (% class="box infomessage" %)
824 (((
825 Отвечает за отображение прошедших сеансов в списке для фильтрации по времени. При значении **##true##** прошедшие сеансы будут отображаться, но недоступны для выбора пользователем. Работает если **##tariffsseancesfilter: true##**
826 )))
827
828 [[image:1702554598837-627.png]]
829
830 ==== skills **##*##** ====
831
832 Тип данных:##// Array<number>//##
833
834 По умолчанию:##// []//##
835
836 (% class="box infomessage" %)
837 (((
838 Ограничить видимость доступных к выбору дисциплин по идентификатору
839 )))
840
841 [[image:1702639385677-964.png]]
842
843 ==== tariffsseancesfilter **##*##** ====
844
845 Тип данных:##// boolean//##
846
847 По умолчанию:##// false//##
848
849 (% class="box infomessage" %)
850 (((
851 Включить отображение фильтра тарифов по сеансам.
852 )))
853
854 [[image:https://info.moipass.ru/images/tariffsseancesfilter.png||alt="Example"]]
855
856 ----
857
858 (% class="box warningmessage" %)
859 (((
860 **##* ##**- доступно в новой версии виджета
861 )))