Управляющие команды

Управляющие команды подразделяются на те, которые действуют для конкретных записей (замена текста, картинок и т.д. раздела и записи БД) и на те, которые действуют для страницы в целом.

Для каждой записи БД

Самый простой метод заменить содержимое в шаблоне - 
использовать скобки из процентов, типа : % таких %

Пробелов между процентными скобками делать не надо,
они здесь, чтобы реальные переменные не подставлялись.

Например : "товар стоит % nbr % руб.".

Допустимые значения для замены :
% IDMDB % - уникальный id в базе
% MDB % - название базы
% date % - дата d.m.Y
% year % - год
% month % - месяц по русски
% time % - часы:минуты
% dateint % - число
% timepassed % - как в ютубе на коммнтах : "1 день назад"
% secpassed % - прошло секунд с момента публикации
% colons % - число колонок
% details % - ссылка на эту же запись в режиме "подробнее"
% shareLink % - полная ссылка на запись с http:
% heading % - заголовок
% story % - основное текстовое поле
% name % - доп. текстовое поле
% text1 % - доп. текстовое поле
% text2 % - доп. текстовое поле
% keywords % - текстовое поле метаданных
% description % - текстовое поле метаданных
% nbr % - число
% comments % - число комментариев
% views % - число просмотров в режиме детализации
% rate % - число №2
% subgroup % - подгруппа для выборки БД (произольное может быть)
% cat % - подкатегория для выборки БД (произольное может быть)
% mdbid % - уникальный номер для записи БД {$MDB}-{$IDMDB} (удобно для форм)
% domid % - уникальный номер для поиска записи в DOM, {$MDB}_{$IDMDB} (для js)

% img0 % - первая картинка (большого разрешения)
% prev0 % - первая картинка (маленького разрешения - удобно для превьюшки)

% img0bg % - первая картика фоном элемента (большого разрешения)
% prev0bg% - первая картика фоном элемента (маленького разрешения)

//этот способ работает до 4-х картинок : от 0 до 3

% imgs % - вывод всех картинок (например в тильде, где нельзя работать с тэгами
этот способ необходим)

% cartitem % - javascript для добавления товара в корзину (в ссылках использовать)
% buyone % - javascript для покупки товара в 1 клик - без корзины пользователь
//переходит к оформлению (в ссылках использовать)
% author % - автор статьи (появится, если запись редактировал Админ из списка админов)

Вы сами можете добавть нужное поле для замены в свойствах записи
Например, добавили свойство "key" в запись со значением "123" и
доступ к значению данного свойства будет % key %

****************Другой способ замены*********
//Возможен через задание аттрибута у элемента DOM-разметки:
//пример : <div content-replace="img">внутри будут изображения</div>

content-replace
//заменяет содержимое контейнера на значение переменной
//переменные могут быть заданы непосредственно в записи,
//но существуют предустановленные значения, например для картинок :
content-replace = img
//заменяется аттрибут src у картинки-шаблона и, по образцу с шаблоном,
//добавляются все картинки большого разрешения, связанные с записью
content-replace = prev
//заменяется аттрибут src у картинки-шаблона и, по образцу с шаблоном,
//добавляются все превьюшки маленького разрешения, связанные с записью

content-replace = imgbg
//в этом случае к шаблону добавляется аттрибут
// style="background-image:url($imgArray[src])!important;"
//и по образцу с первой и добавляются все картинки в родителя
//(должен быть родительский контейнер для этого)

content-replace = prevbg
//к исходнику-шаблону добавляется аттрибут
// style="background-image:url($previewArray[src])!important;"
//и по образцу с шаблоном, добавляются все превьюшки маленького разрешения в родителя
//(должен быть родительский контейнер для этого)

//шаблон для картинок в слайдере
content-replace = sliderimg
//случай для слайдеров webflow (клонируется слайд и заменяется его фоновая картинка)

content-replace = videourl
//вставит iframe если найдет такой в поле story
//или вставка видео, если url на него привязан к картинке
//<video poster="картинка" controls=true >
//<source src="url" type="video/mp4"></video>

content-replace = slidercontenturl
//вставит содержимое раздела в виде слайдов из исходного шаблона
//в записи необходимо указать ссылку на раздел (переменная url)

href-replace - замена href у ссылки
//href-replace = % details % - теперь ссылка стала динамической
//href-replace = javascript:% cartitem %; - кнопка "в корзину"
//(хотя для javascript-а тег click-replace использовать лучше
// - он сразу подразумевает javascript - click-replace = % cartitem %)

add-href - оборачивает тег в ссылку <a class="nodecor" href="значение">
//удобно, чтобы не делать link block для слоя

content-extractfromid
//берет содержимое шаблона html и вставляет в содержащий этот тэг контейнер

extdata
//можно вставить данные из любого опубликованного раздела, если в качестве значения
//передать типа mdb=tours&where=cat='hot'&limit=3
//Например, эта директива покажет 3 горячих тура (where=cat='hot') из раздела tours

extdatatabs
//можно вставить данные из любого опубликованного раздела в виде вкладок

id-replace
//заменяет ID на уникальный для базы данных $mdb-$IDMDB, например : "news-1"

src-replace
//заменяет значение аттрибута src в картинках, например , например : "img0";


click-replace
//добавляет или заменяет аттрибут onclick,
//например , click-replace = % cartitem % для кнопки в корзину

href-replace
//заменяет значение href в ссылках


