Дополнительные возможности настройки документов

Вы можете использовать редактор шаблонов документов Rentman, чтобы настроить шаблоны в соответствии со своими предпочтениями и нуждами компании. Вам не надо уметь программировать, ведь мы работаем по системе WYSIWYG («что видишь, то и получишь»).

Тем не менее мы хотим, чтобы технически продвинутые пользователи могли вносить в шаблоны более масштабные изменения, помимо тех, что предлагает WYSIWYG. Поэтому мы сделали возможным редактирование CSS, регулирование и логичное выстраивание переменных, а также применение условных стилей.

Примечание. Для применения описанных выше функций требуются технические навыки. Если у вас их нет, обратитесь за помощью к сторонней компании или воспользуйтесь нашими дополнительными услугами по настройке шаблонов. В нашу сферу поддержки не входит внедрение CSS, переменных и условных стилей, а также устранение неполадок в процессе.

CSS

Если вы хотите вручную изменить CSS документа по своему усмотрению, то можете сделать это через меню «Стили документа» в редакторе шаблонов.

______________2021-09-15___10.26.41.png

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

Классы CSS

У каждого элемента шаблона в Rentman есть класс CSS, который можно использовать для настройки собственного стиля. В нашем распоряжении нет полного списка классов, которым мы могли бы поделиться, но вы можете посмотреть, какой их них нужно использовать, открыв код документа. Для этого необходимо воспользоваться меню браузера в редакторе шаблонов.

______________2021-09-16___09.27.02.png

 

24173d7d-5290-47d2-ad20-58c4cbd18135.png

На примере выше строки с прокатными элементами в модуле оборудования имеют класс item rental.

Совет. Строки могут быть динамически сформированы и иметь один и тот же класс. Например, у всех прокатных элементов будет указанный выше класс. Чтобы поменять конкретные строки, используйте превдоселекторы, например :nth-child(i).

PHP

Если вы будете редактировать текстовый блок в любом системном шаблоне, то увидите, как меняется представленная информация. И если до начала редактирования ваше имя клиента выглядело как «Rentman», то теперь на его месте {$f.customer.displayname}. Это переменная. Она извлекает отображаемое имя клиента из проекта и вставляет его на свое место в создаваемый документ.

Модификаторы переменных

В большинстве случаев для отображения определенной переменной достаточно просто добавить ее в документ. Однако бывают случаи, когда необходимо манипулировать определенной переменной. Например, прежде чем соотнести цену с числом (чтобу узнать об условных операторах if, смотрите раздел ниже) требуется преобразовать цену в цифры. 

Для этого можно добавить к переменной модификатор. Возьмем пример выше и используем модификатор regex_replace. Вот как выглядит переменная полной цены {$f.project_total_price}, преобразованная в цифры:

{$f.project_total_price|regex_replace:'/[^0-9]/':''|intval}

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

Примечание. В редакторе шаблонов разрешено использование не всех переменных. При применении недопустимого модификатора на экране появится предупреждение. Ниже вы найдете список пользовательских модификаторов и функций, разрешенных к использованию в нашем редакторе шаблонов.

Пользовательские модификаторы и разрешенные функции PHP
Пользовательские модификаторы

Вы можете применять к переменным следующие пользовательские модификаторы:

"lcfirstLocal",
"lcfirstlocal",
"ucfirstLocal",
"ucfirstlocal",
"formatTime",
"formatBytes",
"formatDateTime",
"formatDiscount",
"formatDistance",
"formatDuration",
"formatMonth",
"formatDay",
"formatDate",
"formatBoolean",
"formatNumber",
"formatPrice",
"formatPercentage",
"formatSpellout",
"formatPriceCustom",

Пример. Модификатор {$number|formatPrice} отобразит число, возвращаемое переменной {$number}, в качестве цены с использованием десятичных и тысячных разделителей и валюты в соответствии с данными модуля «Конфигурация» и настройками страны в шаблонах документов. Если вы используете рубли и страна документа Россия, то возвращаемое значение переменной {$number} 10000 будет показано как 10 000,00 ₽.

Разрешенные функции PHP

В нашем редакторе шаблонов также можно использовать некоторые функции PHP. Список вы найдете ниже. Чтобы узнать о применении этих функций и их синтаксисе, прочитайте документацию PHP.

public const F_TYPE = [
'is_array',
'is_bool',
'is_countable',
'is_int',
'is_integer',
'is_object',
'is_null',
'is_string',
'is_float',
'is_double',
'isset',
];

public const F_CAST = [
'intval',
'boolval',
'doubleval',
'floatval',
];

public const F_DATETIME = [
'time',
'date',
];

public const F_ARRAY = [
'empty',
'count',
'sizeof',
'current',
'explode',
'array_key_exists',
'array_keys',
'array_values',

];

public const F_REGEX = [
'regex_replace',
];

