Фрейм pricing
Страница тарифов: три плана с возможностями, таблица сравнения, вопросы в две колонки со схемой FAQPage — всё из наборов pricing_*.
| Где стоит | фрейм страницы: /pricing/ на aitoolsformarketing.pro |
| Что читает | наборы pricing, pricing_plans, pricing_plan_features, pricing_compare, pricing_faq |
| Что вкладывает | siteheader, sitefooter |
Разметка
Каждый план выводится отдельным повторителем с константой в match, поэтому карточки стоят в разметке в нужном порядке и со своим оформлением:
<!-- onpress/repeat {"source":"pricing_plans","match":{"id":"raw:monthly"}} -->
<h3 data-op-bind='{"text":"item.name"}'></h3> <span data-op-bind='{"text":"item.amount"}'></span> …
<!-- onpress/repeat {"source":"pricing_plan_features","match":{"plan":"raw:monthly"}} --> <li data-op-bind='{"text":"item.text"}'></li> <!-- /onpress/repeat -->
<!-- /onpress/repeat -->
…
<!-- onpress/repeat {"source":"pricing_compare"} --> <tr> … item.feature, item.free, item.weekly, item.monthly … </tr> <!-- /onpress/repeat -->
<!-- onpress/repeat {"source":"pricing_faq","match":{"col":"raw:a"}} --> … <!-- /onpress/repeat -->
<!-- onpress/faq-schema {"source":"pricing_faq","question":"question","answer":"answer"} /-->
raw: в match — константа, а не токен. Схема FAQPage собирается из того же набора с полями question и answer. Цены и тексты правятся в наборах, фрейм не трогают; после правки набора страница пересобирается сама.