Page History
...
- Простой - в полном соответствии своему названию, является самым простым блоком. Он используется для указания статичных частей формата. Например, если нужно в формате использовать набор символов, который будет всегда присутствовать в итоговом результате. Представим, что требуется задать формат для наименования объекта Продукт с типом Авиабилет, в котором оно будет состоять просто из слова Авиабилет. Строка формата при этом будет выглядеть так:
Panel |
---|
Авиабилет |
Для простого блока не требуется каким-либо образом выделять свою структуру. Статичные символы просто вносятся в формат как есть.
2. Ключевое слово - является блоком, в котором указанное ключевое слово, при применении формата, будет заменено на определенное значение. Этот блок имеет следующую структуру:
...
Panel |
---|
Авиабилет {id=product:number} - {id=product:start_date} |
Возникает вопрос, в каком виде дата будет отображена в итоговой строке? Как упоминалось ранее, для дат и чисел можно задать атрибут pattern, который как раз и позволяет задать шаблон для их отображения. Воспользуемся этим атрибутом:
Panel |
---|
Авиабилет {id=product:number} - {id=product:start_date|pattern=yyyy.MM.dd} |
В этом примере, было определено что дата будет отображаться в виде четырех цифр года и двух цифр для месяца и дня, отделенные между собой символом . (точка). Итоговый результат может выглядеть, например, так:
Panel |
---|
Авиабилет 1234567890 - 2018.05.17 |
...
Panel |
---|
{id=billing_item:nomenclature|locale=en} |
При этом, если атрибут locale указать у элемента, значение которого является не локализуемым, то такое значение будет транслитерировано с кириллицы на латиницу в соответствии с ГОСТ Р 52535.1-2006.
3.Опциональный - специальный блок, который в случае пустого значения будет полностью исключен из итоговой строки. Его полезно использовать, когда в формат нужно включить определенные данные, отсутствие которых у форматируемого объекта является допустимым. Этот блок имеет структуру, схожую со структурой предыдущего блока:
...
Panel |
---|
Авиабилет {id=product:number} - {id=product:start_date|pattern=yyyy.MM.dd} |
Посмотрим, как будет выглядеть итоговая строка в случае, если дата вылета у авиабилета не задана:
Panel |
---|
Авиабилет 1234567890 - |
В силу того, что даты вылета в авиабилете нет, ее значение в итоговую строку подставлено не будет. Однако символ - (тире), отделяющий дату от номера останется, т.к. он задан как статичный. Хочется этого избежать. Исправим формат и внесем в него опциональный блок:
Panel |
---|
Авиабилет |
...
{id=product:number}[padding= |
...
- |
...
|value={id=product:start_date|pattern=yyyy.MM.dd}] |
Как видно, символ - (тире) был внесен в качестве значения padding, а блок ключевого слова был полностью перенесен в значение атрибута value. Теперь, в случае если дата в билете есть, вычисленное значение атрибута value будет не пустым, следовательно опциональный блок будет использован. Итоговое значение, при этом, будет выглядеть так:
Panel |
---|
Авиабилет |
...
1234567890 |
...
- |
...
2018.05.17 |
Если же дата в билете отсутствует, то значение value будет пустым и опциональный блок будет полностью исключен из формата. В итоге получится строка:
...