Исходный код вики Для разработчиков
Версия 5.1 от Михаил Галич на 11.12.2023, 13:54
Последние авторы
author | version | line-number | content |
---|---|---|---|
1 | == Для разработчиков == | ||
2 | |||
3 | Назначение данного раздела — описать способы взаимодействия с виджетом Веб-платформы по задуманому вами сценарию. Типичный процесс подключения, открытия и отслеживания виджета выглядит так: | ||
4 | |||
5 | ~1. Подключите скрипт external.script.js к вашему сайту. Его адрес будет доступен **после добавления сайта** в процессе настройки в **администраторской панели Веб-Платформы**, так же как и параметр id для подключения | ||
6 | |||
7 | 2. Вставьте в необходимом месте на своём сайте код: | ||
8 | |||
9 | {{{<script type="text/javascript"> | ||
10 | // инициализируем виджет с параметрами | ||
11 | WPInit({ | ||
12 | id: 1, | ||
13 | width: 400, | ||
14 | type: 'modal' | ||
15 | }) | ||
16 | |||
17 | // сразу откроем его для пользователя | ||
18 | WPOpenModal(); // вариант для модального окна | ||
19 | // WPOpen(); // вариант для открытия в теле страницы. Используется при инициализации виджета с type: 'instant' | ||
20 | |||
21 | // будем следить за состоянием виджета | ||
22 | WPChange = function(response) { | ||
23 | if (response.status == 'reserved') { | ||
24 | // если заказ зарезирвирован, занесём данные из response.data.order_id себе на сайт | ||
25 | } | ||
26 | if (response.status == 'completed') { | ||
27 | // если заказ оплачен, занесём данные из response.data.order_id себе на сайт | ||
28 | } | ||
29 | } | ||
30 | </script>}}} | ||
31 | |||
32 | |||
33 | == Функции == | ||
34 | |||
35 | === WPInit({params}) === | ||
36 | |||
37 | Функция загрузки виджета с параметризацией, при создании необходимо передать id виджета, который можно найти в Административной панели | ||
38 | |||
39 | ===== Минимальный способ инициализации: ===== | ||
40 | |||
41 | * WPInit({ id: 1 }) | ||
42 | |||
43 | ===== Пример передаваемых данных: ===== | ||
44 | |||
45 | Виджет можно инициализировать с различными параметрами, все из них опциональные, кроме id. | ||
46 | |||
47 | {{{WPInit({ | ||
48 | id: 1, | ||
49 | width: 400, | ||
50 | height: 600, | ||
51 | type: 'modal' | ||
52 | })}}} | ||
53 | |||
54 | === WPOpen({params}) === | ||
55 | |||
56 | Функция открытия виджета в каком-либо блоке, используется при инициализации виджета с type: 'instant' | ||
57 | |||
58 | ===== Пример передаваемых данных: ===== | ||
59 | |||
60 | {{{// показ виджета с группой id 5 | ||
61 | WPOpen({ | ||
62 | groupid: [5] | ||
63 | })}}} | ||
64 | |||
65 | === WPOpenModal({params}) === | ||
66 | |||
67 | Функция открытия виджета в модальном окне, используется при инициализации виджета с type: 'modal' | ||
68 | |||
69 | ===== Пример передаваемых данных: ===== | ||
70 | |||
71 | {{{// показ виджета на нажатие кнопки с id "OpenButton" var OpenButton = document.getElementById('OpenButton'); OpenButton.onclick = function() { WPOpenModal({ tariffsid: [27, 28] }) }}}} | ||
72 | |||
73 | === WPChange({status, data}) === | ||
74 | |||
75 | Функция, которая вызывается каждый раз при изменении состояния виджета. Каждый раз передаёт в переменной response состояние в status и опционально данные в data. При переопределении этой функции у себя на странице, администратор может следить за состоянием виджета и статусом заказа из javascript | ||
76 | |||
77 | ===== Примеры передаваемых данных: ===== | ||
78 | |||
79 | * { status:'starting' } — виджет в процессе запуска, в этот момент определяется, что он должен в данный момент отображать | ||
80 | * { status:'started' } — виджет на начальном экране, где показывается список услуг для покупки | ||
81 | * { status:'reserved', data: { order_id: 2 } } — виджет находится на стадии забронированного заказ, в data передаётся id | ||
82 | * { status:'completed', data: { order_id: 2 } } — виджет находится на стадии оплаченного заказ, в data передаётся id заказа | ||
83 | |||
84 | ===== Пример работы с данными: ===== | ||
85 | |||
86 | {{{WPChange = function(response) { if (response.status == 'starting') { // действие на внешней странице } if (response.status == 'started') { // действие на внешней странице } if (response.status == 'reserved') { // id зарезервированного заказа: response.data.order_id } if (response.status == 'completed') { // id оплаченного заказа: response.data.order_id } }}}} | ||
87 | |||
88 | == Параметры == | ||
89 | |||
90 | ==== Обязательные параметры WPInit ==== | ||
91 | |||
92 | ==== id: 1 ==== | ||
93 | |||
94 | id виджета, который можно узнать в Административной панели | ||
95 | |||
96 | ==== Возможные параметры WPInit ==== | ||
97 | |||
98 | ==== height: 480 ==== | ||
99 | |||
100 | Высота виджета в пикселях, по умолчанию: | ||
101 | |||
102 | * 480px, если виджет запущен как type: 'modal' | ||
103 | * 100%, если виджет запущен как type: 'instant' | ||
104 | |||
105 | ==== width: 640 ==== | ||
106 | |||
107 | Ширина виджета в пикселях, по умолчанию: | ||
108 | |||
109 | * 640px, если виджет запущен как type: 'modal' | ||
110 | * 100%, если виджет запущен как type: 'instant' | ||
111 | |||
112 |