Отправка формы с типом поля сущности (страницы, продукты...)
✅ Цель сценария:
- Получить конфигурацию формы из OneEntry CMS
- Пользователь выбирает один из элементов сущности
- Отправить собранные данные в API OneEntry.
✅ Что вам нужно:
- Действительный PROJECT_URL и APP_TOKEN для ау тентификации с API OneEntry.
- Предварительно настроенная форма в OneEntry с маркером (например, сущность) и полями, включая одно из типа "сущность".
- Предварительно настроенные поля формы, включая одно из типа "сущность".
📌 Важно:
- Мы не обрабатываем ошибки в этих примерах.
- Вы можете обрабатывать ошибки в конструкции trycatch или в конструкции типа "await Promise.catch((error) => error)"
Сценарий
1. Импортируйте oneEntry и определите url и токен
Пример:
import { defineOneEntry } from 'oneentry';
const PROJECT_URL = 'your-project-url';
const APP_TOKEN = 'your-app-token';
2. Создание API-клиента с помощью функции defineOneEntry()
Пример:
const { AuthProvider, Orders, Payments, Forms } = defineOneEntry(PROJECT_URL, {
token: APP_TOKEN,
});
3. Мы получаем данные формы из OneEntry CMS для генерации формы на фронтенде с помощью Forms.getFormByMarker()
Пример:
const formData = await Forms.getFormByMarker('entity');
Результат:
{
"id": 2,
"attributeSetId": 1,
"type": "data",
"localizeInfos": {
"title": "Сущность",
"titleForSite": "",
"successMessage": "",
"unsuccessMessage": "",
"urlAddress": "",
"database": "0",
"script": "0"
},
"version": 17,
"position": 1,
"identifier": "entity",
"processingType": "script",
"templateId": null,
"attributes": [
{
"type": "entity",
"marker": "entity",
"isLogin": null,
"isSignUp": null,
"position": 1,
"settings": {},
"isVisible": true,
"listTitles": [
{
"id": 1,
"depth": 0,
"title": "Каталог",
"parentId": null,
"position": 1,
"selected": true
},
{
"id": 7,
"depth": 0,
"title": "Премиум страница",
"parentId": null,
"position": 2,
"selected": true
}
],
"validators": {},
"localizeInfos": {
"title": "Сущность"
},
"additionalFields": [],
"isNotificationEmail": null,
"isNotificationPhoneSMS": null,
"isNotificationPhonePush": null
}
]
}