<?php
$sql_query = 'DELETE FROM `' . $config["table_prefix"] . 'calc_template`';
run_query($sql_query);
$sql_query = 'INSERT INTO `' . $config["table_prefix"] . 'calc_template`';
$sql_query .= <<<'EOT'
 (`id`, `name`, `calculate_tpl`, `params`, `type`, `tpl_name`, `javascript_tpl`, `tpl_category`, `calc_types`, `calc_num`) VALUES
(1,	'Сумма по подтаблице',	'if ($line[\'{$gen_field.link_field_id}\'][\'raw\'] > 0) {\r\n    if ($event[\'type\'] == \'delete\') {\r\n        $sql = \' AND id <> \' . $ID;\r\n    }\r\n    $filter = (int)\"{$filter}\";\r\n    $filter = sql_select_array(FILTERS_TABLE, \'id=\' . $filter);\r\n    if ($filter[\'value\']) {\r\n        $filter[\'value\'] = filter_tpl_replace($filter[\'value\']);\r\n    } else {\r\n        $filter[\'value\'] = \'1 = 1\';\r\n    }\r\n    $result = data_select_field($table_id, \"sum({$cur_field}) as f_sum\", \"status = 0 AND {$gen_field.link_field_id} = \" . $line[\'{$gen_field.link_field_id}\'][\'raw\'] . $sql . \" AND \" . $filter[\'value\']);\r\n    $row = sql_fetch_assoc($result);\r\n    $line[\'{$gen_field.link_field_id}\'][\'{$gen_field.field}\'] = $row[\'f_sum\'];\r\n}',	'{\r\n    \"title\": \"Сумма по подтаблице\",\r\n    \"help\": \"tpl_sum_from_subtable\",\r\n    \"parameters\": {\r\n        \"cur_field\": {\r\n            \"type\": \"Field\",\r\n            \"name\": \"cur_field\",\r\n            \"description\": \"Выберите поле, по которому считать сумму\",\r\n            \"type_field\": 1,\r\n            \"help\": \"tpl_sum_field\"\r\n        },\r\n        \"filter\": {\r\n            \"type\": \"Filter\",\r\n            \"name\": \"filter\",\r\n            \"description\": \"Выберите фильтр\",\r\n            \"help\": \"tpl_sel_filter\"\r\n        },\r\n        \"gen_field\": {\r\n            \"type\": \"TableField\",\r\n            \"name\": \"gen_field\",\r\n            \"description\": \"Выберите основную таблицу\",\r\n            \"field_description\": \"Выберите поле, в которое подтягивать сумму\",\r\n            \"only_parent\": true,\r\n            \"type_field\": 1,\r\n            \"help\": \"tpl_sel_table\",\r\n            \"field_help\": \"tpl_sel_field\"\r\n        }\r\n    },\r\n    \"events\": [\r\n        {\r\n            \"type\": 3,\r\n            \"field\": \"cur_field\"\r\n        },\r\n        {\r\n            \"type\": 4,\r\n            \"field\": \"\"\r\n        },\r\n        {\r\n            \"type\": 7,\r\n            \"field\": \"\"\r\n        }\r\n    ]\r\n}',	'calc',	'calc_1.tpl',	'',	2,	'[2]',	1),
(2,	'Копировать поле',	'if ({$list} == 0) {\n    $line[\'{$cur_field1}\'] = $line[\'{$cur_field2}\'];\n} else {\n    if (!$line[\'{$cur_field1}\']) {\n        $line[\'{$cur_field1}\'] = $line[\'{$cur_field2}\'];\n    }\n}',	'{\n    \"title\": \"Копировать поле\",\n    \"help\": \"tpl_field_to_field\",\n    \"parameters\": {\n        \"cur_field1\": {\n            \"type\": \"Field\",\n            \"name\": \"cur_field1\",\n            \"help\": \"receiver_field\",\n            \"description\": \"Выберите поле-получатель\"\n        },\n        \"cur_field2\": {\n            \"type\": \"Field\",\n            \"name\": \"cur_field2\",\n            \"help\": \"source_field\",\n            \"description\": \"Выберите поле-источник\"\n        },\n        \"list\": {\n            \"type\": \"List\",\n            \"name\": \"list\",\n            \"help\": \"Overwrite_field\",\n            \"description\": \"Перезаписать поле\",\n            \"values\": {\n              \"0\": \"Да\",\n              \"1\": \"Нет\"\n            }\n        }\n    },\n    \"events\": [\n        {\n            \"type\": 3,\n            \"field\": \"cur_field2\"\n        }\n    ]\n}',	'calc',	'calc_2.tpl',	'',	1,	'[1]',	1),
(3,	'Дата: Изменить дату',	'$line[\'{$cur_field3}\'] = date(\'Y-m-d H:i:s\', strtotime($line[\'{$cur_field1}\']) {$operand} $line[\'{$cur_field2}\'] * 3600 * 24);',	'{\n    \"title\": \"Дата: Изменить дату\",\n    \"help\": \"tpl_add_to_date\",\n    \"parameters\": {\n        \"cur_field1\": {\n            \"type\": \"Field\",\n            \"name\": \"cur_field1\",\n            \"description\": \"Выберите исходную дату\",\n            \"type_field\": [\n                2,\n                12\n            ],\n            \"help\": \"tpl_date_field\"\n        },\n        \"operand\": {\n            \"type\": \"List\",\n            \"name\": \"operand\",\n            \"description\": \"Выберите опцию\",\n            \"values\": {\n              \"+\": \"Прибавить\",\n              \"-\": \"Отнять\"\n            },\n            \"help\": \"tpl_option\"\n        },\n        \"cur_field2\": {\n            \"type\": \"Field\",\n            \"name\": \"cur_field2\",\n            \"description\": \"Выберите поле с числом дней\",\n            \"type_field\": 1,\n            \"help\": \"tpl_sel_field\"\n        },\n        \"cur_field3\": {\n            \"type\": \"Field\",\n            \"name\": \"cur_field3\",\n            \"description\": \"Выберите поле для записи результата\",\n            \"type_field\": 2,\n            \"help\": \"tpl_result_field\"\n        }\n    },\n    \"events\": [\n        {\n            \"type\": 3,\n            \"field\": \"cur_field1\"\n        },\n        {\n            \"type\": 3,\n            \"field\": \"cur_field2\"\n        }\n    ]\n}',	'calc',	'calc_3.tpl',	'',	1,	'[1]',	11),
(4,	'Значение по умолчанию',	'if ($event[\'is_new_line\']) {\n    $line[\'{$cur_field}\'] = $line[\'{$gen_field.link_field_id}\'][\'{$gen_field.field}\'];\n}',	'{\n    \"title\": \"Значение по умолчанию\",\n    \"help\": \"tpl_default_value\",\n    \"parameters\": {\n        \"cur_field\": {\n            \"type\": \"Field\",\n            \"name\": \"cur_field\",\n            \"description\": \"Выберите поле, в которое подставлять значение\",\n            \"no_system\": true,\n            \"help\": \"tpl_result_field\"\n        },\n        \"gen_field\": {\n            \"type\": \"TableField\",\n            \"name\": \"gen_field\",\n            \"description\": \"Выберите основную таблицу\",\n            \"field_description\": \"Выберите поле, из которого тянуть значение\",\n            \"only_parent\": \"true\",\n            \"help\": \"tpl_sel_table\",\n            \"field_help\": \"tpl_sel_field\"\n        }\n    },\n    \"events\": [\n        {\n            \"type\": 1,\n            \"field\": \"\"\n        }\n    ]\n}',	'calc',	'calc_4.tpl',	'',	7,	'[3]',	0),
(5,	'Копировать поля из связанной таблицы',	'$line[\'{$cur_field}\'] = $line[\'{$gen_field.link_field_id}\'][\'{$gen_field.field}\'];',	'{\n    \"title\": \"Копировать поля из связанной таблицы\",\n    \"help\": \"tpl_link_to_field\",\n    \"parameters\": {\n        \"cur_field\": {\n            \"type\": \"Field\",\n            \"name\": \"cur_field\",\n            \"description\": \"Выберите поле, в которое сохранять значение\",\n            \"no_system\": true,\n            \"help\": \"tpl_result_field\"\n        },\n        \"gen_field\": {\n            \"type\": \"TableField\",\n            \"name\": \"gen_field\",\n            \"description\": \"Выберите таблицу, из которой тянуть значение\",\n            \"field_description\": \"Выберите поле, из которого тянуть значение\",\n            \"only_parent\": \"true\",\n            \"help\": \"tpl_sel_table\",\n            \"field_help\": \"tpl_sel_field\"\n        }\n    },\n    \"events\": [\n        {\n            \"type\": 2,\n            \"field\": \"cur_field\"\n        }\n    ]\n}',	'calc',	'calc_5.tpl',	'',	3,	'[1]',	1),
(6,	'Дата: Установить текущую дату',	'$line[\'{$cur_field}\'] = date(\'Y-m-d H:i:s\');',	'{\r\n    \"title\": \"Дата: Установить текущую дату\",\r\n    \"help\": \"tpl_cur_date\",\r\n    \"parameters\": {\r\n        \"cur_field\": {\r\n            \"type\": \"Field\",\r\n            \"name\": \"cur_field\",\r\n            \"description\": \"Выберите поле, в которое сохранять дату\",\r\n            \"type_field\": 2,\r\n            \"no_system\": true,\r\n            \"help\": \"tpl_cur_date_field\"\r\n        }        \r\n    }\r\n}',	'button',	'cur_date.tpl',	'',	1,	'[]',	6),
(7,	'Копировать поле',	'if ({$list} == 0) {\r\n    $line[\'{$cur_field1}\'] = $line[\'{$cur_field2}\'];\r\n} else {\r\n    if (!$line[\'{$cur_field1}\']) {\r\n        $line[\'{$cur_field1}\'] = $line[\'{$cur_field2}\'];\r\n    }\r\n}',	'{\r\n    \"title\": \"Копировать поле\",\r\n    \"help\": \"tpl_field_to_field\",\r\n    \"parameters\": {\r\n        \"cur_field1\": {\r\n            \"type\": \"Field\",\r\n            \"name\": \"cur_field1\",\r\n            \"help\": \"receiver_field\",\r\n            \"description\": \"Выберите поле-получатель\"\r\n        },\r\n        \"cur_field2\": {\r\n            \"type\": \"Field\",\r\n            \"name\": \"cur_field2\",\r\n            \"help\": \"source_field\",\r\n            \"description\": \"Выберите поле-источник\"\r\n        },\r\n        \"list\": {\r\n            \"type\": \"List\",\r\n            \"name\": \"list\",\r\n            \"help\": \"Overwrite_field\",\r\n            \"description\": \"Перезаписать поле\",\r\n            \"values\": {\r\n              \"0\": \"Да\",\r\n              \"1\": \"Нет\"\r\n            }\r\n        }\r\n    }\r\n}',	'button',	'change_field.tpl',	'',	1,	'[]',	1),
(8,	'Копировать поля из связанной таблицы',	'$line[\'{$cur_field}\'] = $line[\'{$gen_field.link_field_id}\'][\'{$gen_field.field}\'];',	'{\r\n    \"title\": \"Копировать поля из связанной таблицы\",\r\n    \"help\": \"tpl_link_to_field\",\r\n    \"parameters\": {\r\n        \"cur_field\": {\r\n            \"type\": \"Field\",\r\n            \"name\": \"cur_field\",\r\n            \"description\": \"Выберите поле, в которое сохранять значение\",\r\n            \"no_system\": true,\r\n            \"help\": \"tpl_to_field\"\r\n        },\r\n        \"gen_field\": {\r\n            \"type\": \"TableField\",\r\n            \"name\": \"gen_field\",\r\n            \"description\": \"Выберите таблицу, из которой тянуть значение\",\r\n            \"field_description\": \"Выберите поле, из которого тянуть значение\",\r\n            \"only_parent\": \"true\",\r\n            \"help\": \"tpl_source_table\",\r\n            \"field_help\": \"tpl_source_field\"\r\n        }\r\n    }\r\n}',	'button',	'change_field_on_link.tpl',	'',	3,	'[]',	1),
(9,	'Изменить поле',	'$line[\'{$put_field}\'] = \'{$put_value}\';',	'{\r\n    \"title\": \"Изменить поле\",\r\n    \"help\": \"tpl_list_change\",\r\n    \"parameters\": {\r\n        \"put_field\": {\r\n        \"type\": \"Field\",\r\n            \"name\": \"put_field\",\r\n            \"description\": \"Выберите поле для замены значения\",\r\n            \"no_system\": true,\r\n            \"help\": \"tpl_replace_field\"\r\n        },\r\n        \"put_value\": {\r\n        \"type\": \"String\",\r\n            \"name\": \"put_value\",\r\n            \"description\": \"Введите значение, которое должно быть присвоено полю\",\r\n            \"help\": \"tpl_set_value\"\r\n        }\r\n    },\r\n    \"events\": [\r\n        {\r\n            \"type\": 2,\r\n            \"field\": \"put_field\"\r\n        }\r\n    ]\r\n}',	'calc',	'calc_7.tpl',	'',	1,	'[1]',	2),
(10,	'Дата: Копировать дату или время',	'if(\'{$put_value}\' == 1){\n    $line[\'{$put_field}\'] = date(\'d.m.Y\', strtotime($line[\'{$cond_field}\']));\n} else if(\'{$put_value}\' == 2){\n    $line[\'{$put_field}\'] = date(\'H:i:s\', strtotime($line[\'{$cond_field}\']));\n}',	'{\n    \"title\": \"Дата: Копировать дату или время\",\n    \"help\": \"tpl_date_to_field\",\n    \"parameters\": {\n        \"cond_field\": {\n            \"type\": \"Field\",\n            \"name\": \"cond_field\",\n            \"type_field\": \"2\",\n            \"description\": \"Выберите поле, из которого будут тянутся данные\",\n            \"help\": \"tpl_source_field\"\n        },\n        \"put_field\": {\n            \"type\": \"Field\",\n            \"name\": \"put_field\",\n            \"type_field\": \"3\",\n            \"description\": \"Выберите поле, которое должно быть заполнено данными\",\n            \"no_system\": true,\n            \"help\": \"tpl_to_field\"\n        },\n        \"put_value\": {\n            \"type\": \"List\",\n            \"name\": \"put_value\",\n            \"values\":{\"1\":\"Дата\",\"2\":\"Время\"},\n            \"description\": \"Выберите данные, которые должны быть переданы\",\n            \"help\": \"tpl_list_field\"\n        }\n    },\n    \"events\": [\n        {\n            \"type\": 3,\n            \"field\": \"cond_field\"\n        }\n    ]\n}',	'calc',	'calc_8.tpl',	'',	1,	'[1]',	13),
(11,	'Текст: Найти и заменить текст',	'$line[\'{$cond_field}\'] = str_replace(\'{$give_value}\', \'{$put_value}\', $line[\'{$cond_field}\']);',	'{\r\n    \"title\": \"Текст: Найти и заменить текст\",\r\n    \"help\": \"tpl_replace\",\r\n    \"parameters\": {\r\n        \"cond_field\": {\r\n            \"type\": \"Field\",\r\n            \"name\": \"cond_field\",\r\n            \"type_field\": \"3\",\r\n            \"description\": \"Выберите поле, которое должно быть изменено\",\r\n            \"help\": \"tpl_to_field\"\r\n        },\r\n        \"give_value\": {\r\n            \"type\": \"String\",\r\n            \"name\": \"give_value\",\r\n            \"description\": \" Введите значение для поиска\",\r\n            \"help\": \"tpl_search_value\"\r\n        },\r\n        \"put_value\": {\r\n            \"type\": \"String\",\r\n            \"name\": \"put_value\",\r\n            \"description\": \"Введите значение для замены\",\r\n            \"help\": \"tpl_replace_value\"\r\n        }\r\n    },\r\n    \"events\": [\r\n        {\r\n            \"type\": 2,\r\n            \"field\": \"cond_field\"\r\n        }\r\n    ]\r\n}',	'calc',	'calc_9.tpl',	'',	1,	'[1]',	7),
(12,	'Среднее значение по подтаблице',	'if($event[\'type\'] === \'delete\'){\r\n    $not_id = \' and id != \' . $line[\'id\'];\r\n}\r\n$filter = (int)\"{$filter}\";\r\n$filter = sql_select_array(FILTERS_TABLE, \'id=\' . $filter);\r\nif ($filter[\'value\']) {\r\n    $filter[\'value\'] = filter_tpl_replace($filter[\'value\']);\r\n} else {\r\n    $filter[\'value\'] = \'1 = 1\';\r\n}\r\n$res = data_select_field($table[\'id\'],\'COUNT(id) AS cnt, SUM(\' . \'{$cond_field}\' . \') AS sum\',\'status = 0 AND \' . \'{$cond_table.link_field_id}\' . \' = \' . $line[\'{$cond_table.link_field_id}\'][\'raw\'] . $not_id . \r\n    \" AND \" . $filter[\'value\']);\r\nif ($row = sql_fetch_assoc($res)) {\r\n    $line[\'{$cond_table.link_field_id}\'][\'{$cond_table.field}\'] = $row[\'sum\'] / $row[\'cnt\'];\r\n} else {\r\n    $line[\'{$cond_table.link_field_id}\'][\'{$cond_table.field}\'] = 0;\r\n}\r\n',	'{\r\n    \"title\": \"Среднее значение по подтаблице\",\r\n    \"help\": \"tpl_average\",\r\n    \"parameters\": {\r\n        \"cond_table\": {\r\n            \"type\": \"TableField\",\r\n            \"name\": \"cond_table\",\r\n            \"only_parent\": \"true\",\r\n            \"description\": \"Выберите таблицу, в которую будет записан результат\",\r\n            \"field_description\": \"Выберите поле, в которое будет записан результат\",\r\n            \"help\": \"tpl_sel_table\",\r\n            \"field_help\": \"tpl_sel_field\"\r\n        },\r\n        \"filter\": {\r\n            \"type\": \"Filter\",\r\n            \"name\": \"filter\",\r\n            \"description\": \"Выберите фильтр\",\r\n            \"help\": \"tpl_sel_filter\"\r\n        },\r\n        \"cond_field\": {\r\n            \"type\": \"Field\",\r\n            \"name\": \"cond_field\",\r\n            \"type_field\": \"1\",\r\n            \"description\": \"Выберите поле, по которому будет считаться среднее арифметическое\",\r\n            \"help\": \"tpl_source_field\"\r\n        }\r\n    },\r\n    \"events\": [\r\n        {\r\n            \"type\": 3,\r\n            \"field\": \"cond_field\"\r\n        },\r\n        {\r\n            \"type\": 4,\r\n            \"field\": \"\"\r\n        },\r\n        {\r\n            \"type\": 7,\r\n            \"field\": \"\"\r\n        }\r\n    ]\r\n}',	'calc',	'calc_10.tpl',	'',	2,	'[2]',	2),
(13,	'Текст: Работа с ФИО',	'$array = explode(\" \", $line[\'{$cond_field}\']);\nif (\'{$put_value}\' === \'1\') {\n    $line[\'{$cond_field}\'] = $array[\'1\'];\n} else {\n    $line[\'{$cond_field}\'] = $array[\'1\'] . \' \' . $array[\'2\'];\n}',	'{\n    \"title\": \"Текст: Работа с ФИО\",\n    \"help\": \"tpl_explode_name\",\n    \"parameters\": {\n        \"cond_field\": {\n            \"type\": \"Field\",\n            \"name\": \"cond_field\",\n            \"type_field\": \"3\",\n            \"description\": \"Выберите поле, содержащее ФИО\",\n            \"help\": \"tpl_source_field\"\n        },\n        \"put_value\": {\n            \"type\": \"List\",\n            \"name\": \"put_value\",\n            \"values\":{\"1\":\"Имя\",\"2\":\"Имя и отчество\"},\n            \"description\": \"Выберите данные, которые останутся в поле.\",\n            \"help\": \"tpl_option\"\n        }\n    },\n    \"events\": [\n        {\n            \"type\": 3,\n            \"field\": \"cond_field\"\n        }\n    ]\n}',	'calc',	'calc_11.tpl',	'',	1,	'[1]',	8),
(14,	'Отмена редактирования поля',	'$line[\'{$field}\'] = $event[\'changed\'][substr(\'{$field}\',1)][\'old\'];',	'{\r\n    \"title\": \"Отмена редактирования поля\",\r\n    \"help\": \"tpl_disabled_edit_field\",\r\n    \"parameters\": {\r\n        \"field\": {\r\n            \"type\": \"Field\",\r\n            \"name\": \"field\",\r\n            \"description\": \"Запрет редактирования поля\",\r\n            \"no_system\": true,\r\n            \"help\": \"tpl_cancel_field\"\r\n        }\r\n    },\r\n    \"events\": [\r\n        {\r\n            \"type\": 3,\r\n            \"field\": \"field\"\r\n        }\r\n    ]\r\n}',	'calc',	'disabled_edit_field.tpl',	'',	6,	'[1]',	1),
(15,	'Перевод суммы из числа в текст',	'$line[\'{$field2}\'] = num2str($line[\'{$field1}\'], \"\", \"\", 0, 0, 0, \"\");\n',	'{\n    \"title\": \"Перевод суммы из числа в текст\",\n    \"help\": \"tpl_num_to_text\",\n    \"parameters\": {\n        \"field1\": {\n            \"type\": \"Field\",\n            \"name\": \"field1\",\n            \"type_field\": \"1\",\n            \"description\": \"Выберите исходное поле(число)\",\n            \"no_system\": true,\n            \"help\": \"tpl_source_field\"\n        },\n        \"field2\": {\n            \"type\": \"Field\",\n            \"name\": \"field2\",\n            \"type_field\": \"3\",\n            \"description\": \"Выберите поле записи суммы (текст)\",\n            \"no_system\": true,\n            \"help\": \"tpl_source_field\"\n        }\n    },\n    \"events\": [\n        {\n            \"type\": 3,\n            \"field\": \"field1\"\n        }\n    ]\n}',	'calc',	'intsum_to_stringsum.tpl',	'',	1,	'[1]',	14),
(16,	'Дата: Установить текущую дату',	'$line[\'{$field2}\'] = date(\'Y-m-d H:i:s\');',	'{\n    \"title\": \"Дата: Установить текущую дату\",\n    \"help\": \"tpl_change_date\",\n    \"parameters\": {\n        \"field2\": {\n            \"type\": \"Field\",\n            \"name\": \"field2\",\n            \"description\": \"Выберите поле, в котором будет изменена дата\",\n            \"type_field\": {\"2\":\"2\"},\n            \"help\": \"tpl_source_field\"\n        }\n    },\n    \"events\": [\n        {\n            \"type\": 2,\n            \"field\": \"field2\"\n        }\n    ]\n}',	'calc',	'calc_13.tpl',	'',	1,	'[1]',	10),
(18,	'Дата: Разница между датами',	'$datetime1 = date_create($line[\'{$field}\']);\n$datetime2 = date_create($line[\'{$field1}\']);\n$interval = date_diff($datetime1, $datetime2);\n$date = $interval->format(\'%a д. %H ч. %I м.\');\n$result = str_replace(\'0 д.,\',\'\',$date);\n$result = str_replace(\'0 м.,\',\'\',$result);\n$result = str_replace(\'0 ч.,\',\'\',$result);\n$line[\'{$value}\'] = $result;',	'{\n    \"title\": \"Дата: Разница между датами\",\n    \"help\": \"tpl_diff_dates\",\n    \"parameters\": {\n        \"field\": {\n            \"type\": \"Field\",\n            \"name\": \"field\",\n            \"type_field\": 2,\n            \"description\": \"Выберите поле первой даты\",\n            \"no_system\": true,\n            \"help\": \"tpl_first_field\"\n        },\n        \"field1\": {\n            \"type\": \"Field\",\n            \"name\": \"field1\",\n            \"type_field\": 2,\n            \"description\": \"Выберите поле второй даты\",\n            \"no_system\": true,\n            \"help\": \"tpl_second_field\"\n        },\n        \"value\": {\n            \"type\": \"Field\",\n            \"name\": \"value\",\n            \"type_field\": 3,\n            \"description\": \"Выберите поле, в которое сохранять значение\",\n            \"no_system\": true,\n            \"help\": \"tpl_to_field\"\n        }\n    },\n    \"events\": [\n        {\n            \"type\": 3,\n            \"field\": \"field\"\n        },\n        {\n            \"type\": 3,\n            \"field\": \"field1\"\n        }\n    ]\n}',	'calc',	'calc_15.tpl',	'',	1,	'[1]',	12),
(20,	'Сохранение пользователя, который измненил поле',	'$line[\'{$value}\'] = $user[\'id\'];',	'{\r\n    \"title\": \"Сохранение пользователя, который измненил поле\",\r\n    \"help\": \"tpl_save_user_changed_field\",\r\n    \"parameters\": {\r\n        \"value\": {\r\n            \"type\": \"Field\",\r\n            \"name\": \"value\",\r\n            \"type_field\": 7,\r\n            \"description\": \"Выберите поле, в которое сохранять значение\",\r\n            \"no_system\": true,\r\n            \"help\": \"tpl_to_field\"\r\n        }\r\n    }\r\n}',	'calc',	'calc_17.tpl',	'',	1,	'[1]',	15),
(21,	'Число: Математическая формула',	'$keys = [];\n$values = [];\n$fields = explode(\'&\', \'{$flex_data}\');\nforeach ($fields as $field => $value) {\n    $parts = explode(\'=\', $value);\n    array_push($keys, $parts[0]);\n    array_push($values, $parts[1]);\n}\n$func_row = str_replace($keys, $values, \'{$func_row}\');\n$keys = [\n  \'{\',\n  \'}\'\n];\n$values = [\n    \'$line[\"\',\n    \'\"]\'\n];\n$func_row = str_replace($keys, $values, $func_row);\n$func = \'$line[\"{$result}\"\"] = \' . $func_row . \';\';\neval($func);\n\n',	'{\n     \"title\": \"Число: Математическая формула\",\n     \"help\": \"tpl_math_formulas\",\n     \"parameters\": {\n         \"field1\": {\n             \"type\": \"Field\",\n             \"name\": \"field1\",\n             \"description\": \"Выберите поле\",\n             \"type_field\": 1,\n             \"help\": \"tpl_sel_field\"\n         },\n         \"func_row\": {\n             \"type\": \"String\",\n             \"name\": \"func_row\",\n             \"description\": \"Поле записи функции\",\n             \"textarea\": true,\n             \"help\": \"tpl_func_field\"\n         },\n         \"result\": {\n             \"type\": \"Field\",\n             \"name\": \"result\",\n             \"description\": \"Выберите поле записи результата\",\n             \"type_field\": 1,\n             \"help\": \"tpl_to_field\"\n         },\n         \"flex_data\": {\n             \"type\": \"String\",\n             \"name\": \"flex_data\",\n             \"description\": \"\",\n             \"help\": \"tpl_flex_string\"\n         }\n     },\n    \"events\": [\n        {\n            \"type\": 3,\n            \"field\": \"field1\"\n        }\n    ]\n}\n',	'calc',	'math_functions.tpl',	'',	1,	'[1]',	6),
(22,	'Сброс нумерации с нового года',	'if ($event[\'line_id\'] === \'new\') {\n    $res = data_select($table_id,\'status=0 and id!=\' . $line[\'id\'] . \' ORDER BY id DESC LIMIT 1\');\n    $row = sql_fetch_assoc($res);\n    if (date(\'Y\',strtotime($row[\'add_time\'])) >= date(\'Y\')) {\n        $line[\'{$field}\'] = $row[\'{$field}\'] + 1;\n    } else {\n        $line[\'{$field}\'] = 1;\n    }\n}\n',	'{\n    \"title\": \"Сброс нумерации с нового года\",\n    \"help\": \"tpl_calc_numeric\",\n    \"parameters\": {\n        \"field\": {\n            \"type\": \"Field\",\n            \"name\": \"field\",\n            \"description\": \"Выберите поле\",\n            \"type_field\": 1,\n            \"help\": \"tpl_reset_field\"\n        }\n    },\n    \"events\": [\n        {\n            \"type\": 1,\n            \"field\": \"\"\n        }\n    ]\n}\n',	'calc',	'autonum.tpl',	'',	6,	'[1]',	2),
(24,	'Очистить поле',	'$line[\'{$field1}\'] = \'\';',	'{\r\n    \"title\": \"Очистить поле\",\r\n    \"help\": \"tpl_clear_field\",\r\n    \"parameters\": {\r\n        \"field1\": {\r\n            \"type\": \"Field\",\r\n            \"name\": \"field1\",\r\n            \"description\": \"Выберите поле\",\r\n            \"no_system\": true,\r\n            \"help\": \"tpl_clear_field\"\r\n        }\r\n    }\r\n}',	'button',	'field_clearing.tpl',	'',	1,	'[]',	3),
(25,	'Копировать поле из основной записи в подтаблицу',	'data_update(\r\n    {$subtable.table},\r\n    array(\'{$subtable.field}\' => $line[\'{$field}\']),\r\n    \'status = 0 AND {$subtable.link_field_id} = \' . $line[\'id\']\r\n);',	'{\r\n    \"title\": \"Копировать поле из основной записи в подтаблицу\",\r\n    \"help\": \"tpl_from_table_in_subtable\",\r\n    \"parameters\": {\r\n        \"field\": {\r\n            \"type\": \"Field\",\r\n            \"name\": \"field\",\r\n            \"description\": \"Выберите поле, из которого тянуть данные\",\r\n            \"no_system\": true,\r\n            \"help\": \"tpl_source_field\"\r\n        },\r\n        \"subtable\": {\r\n            \"type\": \"TableField\",\r\n            \"name\": \"subtable\",\r\n            \"description\": \"Выберите подтаблицу\",\r\n            \"field_description\": \"Выберите поле, в которое тянуть значение\",\r\n            \"no_system\": true,\r\n            \"only_subtables\": true,\r\n            \"help\": \"tpl_to_table\",\r\n            \"field_help\": \"tpl_to_field\"\r\n        }\r\n    }\r\n}',	'button',	'from_table_in_subtable.tpl',	'',	2,	'[]',	1),
(26,	'Отправить шаблон рассылки',	'$true = send_template({$field}, \"id = \" . $line[\'id\']);\r\nif ($true) {\r\n    $display_message .= \"<a style=\'font-size:16px;\' href=edit_mailing.php>\";\r\n    $display_message .= $lang[\'Active_mailer\'] . \"</a>\";\r\n    display_notification($display_message, 1);\r\n}',	'{\r\n    \"title\": \"Отправить шаблон рассылки\",\r\n    \"help\": \"tpl_send\",\r\n    \"parameters\": {\r\n        \"field\": {\r\n            \"type\": \"Template\",\r\n            \"name\": \"field\",\r\n            \"description\": \"Шаблон рассылки\",\r\n            \"tpl_type\": \"send\",\r\n            \"help\": \"tpl_send_template\"\r\n        }\r\n    }\r\n}',	'button',	'tpl_send.tpl',	'',	4,	'[]',	1),
(27,	'Изменить поля в связанной таблице',	'$line[\'{$gen_field.link_field_id}\'][\'{$gen_field.field}\'] = $line[\'{$cur_field}\'];',	'{\n    \"title\": \"Изменить поля в связанной таблице\",\n    \"help\": \"tpl_link_to_table\",\n    \"parameters\": {\n        \"cur_field\": {\n            \"type\": \"Field\",\n            \"name\": \"cur_field\",\n            \"description\": \"Выберите поле, из которого тянуть значение\",\n            \"no_system\": true,\n            \"help\": \"tpl_source_field\"\n        },\n        \"gen_field\": {\n            \"type\": \"TableField\",\n            \"name\": \"gen_field\",\n            \"description\": \"Выберите таблицу, в которое сохранять\",\n            \"field_description\": \"Выберите поле, в которое сохранять\",\n            \"only_parent\": \"true\",\n            \"help\": \"tpl_to_table\",\n            \"field_help\": \"tpl_to_field\"\n        }\n    }\n}',	'button',	'tpl_link_to_table.tpl',	'',	3,	'[]',	2),
(28,	'Копировать значение поля до изменения',	'$line[\'{$field}\'] = $event[\'changed\'][substr(\'{$field2}\',1)][\'old\'];',	'{\n    \"title\": \"Копировать значение поля до изменения\",\n    \"help\": \"tpl_save_old_value\",\n    \"parameters\": {\n        \"field\": {\n            \"type\": \"Field\",\n            \"name\": \"field\",\n            \"description\": \"Выберите поле записи\",\n            \"no_system\": true,\n            \"help\": \"tpl_result_field\"\n        },\n        \"field2\": {\n            \"type\": \"Field\",\n            \"name\": \"field2\",\n            \"description\": \"Выберите поле, чье старое значение нужно сохранить\",\n            \"no_system\": true,\n            \"help\": \"tpl_old_field\"\n        }\n    },\n    \"events\": [\n        {\n            \"type\": 3,\n            \"field\": \"field2\"\n        }\n    ]\n}',	'calc',	'save_old_value.tpl',	'',	6,	'[1]',	3),
(29,	'Текст: Найти и заменить текст',	'$line[\'{$cond_field}\'] = str_replace(\'{$give_value}\', \'{$put_value}\', $line[\'{$cond_field}\']);',	'{\n    \"title\": \"Текст: Найти и заменить текст\",\n    \"help\": \"tpl_replace\",\n    \"parameters\": {\n        \"cond_field\": {\n            \"type\": \"Field\",\n            \"name\": \"cond_field\",\n            \"type_field\": \"3\",\n            \"description\": \"Выберите поле, которое должно быть изменено\",\n            \"help\": \"tpl_to_field\"\n        },\n        \"give_value\": {\n            \"type\": \"String\",\n            \"name\": \"give_value\",\n            \"description\": \" Введите значение для поиска\",\n            \"help\": \"tpl_search_val\"\n        },\n        \"put_value\": {\n            \"type\": \"String\",\n            \"name\": \"put_value\",\n            \"description\": \"Введите значение для замены\",\n            \"help\": \"tpl_put_val\"\n        }\n    }\n}',	'button',	'tpl_replace.tpl',	'',	1,	'[]',	9),
(30,	'Дата: Изменить дату',	'$line[\'{$cur_field3}\'] = date(\'Y-m-d H:i:s\', strtotime($line[\'{$cur_field1}\']) {$operand} $line[\'{$cur_field2}\'] * 3600 * 24);',	'{\n    \"title\": \"Дата: Изменить дату\",\n    \"help\": \"tpl_add_to_date\",\n    \"parameters\": {\n        \"cur_field1\": {\n            \"type\": \"Field\",\n            \"name\": \"cur_field1\",\n            \"description\": \"Выберите исходную дату\",\n            \"type_field\": [\n                2,\n                12\n            ],\n            \"help\": \"tpl_source_field\"\n        },\n        \"operand\": {\n            \"type\": \"List\",\n            \"name\": \"operand\",\n            \"description\": \"Выберите опцию\",\n            \"values\": {\n              \"+\": \"Прибавить\",\n              \"-\": \"Отнять\"\n            },\n            \"help\": \"tpl_option\"\n        },\n        \"cur_field2\": {\n            \"type\": \"Field\",\n            \"name\": \"cur_field2\",\n            \"description\": \"Выберите поле с числом дней\",\n            \"type_field\": 1,\n            \"help\": \"tpl_field_days\"\n        },\n        \"cur_field3\": {\n            \"type\": \"Field\",\n            \"name\": \"cur_field3\",\n            \"description\": \"Выберите поле записи результата\",\n            \"type_field\": 2,\n            \"help\": \"tpl_to_field\"\n        }\n    }\n}',	'button',	'tpl_add_to_date.tpl',	'',	1,	'[]',	8),
(31,	'Копировать поле из основной записи в подтаблицу',	'if ({$operand} == 1) {\n    data_update(\n        {$subtable.table},\n        EVENTS_ENABLE,\n        array(\'{$subtable.field}\' => $line[\'{$field}\']),\n        \'status = 0 AND {$subtable.link_field_id} = \' . $line[\'id\']\n    );\n} else {\n    data_update(\n        {$subtable.table},\n        array(\'{$subtable.field}\' => $line[\'{$field}\']),\n        \'status = 0 AND {$subtable.link_field_id} = \' . $line[\'id\']\n    );\n}',	'{\n    \"title\": \"Копировать поле из основной записи в подтаблицу\",\n    \"help\": \"tpl_from_table_in_subtable\",\n    \"parameters\": {\n        \"field\": {\n            \"type\": \"Field\",\n            \"name\": \"field\",\n            \"description\": \"Выберите поле, из которого тянуть данные\",\n            \"no_system\": true,\n            \"help\": \"tpl_source_field\"\n        },\n        \"subtable\": {\n            \"type\": \"TableField\",\n            \"name\": \"subtable\",\n            \"description\": \"Выберите подтаблицу\",\n            \"field_description\": \"Выберите поле, в которое тянуть значение\",\n            \"no_system\": true,\n            \"only_subtables\": true,\n            \"help\": \"tpl_sel_table\",\n            \"field_help\": \"tpl_result_field\"\n        },\n        \"operand\": {\n            \"type\": \"List\",\n            \"name\": \"operand\",\n            \"description\": \"Запуск вычислений\",\n            \"values\": {\n              \"1\": \"Да\",\n              \"2\": \"Нет\"\n            },\n            \"help\": \"tpl_event_on\"\n        }\n    },\n    \"events\": [\n        {\n            \"type\": 3,\n            \"field\": \"field\"\n        }\n    ]\n}',	'calc',	'from_table_in_subtable.tpl',	'',	2,	'[4]',	3),
(33,	'Удалить запись',	'if ($line[\'status\'] != 2) {\r\n    $true = data_update(\r\n        $table_id,\r\n        array(\r\n            \'status\' => 2\r\n        ),\r\n        \'status IN (0,1) AND id = \' . $line[\'id\']\r\n    );\r\n}',	'{\r\n    \"title\": \"Удаление записи\",\r\n    \"help\": \"note_delete\"\r\n}',	'button',	'null.tpl',	'',	5,	'[]',	1),
(34,	'Архивировать запись',	'if ($line[\'status\'] != 1) {\r\n    $true = data_update(\r\n        $table_id,\r\n        array(\r\n            \'status\' => 1\r\n        ),\r\n        \'status IN (0,2) AND id = \' . $line[\'id\']\r\n    );\r\n}',	'{\r\n    \"title\": \"Архивация записи\",\r\n    \"help\": \"note_archive\"\r\n}',	'button',	'null.tpl',	'',	5,	'[]',	2),
(35,	'Восстановить запись',	'if ($line[\'status\'] != 0) {\n    $true = data_update(\n        $table_id,\n        array(\n            \'status\' => 0\n        ),\n        \'status IN (1,2) AND id = \' . $line[\'id\']\n    );\n}',	'{\n    \"title\": \"Восстановить запись\",\n    \"help\": \"note_restore\"\n}',	'button',	'null.tpl',	'',	5,	'[]',	3),
(36,	'Количество записей в подтаблице',	'if ($event[\'type\'] === \'delete\') {\n    $deleteCond = \"AND id <> $ID\";\n}\n$filter = (int)\"{$filter}\";\n$filter = sql_select_array(FILTERS_TABLE, \'id=\' . $filter);\nif ($filter[\'value\']) {\n    $filter[\'value\'] = filter_tpl_replace($filter[\'value\']);\n} else {\n    $filter[\'value\'] = \'1 = 1\';\n}\n$pre = data_select_field(\n    $table_id,\n    \"COUNT(id) AS cnt\",\n    \"status = 0 \" . $deleteCond . \" AND {$cond_table.link_field_id} = \" . $line[\'{$cond_table.link_field_id}\'][\'raw\'] . \n    \" AND \" . $filter[\'value\']\n);\n$res = sql_fetch_assoc($pre);\n\nif ({$operand} == 1) {\n    $filter_str = \'\';\n    if (isset($filter)) {\n        $filter_str = \'&filter=\' . $filter[\'id\'];\n    }\n    $line_link = substr(\"{$cond_table.link_field_id}\", 1);\n    $url = $config[\'site_url\'] . \"/fields.php?table=\" . $table_id . \"&rel_search&rel_table={$cond_table.table}&rel_line=\" . \n    $line[\'{$cond_table.link_field_id}\'][\'raw\'] . \"&rel_field=\" . $line_link . $filter_str;\n    $line[\'{$cond_table.link_field_id}\'][\'{$cond_table.field}\'] = \"<a href=\'\" . $url . \"\'>\" . $res[\'cnt\'] . \"</a>\";\n} else {\n    $line[\'{$cond_table.link_field_id}\'][\'{$cond_table.field}\'] = $res[\'cnt\'];\n}',	'{\n    \"title\": \"Количество записей в подтаблице\",\n    \"help\": \"subnotes_count\",\n    \"parameters\": {\n        \"cond_table\": {\n            \"type\": \"TableField\",\n            \"name\": \"cond_table\",\n            \"only_parent\": \"true\",\n            \"description\": \"Выберите таблицу, в которую будет записан результат\",\n            \"type_field\": \"3\",\n            \"help\": \"main_talbe\",\n            \"field_description\": \"Выберите поле, в которое будет записан результат\",\n            \"field_help\": \"main_table_field\"\n        },\n        \"filter\": {\n            \"type\": \"Filter\",\n            \"name\": \"filter\",\n            \"description\": \"Выберите фильтр\",\n            \"help\": \"filter_help\"\n        },\n        \"operand\": {\n            \"type\": \"List\",\n            \"name\": \"operand\",\n            \"description\": \"Добавить ссылку на записи\",\n            \"values\": {\n              \"1\": \"Да\",\n              \"2\": \"Нет\"\n            },\n            \"help\": \"link_in_res_table\"\n        }\n    },\n    \"events\": [\n        {\n            \"type\": 1,\n            \"field\": \"\"\n        },\n        {\n            \"type\": 4,\n            \"field\": \"\"\n        },\n        {\n            \"type\": 7,\n            \"field\": \"\"\n        }\n    ]\n}',	'calc',	'subnotes_count.tpl',	'',	2,	'[2]',	4),
(37,	'Удалить запись',	'if ($line[\'status\'] != 2) {\n    $true = data_update(\n        $table_id,\n        array(\n            \'status\' => 2\n        ),\n        \'status IN (0,1) AND id = \' . $line[\'id\']\n    );\n}',	'{\n    \"title\": \"Удалить запись\",\n    \"help\": \"note_delete\",\n    \"events\": [\n        {\n            \"type\": 1,\n            \"field\": \"\"\n        }\n    ]\n}',	'calc',	'null.tpl',	'',	5,	'[1]',	1),
(38,	'Архивировать запись',	'if ($line[\'status\'] != 1) {\n    $true = data_update(\n        $table_id,\n        array(\n            \'status\' => 1\n        ),\n        \'status IN (0,2) AND id = \' . $line[\'id\']\n    );\n}',	'{\n    \"title\": \"Архивировать запись\",\n    \"help\": \"note_archive\",\n    \"events\": [\n        {\n            \"type\": 1,\n            \"field\": \"\"\n        }\n    ]\n}',	'calc',	'null.tpl',	'',	5,	'[1]',	2),
(39,	'Восстановить запись',	'if ($line[\'status\'] != 0) {\n    $true = data_update(\n        $table_id,\n        array(\n            \'status\' => 0\n        ),\n        \'status IN (1,2) AND id = \' . $line[\'id\']\n    );\n}',	'{\n    \"title\": \"Восстановить запись\",\n    \"help\": \"note_restore\",\n    \"events\": [\n        {\n            \"type\": 1,\n            \"field\": \"\"\n        }\n    ]\n}',	'calc',	'null.tpl',	'',	5,	'[1]',	3),
(40,	'Сохранить шаблон печати в файл',	'$form = sql_select_array(FORMS_TABLE,\r\n    \'id = {$print_tpl}\'\r\n);\r\nif ($form[\'type_form\'] == 2 && $form[\'pdf_import\'] == 1) {\r\n    include $config[\'site_path\'] . \"/include/mpdf/mpdf.php\";\r\n    $mpdf = new mPDF(\"\", \"A4\" . $form[\'orientation\'], \"\", \"\", $form[\'margin_left\'], $form[\'margin_right\'], $form[\'margin_top\'], $form[\'margin_bottom\']);\r\n    $mpdf->SetDisplayMode(\'fullwidth\');\r\n    $file_name = $form[\'doc_name\'] . \'.pdf\';\r\n    $form_text = \'\';\r\n    if ($form[\'head_form\'] != \'\') {\r\n        $mpdf->WriteHTML(form_template($form, $line, \"head_form\"));\r\n    }\r\n    $mpdf->WriteHTML(form_template($form, $line, \"body_form\"));\r\n    if ($form[\'foot_form\'] != \'\') {\r\n        $mpdf->WriteHTML(form_template($form, $line, \"foot_form\"));\r\n    }\r\n    $form_text = $mpdf->Output($file_name, \"S\");\r\n    $save_link = substr(\"{$field}\", 1);\r\n    save_data_file($save_link, $ID, $file_name, $form_text);\r\n    $line[\'{$field}\'] = $file_name;\r\n} else {\r\n    if ($form[\'type_form\'] == 5) {\r\n        $file_name = $form[\'doc_name\'] . \'.docx\';\r\n    } else if ($form[\'type_form\'] == 3) {\r\n        $file_name = $form[\'doc_name\'] . \'.rtf\';\r\n    } else if ($form[\'type_form\'] == 4) {\r\n        $file_name = $form[\'doc_name\'] . \'.odt\';\r\n    } else if ($form[\'type_form\'] == 6) {\r\n        $file_name = $form[\'doc_name\'] . \'.xls\';\r\n    }\r\n    $save_link = substr(\"{$field}\", 1);\r\n    save_data_file($save_link, $ID, $file_name, form_template($form, $line, \'body_form\'));\r\n    $line[\'{$field}\'] = $file_name;\r\n}',	'{\r\n    \"title\": \"Сохранить шаблон печати в файл\",\r\n    \"help\": \"tpl_print_save\",\r\n    \"parameters\": {\r\n        \"print_tpl\": {\r\n            \"type\": \"Template\",\r\n            \"name\": \"print_tpl\",\r\n            \"description\": \"Выберите шаблон печати\",\r\n            \"tpl_type\": \"print\",\r\n            \"help\": \"tpl_print_calc_save\"\r\n        },\r\n        \"field\": {\r\n            \"type\": \"Field\",\r\n            \"name\": \"field\",\r\n            \"description\": \"Выберите поле для сохранения шаблона\",\r\n            \"type_field\": \"6\",\r\n            \"help\": \"tpl_print_calc_field\"\r\n        }\r\n    }\r\n}',	'button',	'save_tpl_in_field.tpl',	'',	4,	'[]',	3),
(41,	'Распечатать шаблон печати',	'$print_tpl = {$print_tpl};\r\n?>\r\n<script>\r\nvar url = \'<?=$config[\"site_url\"]?>/forms.php?table=<?=$table_id?>&mode=print&form=<?=$print_tpl?>\';\r\nwindow.open(url);\r\n</script>\r\n<?php',	'{\r\n    \"title\": \"Распечатать шаблон печати\",\r\n    \"help\": \"tpl_print\",\r\n    \"parameters\": {\r\n        \"print_tpl\": {\r\n            \"type\": \"Template\",\r\n            \"name\": \"print_tpl\",\r\n            \"description\": \"Выберите шаблон печати\",\r\n            \"tpl_type\": \"print\",\r\n            \"help\": \"tpl_print_help\"\r\n        }\r\n    }\r\n}',	'button',	'tpl_print.tpl',	'',	4,	'[]',	2),
(42,	'Копировать поле из подтаблицы в основную запись',	'if ($event[\'type\'] === \'delete\') {\n    $deleteCond = \" AND id <> $ID\";\n}\n$filter = sql_select_array(FILTERS_TABLE, \'id={$filter}\');\n$result = data_select_field($table_id, \'{$cond_field}\',\n    \'status = 0 AND {$cond_table.link_field_id} = \' . intval($line[\'{$cond_table.link_field_id}\'][\'raw\']) . $deleteCond .\n    ($filter[\'value\'] ? \' AND (\' . filter_tpl_replace($filter[\'value\']) . \')\' : \'\') . \' ORDER BY id {if $record == \"last\"}DESC{/if} LIMIT 1\');\n$row = sql_fetch_assoc($result);\n{if $add_value == \'yes\'}\nif ($line[\'{$cond_table.link_field_id}\'][\'{$cond_table.field}\'] != \'\') {\n    $line[\'{$cond_table.link_field_id}\'][\'{$cond_table.field}\'] .= \"{$add_delim}\" . $row[\'{$cond_field}\'];\n} else {\n    $line[\'{$cond_table.link_field_id}\'][\'{$cond_table.field}\'] = $row[\'{$cond_field}\'];\n}\n{else}\n$line[\'{$cond_table.link_field_id}\'][\'{$cond_table.field}\'] = $row[\'{$cond_field}\'];\n{/if}',	'{\n    \"title\": \"Копировать поле из подтаблицы в основную запись\",\n    \"help\": \"last_record_data\",\n    \"parameters\": {\n        \"cond_table\": {\n            \"type\": \"TableField\",\n            \"name\": \"cond_table\",\n            \"only_parent\": \"true\",\n            \"description\": \"Выберите таблицу, в которую будет записан результат\",\n            \"field_description\": \"Выберите поле, в которое будет записан результат\",\n            \"help\": \"tpl_parent_table\",\n            \"field_help\": \"tpl_parent_field\"\n         },\n        \"filter\": {\n            \"type\": \"Filter\",\n            \"name\": \"filter\",\n            \"description\": \"Выберите фильтр\",\n            \"help\": \"tpl_filter\"\n        },\n        \"cond_field\": {\n            \"type\": \"Field\",\n            \"name\": \"cond_field\",\n            \"description\": \"Выберите поле\",\n            \"help\": \"tpl_field_out\"\n        },\n        \"record\": {\n            \"type\": \"List\",\n            \"name\": \"record\",\n            \"description\": \"Выберите запись\",\n            \"help\": \"tpl_record\",\n            \"values\": {\n                \"last\": \"последняя\",\n                \"first\": \"первая\"\n            }\n        },\n        \"add_value\": {\n            \"type\": \"List\",\n            \"name\": \"add_value\",\n            \"description\": \"Добавлять к существующему значению\",\n            \"help\": \"tpl_add_value\",\n            \"values\": {\n                \"no\": \"нет\",\n                \"yes\": \"да\"\n            }\n        },\n        \"add_delim\": {\n            \"type\": \"String\",\n            \"name\": \"add_delim\",\n            \"description\": \"Разделитель при добавлении\",\n            \"help\": \"tpl_add_delim\"\n        }\n    },\n    \"events\": [\n        {\n            \"type\": 3,\n            \"field\": \"cond_field\"\n        },\n        {\n            \"type\": 4,\n            \"field\": \"\"\n        },\n        {\n            \"type\": 7,\n            \"field\": \"\"\n        }\n    ]\n}',	'calc',	'last_record_data.tpl',	'',	2,	'[2]',	5),
(43,	'Копировать поле из подтаблицы в основную запись',	'$result = data_select_field({$sub_table.subTable}, \'{$sub_table.subField}\',\r\n    \'status = 0 AND {$sub_table.link_field_id} = \' . $ID . \' ORDER BY id {if $sub_record == \"last\"}DESC{/if} LIMIT 1\');\r\n$row = sql_fetch_assoc($result);\r\n{if $add_value == \'yes\'}\r\nif ($line[\'{$res_field}\'] != \'\') {\r\n    $line[\'{$res_field}\'] .= \"{$add_delim}\" . $row[\'{$sub_table.subField}\'];\r\n} else {\r\n    $line[\'{$res_field}\'] = $row[\'{$sub_table.subField}\'];\r\n}\r\n{else}\r\n$line[\'{$res_field}\'] = $row[\'{$sub_table.subField}\'];\r\n{/if}',	'{\r\n    \"title\": \"Копировать поле из подтаблицы в основную запись\",\r\n    \"help\": \"last_record_data\",\r\n    \"parameters\": {\r\n        \"sub_table\": {\r\n            \"type\": \"SubField\",\r\n            \"name\": \"sub_table\",\r\n            \"description\": \"Выберите подтаблицу\",\r\n            \"sub_description\": \"Выберите поле подтаблицы\",\r\n            \"help\": \"tpl_sub_table\",\r\n            \"field_help\": \"tpl_sub_field\"\r\n        },\r\n        \"sub_record\": {\r\n            \"type\": \"List\",\r\n            \"name\": \"sub_record\",\r\n            \"description\": \"Выберите запись подтаблицы\",\r\n            \"help\": \"tpl_record\",\r\n            \"values\": {\r\n                \"last\": \"последняя\",\r\n                \"first\": \"первая\"\r\n            }\r\n        },\r\n        \"res_field\": {\r\n            \"type\": \"Field\",\r\n            \"name\": \"res_field\",\r\n            \"description\": \"Выберите поле, в которое будет записан результат\",\r\n            \"help\": \"tpl_field_in\"\r\n        },\r\n        \"add_value\": {\r\n            \"type\": \"List\",\r\n            \"name\": \"add_value\",\r\n            \"description\": \"Добавлять к существующему значению\",\r\n            \"help\": \"tpl_add_value\",\r\n            \"values\": {\r\n                \"no\": \"нет\",\r\n                \"yes\": \"да\"\r\n            }\r\n        },\r\n        \"add_delim\": {\r\n            \"type\": \"String\",\r\n            \"name\": \"add_delim\",\r\n            \"description\": \"Разделитель при добавлении\",\r\n            \"help\": \"tpl_add_delim\"\r\n        }\r\n    }\r\n}',	'button',	'last_record_data.tpl',	'',	2,	'[2]',	2),
(50,	'Копировать запись',	'$sel_table = (int)\'{$correlation[\'table\']}\';\r\n$sel_fields = [\r\n    {foreach from = $correlation[\'to_field\'] item = field_id}(int)\'{$field_id}\', {/foreach}\r\n];\r\n$sel_def_vals = [\r\n    {foreach from = $correlation[\'def_val\'] item = field_id}\'{$field_id}\', {/foreach}\r\n];\r\n$cur_fields = [\r\n    {foreach from = $correlation[\'cur_field\'] item = field_id}(int)\'{$field_id}\', {/foreach}\r\n];\r\nif ($sel_table > 0) {\r\n    $ins_arr = [];\r\n    foreach ($sel_fields as $num => $field_id) {\r\n        if (!$field_id) continue;\r\n        $def_val = $sel_def_vals[$num];\r\n        if ($def_val) {\r\n             $ins_arr[\'f\' . $field_id] = $def_val;\r\n        } else {\r\n             if (is_array($line[$cur_field[$num]])) {\r\n                 $ins_arr[\'f\' . $field_id] = $line[\'f\' . $cur_fields[$num]][\'raw\'];\r\n             } else {\r\n                 $ins_arr[\'f\' . $field_id] = $line[\'f\' . $cur_fields[$num]];\r\n             }\r\n        }\r\n    }\r\n    if (count($ins_arr) > 0) {\r\n        if ($new_id = data_insert($sel_table, EVENTS_ENABLE, $ins_arr)) {\r\n{if $addit neq \'stop\'}\r\n{if $addit eq \'go_edit\'}\r\n            header(\'Location: \' . $config[\'site_root\'] . \'/view_line2.php?table=\' . $sel_table . \'&line=\' . $new_id . \'&edit_mode=on\');\r\n{else}\r\n            header(\'Location: \' . $config[\'site_root\'] . \'/view_line2.php?table=\' . $sel_table . \'&line=\' . $new_id);\r\n{/if}\r\n{/if}\r\n        } else {\r\n            $error_trace[] = true;\r\n        }\r\n    } else {\r\n        $error_trace[] = true;\r\n    }\r\n} else {\r\n    $error_trace[] = true;\r\n}\r\n',	'{\r\n    \"title\": \"Копировать запись\",\r\n    \"help\": \"tpl_copy_line\",\r\n    \"parameters\": {\r\n        \"correlation\": {\r\n            \"type\": \"Correlation\",\r\n            \"name\": \"correlation\",\r\n            \"description\": \"Таблица-получатель\",\r\n            \"help\": \"tpl_table_copy_line\"\r\n        },\r\n        \"addit\": {\r\n            \"type\": \"List\",\r\n            \"name\": \"addit\",\r\n            \"description\": \"Опция\",\r\n            \"help\": \"tpl_help\",\r\n            \"values\": {\r\n              \"go_edit\": \"Переходить на созданную запись в режиме редактирования\",\r\n              \"go\": \"Переходить на созданную запись\",\r\n              \"stop\": \"Оставаться в текущей записи\"\r\n            }\r\n        }\r\n    }\r\n}',	'button',	'copy_line.tpl',	'',	1,	'[]',	4),
(51,	'Сохранить шаблон печати в файл',	'$form = sql_select_array(FORMS_TABLE,\r\n    \'id = {$print_tpl}\'\r\n);\r\nif ($form[\'type_form\'] == 2 && $form[\'pdf_import\'] == 1) {\r\n    include $config[\'site_path\'] . \"/include/mpdf/mpdf.php\";\r\n    $mpdf = new mPDF(\"\", \"A4\" . $form[\'orientation\'], \"\", \"\", $form[\'margin_left\'], $form[\'margin_right\'], $form[\'margin_top\'], $form[\'margin_bottom\']);\r\n    $mpdf->SetDisplayMode(\'fullwidth\');\r\n    $file_name = $form[\'doc_name\'] . \'.pdf\';\r\n    $form_text = \'\';\r\n    if ($form[\'head_form\'] != \'\') {\r\n        $mpdf->WriteHTML(form_template($form, $line, \"head_form\"));\r\n    }\r\n    $mpdf->WriteHTML(form_template($form, $line, \"body_form\"));\r\n    if ($form[\'foot_form\'] != \'\') {\r\n        $mpdf->WriteHTML(form_template($form, $line, \"foot_form\"));\r\n    }\r\n    $form_text = $mpdf->Output($file_name, \"S\");\r\n    $save_link = substr(\"{$field}\", 1);\r\n    save_data_file($save_link, $ID, $file_name, $form_text);\r\n    $line[\'{$field}\'] = $file_name;\r\n} else {\r\n    if ($form[\'type_form\'] == 5) {\r\n        $file_name = $form[\'doc_name\'] . \'.docx\';\r\n    } else if ($form[\'type_form\'] == 3) {\r\n        $file_name = $form[\'doc_name\'] . \'.rtf\';\r\n    } else if ($form[\'type_form\'] == 4) {\r\n        $file_name = $form[\'doc_name\'] . \'.odt\';\r\n    } else if ($form[\'type_form\'] == 6) {\r\n        $file_name = $form[\'doc_name\'] . \'.xls\';\r\n    }\r\n    $save_link = substr(\"{$field}\", 1);\r\n    save_data_file($save_link, $ID, $file_name, form_template($form, $line, \'body_form\'));\r\n    $line[\'{$field}\'] = $file_name;\r\n}',	'{\r\n    \"title\": \"Сохранить шаблон печати в файл\",\r\n    \"help\": \"tpl_print_save\",\r\n    \"parameters\": {\r\n        \"print_tpl\": {\r\n            \"type\": \"Template\",\r\n            \"name\": \"print_tpl\",\r\n            \"description\": \"Выберите шаблон печати\",\r\n            \"tpl_type\": \"print\",\r\n            \"help\": \"tpl_print_calc_save\"\r\n        },\r\n        \"field\": {\r\n            \"type\": \"Field\",\r\n            \"name\": \"field\",\r\n            \"description\": \"Выберите поле для сохранения шаблона\",\r\n            \"type_field\": \"6\",\r\n            \"help\": \"tpl_print_calc_field\"\r\n        }\r\n    }\r\n}',	'calc',	'save_tpl_in_field.tpl',	'',	4,	'[1]',	3),
(60,	'Создать запись в подтаблице',	'$sel_table = (int)\'{$correlation[\'table\']}\';\r\n$sel_fields = [\r\n    {foreach from = $correlation[\'to_field\'] item = field_id}(int)\'{$field_id}\', {/foreach}\r\n];\r\n$sel_def_vals = [\r\n    {foreach from = $correlation[\'def_val\'] item = field_id}\'{$field_id}\', {/foreach}\r\n];\r\n$cur_fields = [\r\n    {foreach from = $correlation[\'cur_field\'] item = field_id}(int)\'{$field_id}\', {/foreach}\r\n];\r\n$link_field = (int)\'{$correlation[\'link_field_id\']}\';\r\nif ($sel_table > 0) {\r\n    $ins_arr = [];\r\n    foreach ($sel_fields as $num => $field_id) {\r\n        if (!$field_id) continue;\r\n        $def_val = $sel_def_vals[$num];\r\n        if ($def_val) {\r\n             $ins_arr[\'f\' . $field_id] = $def_val;\r\n        } else {\r\n             if (is_array($line[$cur_field[$num]])) {\r\n                 $ins_arr[\'f\' . $field_id] = $line[\'f\' . $cur_fields[$num]][\'raw\'];\r\n             } else {\r\n                 $ins_arr[\'f\' . $field_id] = $line[\'f\' . $cur_fields[$num]];\r\n             }\r\n        }\r\n    }\r\n    if ($link_field) {\r\n        $ins_arr[\'f\' . $link_field] = $ID;\r\n    }\r\n    if (count($ins_arr) > 0) {\r\n        data_insert($sel_table, EVENTS_ENABLE, $ins_arr);\r\n    } else {\r\n        $error_trace[] = true;\r\n    }\r\n} else {\r\n    $error_trace[] = true;\r\n}\r\n',	'{\r\n    \"title\": \"Создать запись в подтаблице\",\r\n    \"help\": \"tpl_copy_line\",\r\n    \"parameters\": {\r\n        \"correlation\": {\r\n            \"type\": \"Correlation\",\r\n            \"name\": \"correlation\",\r\n            \"description\": \"Таблица-получатель\",\r\n            \"help\": \"tpl_table_copy_line\",\r\n            \"only_subtables\": true\r\n        }\r\n    }\r\n}',	'button',	'copy_line_subtable.tpl',	'',	2,	'[]',	0),
(61,	'Распечатать шаблон печати',	'$print_tpl = {$print_tpl};\n?>\n<script>\nvar url = \'<?=$config[\"site_url\"]?>/forms.php?table=<?=$table_id?>&mode=print&form=<?=$print_tpl?>\';\nwindow.open(url);\n</script>\n<?php',	'{\n    \"title\": \"Распечатать шаблон печати\",\n    \"help\": \"tpl_print\",\n    \"parameters\": {\n        \"print_tpl\": {\n            \"type\": \"Template\",\n            \"name\": \"print_tpl\",\n            \"description\": \"Выберите шаблон печати\",\n            \"tpl_type\": \"print\",\n            \"help\": \"tpl_print_help\"\n        }\n    }\n}',	'calc',	'tpl_print.tpl',	'',	4,	'[1]',	2),
(62,	'Изменить поле',	'$line[\'{$put_field}\'] = \'{$put_value}\';',	'{\r\n    \"title\": \"Изменить поле\",\r\n    \"help\": \"tpl_field_change\",\r\n    \"parameters\": {\r\n        \"put_field\": {\r\n        \"type\": \"Field\",\r\n            \"name\": \"put_field\",\r\n            \"description\": \"Выберите поле для замены значения\",\r\n            \"help\": \"tpl_put_field\",\r\n            \"no_system\": true\r\n        },\r\n        \"put_value\": {\r\n        \"type\": \"String\",\r\n            \"name\": \"put_value\",\r\n            \"description\": \"Введите значение, которое должно быть присвоено полю\",\r\n            \"help\": \"tpl_put_value\"\r\n        }\r\n    }\r\n}',	'button',	'field_change.tpl',	'',	1,	'[]',	2),
(74,	'Копировать значение поля до изменения',	'$line[\'{$field}\'] = $event[\'changed\'][substr(\'{$field2}\',1)][\'old\'];',	'{\r\n    \"title\": \"Копировать значение поля до изменения\",\r\n    \"help\": \"tpl_save_old_value\",\r\n    \"parameters\": {\r\n        \"field\": {\r\n            \"type\": \"Field\",\r\n            \"name\": \"field\",\r\n            \"description\": \"Выберите поле записи\",\r\n            \"no_system\": true,\r\n            \"help\": \"tpl_result_field\"\r\n        },\r\n        \"field2\": {\r\n            \"type\": \"Field\",\r\n            \"name\": \"field2\",\r\n            \"description\": \"Выберите поле, чье старое значение нужно сохранить\",\r\n            \"no_system\": true,\r\n            \"help\": \"tpl_old_field\"\r\n        }\r\n    }\r\n}',	'button',	'save_old_value.tpl',	'',	6,	'[1]',	1),
(75,	'Число: Математическая формула',	'$keys = [];\r\n$values = [];\r\n$fields = explode(\'&\', \'{$flex_data}\');\r\nforeach ($fields as $field => $value) {\r\n    $parts = explode(\'=\', $value);\r\n    array_push($keys, $parts[0]);\r\n    array_push($values, $parts[1]);\r\n}\r\n$func_row = str_replace($keys, $values, \'{$func_row}\');\r\n$keys = [\r\n  \'{\',\r\n  \'}\'\r\n];\r\n$values = [\r\n    \'$line[\"\',\r\n    \'\"]\'\r\n];\r\n$func_row = str_replace($keys, $values, $func_row);\r\n$func = \'$line[\"{$result}\"\"] = \' . $func_row . \';\';\r\neval($func);\r\n\r\n',	'{\r\n     \"title\": \"Число: Математическая формула\",\r\n     \"help\": \"tpl_math_formulas\",\r\n     \"parameters\": {\r\n         \"field1\": {\r\n             \"type\": \"Field\",\r\n             \"name\": \"field1\",\r\n             \"description\": \"Выберите поле\",\r\n             \"type_field\": 1,\r\n             \"help\": \"tpl_sel_field\"\r\n         },\r\n         \"func_row\": {\r\n             \"type\": \"String\",\r\n             \"name\": \"func_row\",\r\n             \"description\": \"Поле записи функции\",\r\n             \"textarea\": true,\r\n             \"help\": \"tpl_func_field\"\r\n         },\r\n         \"result\": {\r\n             \"type\": \"Field\",\r\n             \"name\": \"result\",\r\n             \"description\": \"Выберите поле записи результата\",\r\n             \"type_field\": 1,\r\n             \"help\": \"tpl_to_field\"\r\n         },\r\n         \"flex_data\": {\r\n             \"type\": \"String\",\r\n             \"name\": \"flex_data\",\r\n             \"description\": \"\",\r\n             \"help\": \"tpl_flex_string\"\r\n         }\r\n     },\r\n    \"events\": [\r\n        {\r\n            \"type\": 3,\r\n            \"field\": \"field1\"\r\n        }\r\n    ]\r\n}\r\n',	'button',	'math_functions.tpl',	'',	1,	'[]',	5),
(76,	'Отправить шаблон рассылки',	'$true = send_template({$field}, \"id = \" . $line[\'id\']);\nif ($true) {\n    $display_message .= \"<a style=\'font-size:16px;\' href=edit_mailing.php>\";\n    $display_message .= $lang[\'Active_mailer\'] . \"</a>\";\n    display_notification($display_message, 1);\n}',	'{\n    \"title\": \"Отправить шаблон рассылки\",\n    \"help\": \"tpl_send\",\n    \"parameters\": {\n        \"field\": {\n            \"type\": \"Template\",\n            \"name\": \"field\",\n            \"description\": \"Шаблон рассылки\",\n            \"tpl_type\": \"send\",\n            \"help\": \"tpl_send_template\"\n        }\n    }\n}',	'calc',	'tpl_send.tpl',	'',	4,	'[1]',	1),
(77,	'Изменить поля в связанной таблице',	'$line[\'{$gen_field.link_field_id}\'][\'{$gen_field.field}\'] = $line[\'{$cur_field}\'];',	'{\n    \"title\": \"Изменить поля в связанной таблице\",\n    \"help\": \"tpl_link_to_table\",\n    \"parameters\": {\n        \"cur_field\": {\n            \"type\": \"Field\",\n            \"name\": \"cur_field\",\n            \"description\": \"Выберите поле, из которого тянуть значение\",\n            \"no_system\": true,\n            \"help\": \"tpl_source_field\"\n        },\n        \"gen_field\": {\n            \"type\": \"TableField\",\n            \"name\": \"gen_field\",\n            \"description\": \"Выберите таблицу, в которое сохранять\",\n            \"field_description\": \"Выберите поле, в которое сохранять\",\n            \"only_parent\": \"true\",\n            \"help\": \"tpl_to_table\",\n            \"field_help\": \"tpl_to_field\"\n        }\n    }\n}',	'calc',	'tpl_link_to_table.tpl',	'',	3,	'[1]',	2),
(78,	'Копировать запись',	'$sel_table = (int)\'{$correlation[\'table\']}\';\n$sel_fields = [\n    {foreach from = $correlation[\'to_field\'] item = field_id}(int)\'{$field_id}\', {/foreach}\n];\n$sel_def_vals = [\n    {foreach from = $correlation[\'def_val\'] item = field_id}\'{$field_id}\', {/foreach}\n];\n$cur_fields = [\n    {foreach from = $correlation[\'cur_field\'] item = field_id}(int)\'{$field_id}\', {/foreach}\n];\nif ($sel_table > 0) {\n    $ins_arr = [];\n    foreach ($sel_fields as $num => $field_id) {\n        if (!$field_id) continue;\n        $def_val = $sel_def_vals[$num];\n        if ($def_val) {\n             $ins_arr[\'f\' . $field_id] = $def_val;\n        } else {\n             if (is_array($line[$cur_field[$num]])) {\n                 $ins_arr[\'f\' . $field_id] = $line[\'f\' . $cur_fields[$num]][\'raw\'];\n             } else {\n                 $ins_arr[\'f\' . $field_id] = $line[\'f\' . $cur_fields[$num]];\n             }\n        }\n    }\n    if (count($ins_arr) > 0) {\n        if ($new_id = data_insert($sel_table, EVENTS_ENABLE, $ins_arr)) {\n{if $addit neq \'stop\'}\n{if $addit eq \'go_edit\'}\n            header(\'Location: \' . $config[\'site_root\'] . \'/view_line2.php?table=\' . $sel_table . \'&line=\' . $new_id . \'&edit_mode=on\');\n{else}\n            header(\'Location: \' . $config[\'site_root\'] . \'/view_line2.php?table=\' . $sel_table . \'&line=\' . $new_id);\n{/if}\n{/if}\n        } else {\n            $error_trace[] = true;\n        }\n    } else {\n        $error_trace[] = true;\n    }\n} else {\n    $error_trace[] = true;\n}\n',	'{\n    \"title\": \"Копировать запись\",\n    \"help\": \"tpl_copy_line\",\n    \"parameters\": {\n        \"correlation\": {\n            \"type\": \"Correlation\",\n            \"name\": \"correlation\",\n            \"description\": \"Таблица-получатель\",\n            \"help\": \"tpl_table_copy_line\"\n        },\n        \"addit\": {\n            \"type\": \"List\",\n            \"name\": \"addit\",\n            \"description\": \"Опция\",\n            \"help\": \"tpl_help\",\n            \"values\": {\n              \"go_edit\": \"Переходить на созданную запись в режиме редактирования\",\n              \"go\": \"Переходить на созданную запись\",\n              \"stop\": \"Оставаться в текущей записи\"\n            }\n        }\n    }\n}',	'calc',	'copy_line.tpl',	'',	1,	'[1]',	4),
(79,	'Очистить поле',	'$line[\'{$field1}\'] = \'\';',	'{\n    \"title\": \"Очистить поле\",\n    \"help\": \"tpl_clear_field\",\n    \"parameters\": {\n        \"field1\": {\n            \"type\": \"Field\",\n            \"name\": \"field1\",\n            \"description\": \"Выберите поле\",\n            \"no_system\": true,\n            \"help\": \"tpl_clear_field\"\n        }\n    }\n}',	'calc',	'field_clearing.tpl',	'',	1,	'[1]',	3);
EOT;
run_query($sql_query);