*****************формы********************

value-replace
//заменяет значение в формах на нужное

name-replace
//заменяет значение name в формах на нужное

disable=true
//добавляет аттрибут disabled - чтобы выключать формы

hidden=true
//заменяет аттрибут type на hidden- чтобы форма была скрыта

file=тип файлов
//обойти ограничение беспл. аккаунта webflow на загрузку файлов
//например, file="image/jpeg" превратится в код на странице :
//<input type="text" file="image/jpeg">
//file="*" позволит загрузить любой тип файла

****************убрать тег полностью при условии*********

content-collapse

loged - если пользователь авторизован
notin - если пользователь !НЕ авторизован
nosrc - нет картинки src == ""
noimg - нет прикрепленных к записи картинок
nonbr - поле DB 'nbr' == 0
nocom - поле DB 'comments' == 0
empty - тег пустой

Команды для страницы HTML-страницы целиком

template-general
//заменяет контейнер целиком на значение из раздела базы данных 'general'
//где категория записи будет равна значению этого поля
//<div template-general="bgslides">
//Например, этот слой будет заменен на запись БД раздела 'general' у
//которой категория будет 'bgslides'
//управляющие команды или % скобки % для таких записей работать будут!!!

template-replace
//Заменяет контейнер целиком на значение из раздела базы данных 'template'.
//Для замены на странице используется особое окончание "code" для записией не из
//webflow или "page" + окончание для визуальный шаблонов из webflow ("pageentry").
//В чем принципиальное отличие? Окончание "code" (playercode) - это та запись, которая
//не будет формироваться из содержимого страницы (шаблона html), а если окончание типа
//"pageentry", то это визуальный шаблон со страницы - будет обновляться каждый раз в
//базе, например :
//<img src="images/player3.png" temlate-replace="playercode" class="image-13">
//Например, эта картинка будет заменена на содержимое записи БД, содержащий код плеера
//Т.е. Визуально мы расположили плеер, затем добавили свой код плеера в
//базу данных и уже оттуда будет браться контент на замену...
//Другой пример: на странице korzina.html есть визуальный шаблон товара в корзине
//который нужно использовать на всех страницах сайта, где есть интерфейс корзины
//называем класс стиля в webflow "cartitemtpageentry" и используем
//<div temlate-replace="cartitemtpageentry"> в образце записи для товара
//!!! Эта команда вставляет уже сформированный контент и (управляющие
//команды или % скобки % для конкретной записи работать в этом случае не будут)
//как и для других директив ниже... т.е. это простые замены!!!

template-replace-inner
//заменяет содержимое контейнера на значение из базы данных по образцу с
//предыдущим примером

template-replace-value
//заменяет аттрибут value контейнера на значение из базы данных

template-replace-href
//заменяет аттрибут href на значение (оверрайд ограничений webflow и проч.)

template-remove
//полностью убирает контейнер со страницы, т.к. он не нужен будет на ней

click-replace
//вводит или заменяет значение onclick
//Например, click-replace = login();

style-add
//добавляет аттрибут style к элементу разметки. Нужен, потому что элемент style
//заблокирован в редакторе webflow, хотя иногда нужно добавить что-то сецифическое
//типа : style="pointer-events:none"

static
//применяется для пропуска обработки ссылок или меню, чтобы меню или ссылка
//не меняли своего контента
//Например, на сайте есть уже меню и Вы хотите оставить его как есть
//- с сылками на статические страницы,
//сверстанных на webflow - <nav role="navigation" static="1">

Команды для url или POST-запросов

sort - сортировать по полям таблиц (id, date, nbr - номер или цена, name, heading, 
//cat и т.д. названия полей таблиц)
order=asc - asc порядок сортировки восходящий (Если не указан - порядок нисходящий)
limit - ограничить кол-во записей БД
nopages - не формировать номера страниц под выдачей записей БД
"(date|last)-start" - начало диапазона дат
"(date|last)-end" - конец диапазона дат
"(nbr|rate)-start" - начало диапазона чисел
"(nbr|rate)-end" - конец диапазона чисел
"att-*" - свойство содержит (att-wifi=on)
Выбор из текстовых полей содержащих :
"(heading|story|name|text1|text2|cat|subgroup)-like" - cat-like=rus
//(выбрать поля содержащие значение "rus" )
"(heading|story|name|text1|text2|cat|subgroup)-eq" - cat-eq=rus
//(выбрать поля ТОЧНО СОВПАДАЮЩИЕ со значением "rus" )

Значения параметров могут содержать только "[а-я А-Я Ёё a-z A-Z 0-9 _-.,]"

Формирование ЧПУ

ЧПУ в ReFlex CMS - понятие "виртуальное", не привязанное к какому-либо конкретному разделу или записи БД. Может состоять из слудующих символов : A-Z a-z 0-9 -_/ ; 
Назначается либо при редактировании пункта меню, который будет определять поведение выборки из базы либо при редактировании конкретной записи в разделе БД (в этом случае добавляется "символическая ссылка", т.е. опять же создается пункт меню в категории "ЧПУ индекс" , который выберет записи из базы). Одному ЧПУ могут  соответствовать множество записей из БД.

Если в конце ЧПУ есть "/" - то это запрос множества, где нет детализации при выводе.
Если в конце ЧПУ нет "/" - то это запрос единичный, где есть детализация.

Если ЧПУ совпадает с именем раздела (директории), то в конце ЧПУ добавится "/".