public function createAction()
 {
     $this->disableRender = true;
     $form = new K_Form();
     $uploadDir = WWW_PATH . '/adm/img/tree';
     $allowedkeys = array('type_name', 'type_desc', 'type_fields', 'type_parent_elements', 'type_children_elements', 'ck_hmvc', 'stype');
     $values = array();
     $formData = $form->getData();
     $formPostArray = isset($_POST['type_fields']) ? $_POST['type_fields'] : false;
     parse_str(substr($_POST['type_fields'], 1), $formPostArray);
     if ($formPostArray != false) {
         K_Loader::load('formbuilder', APP_PATH . '/plugins');
         $formBuilder = new Formbuilder($formPostArray);
         $formArray = $formBuilder->get_encoded_form_array();
     } else {
         throw new Exception("Не заданы поля для нового типа!");
     }
     if (!$formData) {
         throw new Exception("Невозможно обработать форму без данных!");
     }
     $seo = false;
     foreach ($formData as $elementKey => $elementValue) {
         if (in_array($elementKey, $allowedkeys)) {
             if (is_string($elementValue)) {
                 $elementValue = trim($elementValue);
             }
             $values[$elementKey] = $elementValue;
             if ($elementKey == 'type_name') {
                 $values[$elementKey] = preg_replace("/[^a-z]/", "", $elementValue);
                 if (empty($values[$elementKey])) {
                     throw new Exception("Название нового типа не соответствует шаблону!");
                 }
             }
             if ($elementKey == 'type_fields' && json_decode($formArray['form_structure']) == null) {
                 if (!is_null($formArray['form_structure']) && (is_string($formArray['form_structure']) && $formArray['form_structure'] != 'null')) {
                     throw new Exception("Поля переданы не в json-формате! " . json_last_error());
                 }
             }
             if ($elementKey == 'type_parent_elements' || $elementKey == 'type_children_elements') {
                 if (is_array($elementValue)) {
                     if (in_array(1, $elementValue)) {
                         $elementValue = array('all');
                     }
                     if (in_array(2, $elementValue)) {
                         $elementValue = array();
                     }
                     if (!in_array(1, $elementValue) && !in_array(2, $elementValue)) {
                         $elementValue = self::convertToSelectElements($elementValue, $elementKey);
                     }
                     $values[$elementKey] = $elementValue;
                 }
             }
             if (isset($_POST['seo']) && $_POST['seo']) {
                 $seo = true;
             }
         }
     }
     if ($form->hasFiles()) {
         $pathData = $form->moveUploadedFile('icon', $uploadDir, $form->getElement('type_name'));
         if ($pathData == null) {
             throw new Exception("Не удалось загрузить иконку!");
         }
     } else {
         throw new Exception("Не обнаружено иконки для типа!");
     }
     K_Tree_Types::add($values['type_name'], $values['type_desc'], $formArray['form_structure'], $values['type_children_elements'], $values['type_parent_elements'], 'type', true, $formArray, $values['ck_hmvc'], $seo);
     echo 'Новый тип успешно добавлен!';
 }