====== Пользовательские функции ======
**Важно** \\
Эта страница описывает свойство, которое требует навыков в разработке PHP\\
Если вы используете это свойство неверно, то можете сломать весь Бизнес-Процесс!
Множество Задач в Дизайнере Бизнес-Процессов могут использовать пользовательские функции. \\
Вы можете узнать опцию для использования этой функции по зеленой границе вокруг текстового поля и специальной иконке () рядом с текстовым полем. \\
Почти все такие поля имеют специальные подсказки о наличии этой функции (например о том, какое значение вы должны вернуть). \\
Эти скрипты являют собой стандартные PHP-скрипты с ограниченным количеством функций. Все возможные PHP-функции имеют те же самые аргументы, что и оригинальные PHP-функции.
**Каждая пользовательская функция должна возвращать значение с объявлением “return”**
Вы можете использовать следующие PHP-функции:
* md5, rand, implode, substr, explode, microtime, date, time, sha1, hash, intval, floatval, floor, ceil, foreach
* а также все функции, которые начинаются с “str” (такие как strpos, str_pad, str_replace, и др.)
==== Дополнительные функции ====
Существуют несколько специальных функций, которые вы можете использовать, чтобы заставить vTiger сгенерировать специальные связанные задачи. \\
Так же вы можете создать свои собственные функции. \\
[[ru:start:api_documentation|Документация доступна здесь]]
=== Примеры пользовательских функций ===
Эти примеры написаны только для демонстрации функций, если вы можете - напишите лучше.
$var1 = "864"."0";
$var1 = $var1.(0 + intval($vtiger_purchaseorder)).intval($vtiger_purchaseorder);
$var2 = 1 + (2 * 5) - 8;
$var1 = substr($var1, 0, 5);
if($vtiger_purchaseorder == "1") {
$add = intval($var1) * $var2;
return time() + $add;
} else {
$add = intval($var1) * intval($vtiger_purchaseorder);
return time() + $add;
}
Эта функция может быть использована, чтобы задержать выполнение задания на день или несколько дней в поле заказа на покупку в счете.
**Здесь вы можете видеть единственный недостаток данного решения:**
Если вы захотите использовать математические операции, то должны будете воспользоваться круглыми скобками, чтобы получить корректный результат, поскольку система игнорирует основные математические правила.
=== Другие примеры ===
Подождать до того же числа следующего месяца
return date("Y-m-d", strtotime("+1 month"));
Подождать 5 дней
$days = 5;
$date = strtotime($datefield);
return date("Y-m-d", $date + (86400 * $days))