<?php
$result = run_query('SHOW COLUMNS FROM ' . $config['table_prefix'] . "calc LIKE 'calc_type'");
if (!sql_fetch_assoc($result)) {
    run_query('
        ALTER TABLE ' . $config['table_prefix'] . 'calc
        ADD `calc_type` INT(11) DEFAULT 0 NOT NULL
    ');
}

$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`) 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 = sql_select_array(FILTERS_TABLE, \'id=\' . {$filter});\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        },\r\n        \"filter\": {\r\n            \"type\": \"Filter\",\r\n            \"name\": \"filter\",\r\n            \"description\": \"Выберите фильтр\"\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        }\r\n    }\r\n}',	'calc',	'calc_1.tpl',	'',	1,	'[2]'),
(2,	'Заполнение поля значением другого',	'if (!$line[\'{$cur_field1}\']) {\r\n    $line[\'{$cur_field1}\'] = $line[\'{$cur_field2}\'];\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            \"description\": \"Выберите поле-получатель\"\r\n        },\r\n        \"cur_field2\": {\r\n            \"type\": \"Field\",\r\n            \"name\": \"cur_field2\",\r\n            \"description\": \"Выберите поле-источник\"\r\n        }\r\n    }\r\n}',	'calc',	'calc_2.tpl',	'',	5,	'[1]'),
(3,	'Изменение поля типа дата на количество дней',	'$line[\'{$cur_field3}\'] = date(\'Y-m-d H:i:s\', strtotime($line[\'{$cur_field1}\']) {$operand} $line[\'{$cur_field2}\'] * 3600 * 24);',	'{\r\n    \"title\": \"Изменение поля типа дата на количество дней\",\r\n    \"help\": \"tpl_add_to_date\",\r\n    \"parameters\": {\r\n        \"cur_field1\": {\r\n            \"type\": \"Field\",\r\n            \"name\": \"cur_field1\",\r\n            \"description\": \"Выберите исходную дату\",\r\n            \"type_field\": [\r\n                2,\r\n                12\r\n            ]\r\n        },\r\n        \"operand\": {\r\n            \"type\": \"List\",\r\n            \"name\": \"operand\",\r\n            \"description\": \"Выберите опцию\",\r\n            \"values\": {\r\n              \"+\": \"Прибавить\",\r\n              \"-\": \"Отнять\"\r\n            }\r\n        },\r\n        \"cur_field2\": {\r\n            \"type\": \"Field\",\r\n            \"name\": \"cur_field2\",\r\n            \"description\": \"Выберите поле с числом дней\",\r\n            \"type_field\": 1\r\n        },\r\n        \"cur_field3\": {\r\n            \"type\": \"Field\",\r\n            \"name\": \"cur_field3\",\r\n            \"description\": \"Выберите поле для записи результата\",\r\n            \"type_field\": 2\r\n        }\r\n    }\r\n}',	'calc',	'calc_3.tpl',	'',	2,	'[1]'),
(4,	'Значение по умолчанию',	'if ($event[\'is_new_line\']) {\r\n    $line[\'{$cur_field}\'] = $line[\'{$gen_field.link_field_id}\'][\'{$gen_field.field}\'];\r\n}',	'{\r\n    \"title\": \"Значение по умолчанию\",\r\n    \"help\": \"tpl_default_value\",\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        },\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        }\r\n    }\r\n}',	'calc',	'calc_4.tpl',	'',	3,	'[3]'),
(5,	'Заполнение поля из поля связи',	'$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        },\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        }\r\n    }\r\n}',	'calc',	'calc_5.tpl',	'',	4,	'[3]'),
(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        }        \r\n    }\r\n}',	'button',	'cur_date.tpl',	'',	2,	'[]'),
(7,	'Заполнение поля значением другого',	'$line[\'{$cur_field1}\'] = $line[\'{$cur_field2}\'];',	'{\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            \"description\": \"Выберите поле-получатель\"\r\n        },\r\n        \"cur_field2\": {\r\n            \"type\": \"Field\",\r\n            \"name\": \"cur_field2\",\r\n            \"description\": \"Выберите поле-источник\"\r\n        }\r\n    }\r\n}',	'button',	'change_field.tpl',	'',	6,	'[]'),
(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        },\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        }\r\n    }\r\n}',	'button',	'change_field_on_link.tpl',	'',	4,	'[]'),
(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            \"type_field\": 4,\r\n            \"description\": \"Выберите для замены значения поле типа «Список»\",\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        }\r\n    }\r\n}',	'calc',	'calc_7.tpl',	'',	6,	'[1]'),
(10,	'Дата (или время) из поля типа «Дата/время» в другое поле',	'if(\'{$put_value}\' == 1){\r\n    $line[\'{$put_field}\'] = date(\'d.m.Y\', strtotime($line[\'{$cond_field}\']));\r\n} else if(\'{$put_value}\' == 2){\r\n    $line[\'{$put_field}\'] = date(\'H:i:s\', strtotime($line[\'{$cond_field}\']));\r\n}',	'{\r\n    \"title\": \"Дата (или время) из поля типа «Дата/время» в другое поле\",\r\n    \"help\": \"tpl_date_to_field\",\r\n    \"parameters\": {\r\n        \"cond_field\": {\r\n            \"type\": \"Field\",\r\n            \"name\": \"cond_field\",\r\n            \"type_field\": \"2\",\r\n            \"description\": \"Выберите поле, из которого будут тянутся данные\"\r\n        },\r\n        \"put_field\": {\r\n            \"type\": \"Field\",\r\n            \"name\": \"put_field\",\r\n            \"type_field\": \"3\",\r\n            \"description\": \"Выберите поле, которое должно быть заполнено данными\",\r\n            \"no_system\": true\r\n        },\r\n        \"put_value\": {\r\n            \"type\": \"List\",\r\n            \"name\": \"put_value\",\r\n            \"values\":{\"1\":\"Дата\",\"2\":\"Время\"},\r\n            \"description\": \"Выберите данные, которые должны быть переданы\"\r\n        }\r\n    }\r\n}',	'calc',	'calc_8.tpl',	'',	2,	'[1]'),
(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        },\r\n        \"give_value\": {\r\n            \"type\": \"String\",\r\n            \"name\": \"give_value\",\r\n            \"description\": \" Введите значение для поиска\"\r\n        },\r\n        \"put_value\": {\r\n            \"type\": \"String\",\r\n            \"name\": \"put_value\",\r\n            \"description\": \"Введите значение для замены\"\r\n        }\r\n    }\r\n}',	'calc',	'calc_9.tpl',	'',	5,	'[1]'),
(12,	'Среднее значение из подтаблицы в основную запись',	'if($event[\'type\'] === \'delete\'){\r\n    $not_id = \' and id != \' . $line[\'id\'];\r\n}\r\n$filter = sql_select_array(FILTERS_TABLE, \'id=\' . {$filter});\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        },\r\n        \"filter\": {\r\n            \"type\": \"Filter\",\r\n            \"name\": \"filter\",\r\n            \"description\": \"Выберите фильтр\"\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        }\r\n    }\r\n}',	'calc',	'calc_10.tpl',	'',	1,	'[2]'),
(13,	'Выбор имени или имени и отчества из ФИО',	'$array = explode(\" \", $line[\'{$cond_field}\']);\r\nif (\'{$put_value}\' === \'1\') {\r\n    $line[\'{$cond_field}\'] = $array[\'1\'];\r\n} else {\r\n    $line[\'{$cond_field}\'] = $array[\'1\'] . \' \' . $array[\'2\'];\r\n}',	'{\r\n    \"title\": \"Выбор имени или имени и отчества из ФИО\",\r\n    \"help\": \"tpl_explode_name\",\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        },\r\n        \"put_value\": {\r\n            \"type\": \"List\",\r\n            \"name\": \"put_value\",\r\n            \"values\":{\"1\":\"Имя\",\"2\":\"Имя и отчество\"},\r\n            \"description\": \"Выберите данные, которые останутся в поле.\"\r\n        }\r\n    }\r\n}',	'calc',	'calc_11.tpl',	'',	5,	'[1]'),
(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        }\r\n    }\r\n}',	'calc',	'disabled_edit_field.tpl',	'',	7,	'[1]'),
(15,	'Перевод суммы из числа в текст',	'$line[\'{$field2}\'] = num2str($line[\'{$field1}\'], \"\", \"\", 0, 0, 0, \"\");\r\n',	'{\r\n    \"title\": \"Перевод суммы из числа в текст\",\r\n    \"help\": \"tpl_num_to_text\",\r\n    \"parameters\": {\r\n        \"field1\": {\r\n            \"type\": \"Field\",\r\n            \"name\": \"field1\",\r\n            \"type_field\": \"1\",\r\n            \"description\": \"Выберите исходное поле(число)\",\r\n            \"no_system\": true\r\n        },\r\n        \"field2\": {\r\n            \"type\": \"Field\",\r\n            \"name\": \"field2\",\r\n            \"type_field\": \"3\",\r\n            \"description\": \"Выберите поле записи суммы (текст)\",\r\n            \"no_system\": true\r\n        }\r\n    }\r\n}',	'calc',	'intsum_to_stringsum.tpl',	'',	5,	'[1]'),
(16,	'Изменение даты на текущую при изменении поля ',	'$line[\'{$field2}\'] = date(\'Y-m-d H:i:s\');',	'{\r\n    \"title\": \"Изменение даты на текущую при изменении поля\",\r\n    \"help\": \"tpl_change_date\",\r\n    \"parameters\": {\r\n        \"field2\": {\r\n            \"type\": \"Field\",\r\n            \"name\": \"field2\",\r\n            \"description\": \"Выберите поле, в котором будет изменена дата\",\r\n            \"type_field\": {\"2\":\"2\"}\r\n        }\r\n    }\r\n}',	'calc',	'calc_13.tpl',	'',	2,	'[1]'),
(17,	'Очистка поля при изменении/очистке другого',	'$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        }\r\n    }\r\n}',	'calc',	'calc_14.tpl',	'',	6,	'[1]'),
(18,	'Разница между двумя датами',	'$datetime1 = date_create($line[\'{$field}\']);\r\n$datetime2 = date_create($line[\'{$field1}\']);\r\n$interval = date_diff($datetime1, $datetime2);\r\n$date = $interval->format(\'%a д. %H ч. %I м.\');\r\n$result = str_replace(\'0 д.,\',\'\',$date);\r\n$result = str_replace(\'0 м.,\',\'\',$result);\r\n$result = str_replace(\'0 ч.,\',\'\',$result);\r\n$line[\'{$value}\'] = $result;',	'{\r\n    \"title\": \"Разница между двумя датами\",\r\n    \"help\": \"tpl_diff_dates\",\r\n    \"parameters\": {\r\n        \"field\": {\r\n            \"type\": \"Field\",\r\n            \"name\": \"field\",\r\n            \"type_field\": 2,\r\n            \"description\": \"Выберите поле первой даты\",\r\n            \"no_system\": true\r\n        },\r\n        \"field1\": {\r\n            \"type\": \"Field\",\r\n            \"name\": \"field1\",\r\n            \"type_field\": 2,\r\n            \"description\": \"Выберите поле второй даты\",\r\n            \"no_system\": true\r\n        },\r\n        \"value\": {\r\n            \"type\": \"Field\",\r\n            \"name\": \"value\",\r\n            \"type_field\": 3,\r\n            \"description\": \"Выберите поле, в которое сохранять значение\",\r\n            \"no_system\": true\r\n        }\r\n    }\r\n}',	'calc',	'calc_15.tpl',	'',	2,	'[1]'),
(19,	'Сохранение даты изменения поля',	'$field = str_replace(\'f\',\'\', \'{$field}\');\r\nif (isset($event[\'changed\'][$field])) {\r\n    $line[\'{$value}\'] = date(\'Y-m-d H:i:s\');\r\n}',	'{\r\n    \"title\": \"Сохранение даты изменения поля\",\r\n    \"help\": \"tpl_date_changed_field\",\r\n    \"parameters\": {\r\n        \"field\": {\r\n            \"type\": \"Field\",\r\n            \"name\": \"field\",\r\n            \"description\": \"Выберите поле, которое будет проверяться на изменение\"\r\n        },\r\n        \"value\": {\r\n            \"type\": \"Field\",\r\n            \"name\": \"value\",\r\n            \"type_field\": 2,\r\n            \"description\": \"Выберите поле, в которое сохранять значение\",\r\n            \"no_system\": true\r\n        }\r\n    }\r\n}',	'calc',	'calc_16.tpl',	'',	2,	'[1]'),
(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        }\r\n    }\r\n}',	'calc',	'calc_17.tpl',	'',	6,	'[1]'),
(21,	'Математические формулы',	'$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         },\r\n         \"func_row\": {\r\n             \"type\": \"String\",\r\n             \"name\": \"func_row\",\r\n             \"description\": \"Поле записи функции\"\r\n         },\r\n         \"result\": {\r\n             \"type\": \"Field\",\r\n             \"name\": \"result\",\r\n             \"description\": \"Выберите поле записи результата\",\r\n             \"type_field\": 1\r\n         },\r\n         \"flex_data\": {\r\n             \"type\": \"String\",\r\n             \"name\": \"flex_data\",\r\n             \"description\": \"\"\r\n         }\r\n     }\r\n}\r\n',	'calc',	'math_functions.tpl',	'',	7,	'[1]'),
(22,	'Сброс нумерации с нового года',	'if ($event[\'line_id\'] === \'new\') {\r\n    $res = data_select($table_id,\'status=0 and id!=\' . $line[\'id\'] . \' ORDER BY id DESC LIMIT 1\');\r\n    $row = sql_fetch_assoc($res);\r\n    if (date(\'Y\',strtotime($row[\'add_time\'])) >= date(\'Y\')) {\r\n        $line[\'{$field}\'] = $row[\'{$field}\'] + 1;\r\n    } else {\r\n        $line[\'{$field}\'] = 1;\r\n    }\r\n}\r\n',	'{\r\n    \"title\": \"Сброс нумерации с нового года\",\r\n    \"help\": \"tpl_calc_numeric\",\r\n    \"parameters\": {\r\n        \"field\": {\r\n            \"type\": \"Field\",\r\n            \"name\": \"field\",\r\n            \"description\": \"Выберите поле\",\r\n            \"type_field\": 1\r\n        }\r\n    }\r\n}\r\n',	'calc',	'autonum.tpl',	'',	7,	'[1]'),
(23,	'Смена значения поля типа «Список»',	'$line[\'{$put_field}\'] = \'{$put_value}\';',	'{\n    \"title\": \"Смена значения поля типа «Список» при изменении поля\",\n    \"help\": \"tpl_list_change\",\n    \"parameters\": {\n        \"put_field\": {\n        \"type\": \"Field\",\n            \"name\": \"put_field\",\n            \"type_field\": 4,\n            \"description\": \"Выберите для замены значения поле типа «Список»\",\n            \"no_system\": true\n        },\n        \"put_value\": {\n        \"type\": \"String\",\n            \"name\": \"put_value\",\n            \"description\": \"Введите значение, которое должно быть присвоено полю типа «Список»\"\n        }\n    }\n}',	'button',	'list_change.tpl',	'',	6,	'[]'),
(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        }\r\n    }\r\n}',	'button',	'field_clearing.tpl',	'',	6,	'[]'),
(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        },\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        }\r\n    }\r\n}',	'button',	'from_table_in_subtable.tpl',	'',	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        }\r\n    }\r\n}',	'button',	'tpl_send.tpl',	'',	6,	'[]'),
(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        },\n        \"gen_field\": {\n            \"type\": \"TableField\",\n            \"name\": \"gen_field\",\n            \"description\": \"Выберите таблицу, в которое сохранять\",\n            \"field_description\": \"Выберите поле, в которое сохранять\",\n            \"only_parent\": \"true\"\n        }\n    }\n}',	'button',	'tpl_link_to_table.tpl',	'',	4,	'[]'),
(28,	'Сохранение старого значения поля в другое',	'$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        },\r\n        \"field2\": {\r\n            \"type\": \"Field\",\r\n            \"name\": \"field2\",\r\n            \"description\": \"Выберите поле, чье старое значение нужно сохранить\",\r\n            \"no_system\": true\r\n        }\r\n    }\r\n}',	'calc',	'save_old_value.tpl',	'',	7,	'[1]'),
(29,	'Поиск и замена значений поля',	'$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        },\r\n        \"give_value\": {\r\n            \"type\": \"String\",\r\n            \"name\": \"give_value\",\r\n            \"description\": \" Введите значение для поиска\"\r\n        },\r\n        \"put_value\": {\r\n            \"type\": \"String\",\r\n            \"name\": \"put_value\",\r\n            \"description\": \"Введите значение для замены\"\r\n        }\r\n    }\r\n}',	'button',	'tpl_replace.tpl',	'',	5,	'[]'),
(30,	'Изменение поля типа дата на количество дней',	'$line[\'{$cur_field3}\'] = date(\'Y-m-d H:i:s\', strtotime($line[\'{$cur_field1}\']) {$operand} $line[\'{$cur_field2}\'] * 3600 * 24);',	'{\r\n    \"title\": \"Изменение поля типа дата на количество дней\",\r\n    \"help\": \"tpl_add_to_date\",\r\n    \"parameters\": {\r\n        \"cur_field1\": {\r\n            \"type\": \"Field\",\r\n            \"name\": \"cur_field1\",\r\n            \"description\": \"Выберите исходную дату\",\r\n            \"type_field\": [\r\n                2,\r\n                12\r\n            ]\r\n        },\r\n        \"operand\": {\r\n            \"type\": \"List\",\r\n            \"name\": \"operand\",\r\n            \"description\": \"Выберите опцию\",\r\n            \"values\": {\r\n              \"+\": \"Прибавить\",\r\n              \"-\": \"Отнять\"\r\n            }\r\n        },\r\n        \"cur_field2\": {\r\n            \"type\": \"Field\",\r\n            \"name\": \"cur_field2\",\r\n            \"description\": \"Выберите поле с числом дней\",\r\n            \"type_field\": 1\r\n        },\r\n        \"cur_field3\": {\r\n            \"type\": \"Field\",\r\n            \"name\": \"cur_field3\",\r\n            \"description\": \"Выберите поле записи результата\",\r\n            \"type_field\": 2\r\n        }\r\n    }\r\n}',	'button',	'tpl_add_to_date.tpl',	'',	2,	'[]'),
(31,	'Из основной таблицы подтянуть данные в подтаблицу',	'if ({$operand} == 1) {\r\n    data_update(\r\n        {$subtable.table},\r\n        EVENTS_ENABLE,\r\n        array(\'{$subtable.field}\' => $line[\'{$field}\']),\r\n        \'status = 0 AND {$subtable.link_field_id} = \' . $line[\'id\']\r\n    );\r\n} else {\r\n    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}',	'{\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        },\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        },\r\n        \"operand\": {\r\n            \"type\": \"List\",\r\n            \"name\": \"operand\",\r\n            \"description\": \"Запуск вычислений\",\r\n            \"values\": {\r\n              \"1\": \"Да\",\r\n              \"2\": \"Нет\"\r\n            }\r\n        }\r\n    }\r\n}',	'calc',	'from_table_in_subtable.tpl',	'',	1,	'[4]'),
(32,	'Дата последней записи из подтаблицы в основную запись',	'if ($event[\'type\'] === \'delete\') {\r\n    $deleteCond = \"AND id <> $ID\";\r\n}\r\n$filter = sql_select_array(FILTERS_TABLE, \'id=\' . {$filter});\r\n$pre = data_select_field(\r\n    $table_id,\r\n    \"MIN({$cond_field}) as nextdate\",\r\n    \"status = 0 \" . $deleteCond . \" AND {$cond_table.link_field_id} = \" . $line[\'{$cond_table.link_field_id}\'][\'raw\'],\r\n    \" AND {$cond_field} <> \'0000-00-00 00:00:00\' AND \" . $filter[\'value\']\r\n);\r\n$res = sql_fetch_assoc($pre);\r\n$line[\'{$cond_table.link_field_id}\'][\'{$cond_table.field}\'] = $res[\'nextdate\'];',	'{\r\n    \"title\": \"Дата последней записи из подтаблицы в основную запись\",\r\n    \"help\": \"last_note_date\",\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            \"type_field\": \"2\",\r\n            \"field_description\": \"Выберите поле, в которое будет записан результат\"\r\n         },\r\n        \"filter\": {\r\n            \"type\": \"Filter\",\r\n            \"name\": \"filter\",\r\n            \"description\": \"Выберите фильтр\"\r\n        },\r\n        \"cond_field\": {\r\n            \"type\": \"Field\",\r\n            \"name\": \"cond_field\",\r\n            \"type_field\": \"2\",\r\n            \"description\": \"Выберите поле даты\"\r\n        }\r\n    }\r\n}',	'calc',	'last_note_date.tpl',	'',	1,	'[2]'),
(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',	'',	6,	'[]'),
(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',	'',	6,	'[]'),
(35,	'Восстановление записи',	'if ($line[\'status\'] != 0) {\r\n    $true = data_update(\r\n        $table_id,\r\n        array(\r\n            \'status\' => 0\r\n        ),\r\n        \'status IN (1,2) AND id = \' . $line[\'id\']\r\n    );\r\n}',	'{\r\n    \"title\": \"Восстановление записи\",\r\n    \"help\": \"note_restore\"\r\n}',	'button',	'null.tpl',	'',	6,	'[]'),
(36,	'Количество записей в подтаблице',	'if ($event[\'type\'] === \'delete\') {\r\n    $deleteCond = \"AND id <> $ID\";\r\n}\r\n$filter = sql_select_array(FILTERS_TABLE, \'id=\' . {$filter});\r\n$pre = data_select_field(\r\n    $table_id,\r\n    \"COUNT(id) AS cnt\",\r\n    \"status = 0 \" . $deleteCond . \" AND {$cond_table.link_field_id} = \" . $line[\'{$cond_table.link_field_id}\'][\'raw\'] . \r\n    \" AND \" . $filter[\'value\']\r\n);\r\n$res = sql_fetch_assoc($pre);\r\n\r\nif ({$operand} == 1) {\r\n    $line_link = substr(\"{$cond_table.link_field_id}\", 1);\r\n    $url = $config[\'site_url\'] . \"/fields.php?table=\" . $table_id . \"&rel_search&rel_table={$cond_table.table}&rel_line=\" . \r\n    $line[\'{$cond_table.link_field_id}\'][\'raw\'] . \"&rel_field=\" . $line_link;\r\n    $line[\'{$cond_table.link_field_id}\'][\'{$cond_table.field}\'] = \"<a href=\'\" . $url . \"\'>\" . $res[\'cnt\'] . \"</a>\";\r\n} else {\r\n    $line[\'{$cond_table.link_field_id}\'][\'{$cond_table.field}\'] = $res[\'cnt\'];\r\n}',	'{\r\n    \"title\": \"Количество записей в подтаблице\",\r\n    \"help\": \"subnotes_count\",\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            \"type_field\": \"3\",\r\n            \"field_description\": \"Выберите поле, в которое будет записан результат\"\r\n        },\r\n        \"filter\": {\r\n            \"type\": \"Filter\",\r\n            \"name\": \"filter\",\r\n            \"description\": \"Выберите фильтр\"\r\n        },\r\n        \"operand\": {\r\n            \"type\": \"List\",\r\n            \"name\": \"operand\",\r\n            \"description\": \"Добавить ссылку на записи\",\r\n            \"values\": {\r\n              \"1\": \"Да\",\r\n              \"2\": \"Нет\"\r\n            }\r\n        }\r\n    }\r\n}',	'calc',	'subnotes_count.tpl',	'',	1,	'[2]'),
(37,	'Удаление записи',	'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}',	'calc',	'null.tpl',	'',	6,	'[1]'),
(38,	'Архивация записи',	'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}',	'calc',	'null.tpl',	'',	6,	'[1]'),
(39,	'Восстановление записи',	'if ($line[\'status\'] != 0) {\r\n    $true = data_update(\r\n        $table_id,\r\n        array(\r\n            \'status\' => 0\r\n        ),\r\n        \'status IN (1,2) AND id = \' . $line[\'id\']\r\n    );\r\n}',	'{\r\n    \"title\": \"Восстановление записи\",\r\n    \"help\": \"note_restore\"\r\n}',	'calc',	'null.tpl',	'',	6,	'[1]');
EOT;
run_query($sql_query);