public const F_STRING = [
'nl2br',
"ucfirst",
"lcfirst",
"ucwords",
"htmlentities",
"htmlspecialchars",
"trim",
"ltrim",
"rtrim",
"strtolower",
"strtoupper",
"mb_strtoupper",
"count",
"escape",
"strlen",
"mb_strlen",
"substr",
"mb_substr",
"str_replace",
'str_pad',
'wordwrap',
'sprintf',
'strip_tags',
'urlencode',
];

public const F_MISC = [
'min',
'max',
'abs',
'rand',
'number_format',
'round',
'ceil',
'floor',
];

public const F_RENTMAN = [
"Rentman\\getTemplateVal",
"sumprice",
"substr",
"multiplyprice",
"removePrice",
"toDate",
'buildrow',
'roundcents',
];

Условные операторы if

Условные операторы if заставляют документы выполнять некоторые действия при соответствии определенным условиям, и делать что-то другое, если условие не соблюдено. Такой условный оператор есть в самом первом текстовом блоке всех системных шаблонов коммерческих предложений, контрактов и счетов. Если вы решите отредактировать этот текстовый блок, то увидите следующий код:

{$f.customer.displayname}
{if $f.contact > 0}attn. {$f.contact.firstname} {$f.contact.surfix} {$f.contact.lastname}
{/if}{$f.customer.post_street} {$f.customer.post_number}
{$f.customer.post_postalcode} {$f.customer.post_city} {if $f.customer.country != $company.country}{$f.customer.country}{/if}

Условие всегда определяется в начале оператора if, и в нашем случае оно следующее:

{if $f.contact > 0}

Если возвращаемое значение переменной {$f.contact} (количество контактных лиц клиента) больше 0, в документе появится информация, указанная до закрывающего тега {/if}. В нашем случае это будет текст «attn.» и полное имя контактного лица. Если условие не соблюдено (у клиента нет контактного лица), информация внутри условного оператора if будет проигнорирована и в документе ничего не появится. 

Это также применимо, если у вас есть несколько условий. Для этого нужно использовать оператор {elseif}. Пример:

{if $name ='Fred'}
  Welcome Sir.
{elseif $name = 'Wilma'}
  Welcome Ma'am.
{else}
  Welcome, whatever you are.
{/if}

Условные стили

Условные стили позволяют применять определяемый вами класс CSS, если в выбранном столбце указано определенное значение. Например, у вас есть дополнительное поле ввода для оборудования, которое может иметь два значения: синий и оранжевый. Используя условные стили, вы можете указать, что у строк оборудования синего цвета будет класс CSS .blue, а у строк оборудования оранжевого цвета — класс CSS .orange.

Сделав это, вы можете стилизовать строки оборудования по отдельности на основе присвоенных им классов. Например, у вас может быть «оранжевое» оборудование, то есть строки в таблице будут иметь соответствующий фон. То же относится и к синему.

Как только вы освоите условные стили, то сможете менять внешний вид документа практически как угодно. Любые стили, применяемые к документам, можно применить к классам, которые вы определяете с помощью условных стилей.

Условные стили можно задать, нажав кнопку «Параметры вырезать/вставить» в выбранном модуле:

______________2021-09-20___10.05.04.png

Структура

Если вы нажмете кнопку «Параметры вырезать/вставить», перед вами появится вот такое окно:

558cd2db-1494-4402-9e08-94fac5d83814.png

Чтобы применить условные стили, вы можете добавить следующий код прямо перед закрывающейся скобкой «Параметры вырезать/вставить»:

,
"conditionalstyling": [
  {
    "condition": {
      "field": "templVarName",
      "comparator": "comparatorValue",
      "value": {
        "value": "valueValue"
      }
    },
    "class": "cssClass"
  }
]

Отредактируйте этот фрагмент кода, указав свои условия:

  • templVarName = значение в поле templVar для столбца, в котором вы хотите находить условие. Возьмем для примера скриншот выше. Если вы должны определить условие на основе значения фактора (staffel), вы напишите  “staffel”.
  • comparatorValue = тип сравнения значения в поле, определенного выше, со значением, выбранным для сравнения. Вы можете использовать различные операторы сравнения, например: = (равно), != (не равно), > (больше чем), < (меньше чем), *= (содержит), *!= (не содержит). Если вы хотите проверить, больше фактор, чем 3 или нет, то ставите здесь > .
  • valueValue = значение, с которым вы хотите сравнить. Если вы хотите проверить, больше фактор, чем 3 или нет, то здесь надо написать 3. Так же можно сравнить со значением из другого поля, например: "value":{"value":"templVarName", "type: "templVar"}}
  • cssClass = класс CSS, который вы хотите присваивать строкам, отвечающим определенному вами условию, например factorGreaterThanThree (фактор больше трех).
Была ли эта статья полезной?
Пользователи, считающие этот материал полезным: 0 из 1