<?php
$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
(103,	'Текст: Парсинг текста',	'// если парсится из даты\r\n    {if $field_parse_type eq 2}\r\n    $field_parse = date(\"d.m.Y H:i:s\", strtotime($line[\'{$field_parse}\']));\r\n    {else}\r\n    $field_parse = \"\".$line[\'{$field_parse}\'];\r\n    {/if}\r\n\r\n    // особые случаи\r\n    if (\'{$give_value_begin}\' == \'\\\\n\' && \'{$give_value_end}\' == \'\\\\n\'){\r\n    $give_value_begin = \"\\n\";\r\n    $give_value_end = \"\\n\";\r\n    } elseif (\'{$give_value_begin}\' == \'\\\\n\') {\r\n    $give_value_begin = \"\\n\";\r\n    $give_value_end = trim(\'{$give_value_end}\');\r\n    } elseif (\'{$give_value_end}\' == \'\\\\n\') {\r\n    $give_value_begin = trim(\'{$give_value_begin}\');\r\n    $give_value_end = \"\\n\";\r\n    } else {\r\n    $give_value_begin = trim(\'{$give_value_begin}\');\r\n    $give_value_end = trim(\'{$give_value_end}\');\r\n    }\r\n\r\n    // вычисление\r\n    // если оба значения заданы, и они равны друг другу\r\n    if ($give_value_begin === $give_value_end) {\r\n    $res_begin = mb_strpos($field_parse, $give_value_begin);\r\n    $temp_field_parse = mb_substr($field_parse, $res_begin + (mb_strlen($give_value_begin)));\r\n    $res_end = mb_strpos($temp_field_parse, $give_value_end);\r\n    $field_result = mb_substr($temp_field_parse, 0, $res_end + 1 - (mb_strlen($give_value_begin)));\r\n    } else {\r\n    // исключаю момент что начального значения может и не быть\r\    if (mb_strpos($field_parse, $give_value_begin) !== false) {\r\n    $res_begin = mb_strpos($field_parse, $give_value_begin);\r\n    // проверяю есть ли конечное значение\r\n    if (mb_strpos($field_parse, $give_value_end) !== false) {\r\n    $res_end = mb_strpos($field_parse, $give_value_end);\r\n    if ($res_begin < $res_end) {\r\n    // если все ок (начальная позиция раньше конечного значения)\r\n    $end_end = $res_end - $res_begin;\r\n    // Извращение с тернарными операторами чтобы исключить ситуацию с переводом строки\r\n    $field_result = mb_substr($field_parse, $res_begin + ($temp_a_res = ($give_value_begin == \'\\\\n\') ? 0 : mb_strlen($give_value_begin)), $end_end - ($temp_a_res = ($give_value_begin == \'\\\\n\') ? 0 : mb_strlen($give_value_begin)));\r\n    } else {\r\n    // иначе если начальное значение позже конечного, тогда отбросим до начального\r\n    $temp_field_parse = mb_substr($field_parse, $res_begin + (mb_strlen($give_value_begin)));\r\n    $res_new_end = mb_strpos($temp_field_parse, $give_value_end);\r\n    $field_result = mb_substr($temp_field_parse, 0, $res_new_end);\r\n    }\r\n    } else {\r\n    // если пустое конечное, то отрезаем до конца\r\n    $res_begin = mb_strpos($field_parse, $give_value_begin);\r\n    $field_result = mb_substr($field_parse, $res_begin + (mb_strlen($give_value_begin)));\r\n    }\r\n    } else {\r\n    // если нет начального, проверим есть ли конечное значение\r\n    if (mb_strpos($field_parse, $give_value_end) !== false) {\r\n    // так как нет начального значения, то отрезаем от начала до заданного конца\r\n    $res_end = mb_strpos($field_parse, $give_value_end);\r\n    $field_result = mb_substr($field_parse, 0, $res_end);\r\n    } else {\r\n    // если не задано ни то, ни другое значение или они отсутствуют, то ничего не произойдет\r\n    }\r\n    }\r\n    }\r\n\r\n    {if $field_result_type eq 1 || $field_result_type eq 2}\r\n    {if $field_result_type eq 1}\r\n    $temp_field_to_int = preg_replace(\'/[^0-9,]/\', \'\', $field_result);\r\n    $temp_field_to_result_int = str_replace(\',\', \'.\', $temp_field_to_int);\r\n    $line[\'{$field_result}\'] = floatval($temp_field_to_result_int);\r\n    {else}\r\n    $line[\'{$field_result}\'] = date(\"Y-m-d H:i:s\", strtotime($field_result));\r\n    {/if}\r\n    {else}\r\n    $line[\'{$field_result}\'] = trim($field_result);\r\n    {/if}\r\n',	'{\r\n    \"title\": \"Текст: Парсинг текста\",\r\n    \"help\": \"text_parse\",\r\n    \"parameters\": {\r\n    \"field_parse\": {\r\n    \"type\": \"Field\",\r\n    \"name\": \"field_parse\",\r\n    \"description\": \"Выберите поле - источник\",\r\n    \"help\": \"field_parse\",\r\n    \"type_field\": [1,2,3,4]\r\n    },\r\n    \"field_result\": {\r\n    \"type\": \"Field\",\r\n    \"name\": \"field_result\",\r\n    \"description\": \"Выберите поле - получатель\",\r\n    \"help\": \"field_result\",\r\n    \"type_field\": [1,2,3,4]\r\n    },\r\n    \"give_value_begin\": {\r\n    \"type\": \"String\",\r\n    \"name\": \"give_value_begin\",\r\n    \"description\": \"Введите значение - от\",\r\n    \"textarea\": true,\r\n    \"help\": \"give_value_begin\"\r\n    },\r\n    \"give_value_end\": {\r\n    \"type\": \"String\",\r\n    \"name\": \"give_value_end\",\r\n    \"description\": \"Введите значение - до\",\r\n    \"textarea\": true,\r\n    \"help\": \"give_value_end\"\r\n    }\r\n    }\r\n}',	'calc',	'text_parsing.tpl',	'',	1,	'[1]',	7),
(104,	'Текст: Парсинг текста',	'// если парсится из даты\r\n    {if $field_parse_type eq 2}\r\n    $field_parse = date(\"d.m.Y H:i:s\", strtotime($line[\'{$field_parse}\']));\r\n    {else}\r\n    $field_parse = \"\".$line[\'{$field_parse}\'];\r\n    {/if}\r\n\r\n    // особые случаи\r\n    if (\'{$give_value_begin}\' == \'\\\\n\' && \'{$give_value_end}\' == \'\\\\n\'){\r\n    $give_value_begin = \"\\n\";\r\n    $give_value_end = \"\\n\";\r\n    } elseif (\'{$give_value_begin}\' == \'\\\\n\') {\r\n    $give_value_begin = \"\\n\";\r\n    $give_value_end = trim(\'{$give_value_end}\');\r\n    } elseif (\'{$give_value_end}\' == \'\\\\n\') {\r\n    $give_value_begin = trim(\'{$give_value_begin}\');\r\n    $give_value_end = \"\\n\";\r\n    } else {\r\n    $give_value_begin = trim(\'{$give_value_begin}\');\r\n    $give_value_end = trim(\'{$give_value_end}\');\r\n    }\r\n\r\n    // вычисление\r\n    // если оба значения заданы, и они равны друг другу\r\n    if ($give_value_begin === $give_value_end) {\r\n    $res_begin = mb_strpos($field_parse, $give_value_begin);\r\n    $temp_field_parse = mb_substr($field_parse, $res_begin + (mb_strlen($give_value_begin)));\r\n    $res_end = mb_strpos($temp_field_parse, $give_value_end);\r\n    $field_result = mb_substr($temp_field_parse, 0, $res_end + 1 - (mb_strlen($give_value_begin)));\r\n    } else {\r\n    // исключаю момент что начального значения может и не быть\r\    if (mb_strpos($field_parse, $give_value_begin) !== false) {\r\n    $res_begin = mb_strpos($field_parse, $give_value_begin);\r\n    // проверяю есть ли конечное значение\r\n    if (mb_strpos($field_parse, $give_value_end) !== false) {\r\n    $res_end = mb_strpos($field_parse, $give_value_end);\r\n    if ($res_begin < $res_end) {\r\n    // если все ок (начальная позиция раньше конечного значения)\r\n    $end_end = $res_end - $res_begin;\r\n    // Извращение с тернарными операторами чтобы исключить ситуацию с переводом строки\r\n    $field_result = mb_substr($field_parse, $res_begin + ($temp_a_res = ($give_value_begin == \'\\\\n\') ? 0 : mb_strlen($give_value_begin)), $end_end - ($temp_a_res = ($give_value_begin == \'\\\\n\') ? 0 : mb_strlen($give_value_begin)));\r\n    } else {\r\n    // иначе если начальное значение позже конечного, тогда отбросим до начального\r\n    $temp_field_parse = mb_substr($field_parse, $res_begin + (mb_strlen($give_value_begin)));\r\n    $res_new_end = mb_strpos($temp_field_parse, $give_value_end);\r\n    $field_result = mb_substr($temp_field_parse, 0, $res_new_end);\r\n    }\r\n    } else {\r\n    // если пустое конечное, то отрезаем до конца\r\n    $res_begin = mb_strpos($field_parse, $give_value_begin);\r\n    $field_result = mb_substr($field_parse, $res_begin + (mb_strlen($give_value_begin)));\r\n    }\r\n    } else {\r\n    // если нет начального, проверим есть ли конечное значение\r\n    if (mb_strpos($field_parse, $give_value_end) !== false) {\r\n    // так как нет начального значения, то отрезаем от начала до заданного конца\r\n    $res_end = mb_strpos($field_parse, $give_value_end);\r\n    $field_result = mb_substr($field_parse, 0, $res_end);\r\n    } else {\r\n    // если не задано ни то, ни другое значение или они отсутствуют, то ничего не произойдет\r\n    }\r\n    }\r\n    }\r\n\r\n    {if $field_result_type eq 1 || $field_result_type eq 2}\r\n    {if $field_result_type eq 1}\r\n    $temp_field_to_int = preg_replace(\'/[^0-9,]/\', \'\', $field_result);\r\n    $temp_field_to_result_int = str_replace(\',\', \'.\', $temp_field_to_int);\r\n    $line[\'{$field_result}\'] = floatval($temp_field_to_result_int);\r\n    {else}\r\n    $line[\'{$field_result}\'] = date(\"Y-m-d H:i:s\", strtotime($field_result));\r\n    {/if}\r\n    {else}\r\n    $line[\'{$field_result}\'] = trim($field_result);\r\n    {/if}\r\n',	'{\r\n    \"title\": \"Текст: Парсинг текста\",\r\n    \"help\": \"text_parse\",\r\n    \"parameters\": {\r\n    \"field_parse\": {\r\n    \"type\": \"Field\",\r\n    \"name\": \"field_parse\",\r\n    \"description\": \"Выберите поле - источник\",\r\n    \"help\": \"field_parse\",\r\n    \"type_field\": [1,2,3,4]\r\n    },\r\n    \"field_result\": {\r\n    \"type\": \"Field\",\r\n    \"name\": \"field_result\",\r\n    \"description\": \"Выберите поле - получатель\",\r\n    \"help\": \"field_result\",\r\n    \"type_field\": [1,2,3,4]\r\n    },\r\n    \"give_value_begin\": {\r\n    \"type\": \"String\",\r\n    \"name\": \"give_value_begin\",\r\n    \"description\": \"Введите значение - от\",\r\n    \"textarea\": true,\r\n    \"help\": \"give_value_begin\"\r\n    },\r\n    \"give_value_end\": {\r\n    \"type\": \"String\",\r\n    \"name\": \"give_value_end\",\r\n    \"description\": \"Введите значение - до\",\r\n    \"textarea\": true,\r\n    \"help\": \"give_value_end\"\r\n    }\r\n    }\r\n}',	'button',	'text_parsing.tpl',	'',	1,	'[1]',	7);
EOT;
run_query($sql_query);
