Exemple #1
0
 public function action_index()
 {
     $id = $this->request->param('id');
     if ($id == 'export') {
         $query = 'SELECT * FROM vz_catalog ORDER BY act DESC LIMIT 700, 100';
         $result = DB::query(Database::SELECT, $query)->execute()->as_array();
         $types = array('', 'База отдыха', 'Загородный отель', 'Санаторий', 'Кемпинг', 'Гостиница', 'Конно - спортивный клуб', 'Коттедж');
         $region = array('0' => '', '66' => 'Свердловская область', '74' => 'Челябинская область', '72' => 'Тюменская область', '59' => 'Пермский край', '2' => 'Башкортостан');
         $facialities = array('0' => '', '1' => 'Баня', '3' => 'Баня, Бассейн', '4' => 'Бильярд', '5' => 'Баня, Бильярд', '7' => 'Баня, Бассейн, Бильярд', '9' => 'Баня, Лес', '11' => 'Баня, Бассейн, Лес', '13' => 'Баня, Бильярд, Лес', '15' => 'Баня, Бассейн, Бильярд, Лес', '17' => 'Баня, Водоем', '20' => 'Бильярд, Водоем', '21' => 'Баня, Бильярд, Водоем', '23' => 'Баня, Бассейн, Бильярд, Водоем', '24' => 'Лес, Водоем', '25' => 'Баня, Лес, Водоем', '27' => 'Баня, Бассейн, Лес, Водоем', '29' => 'Баня, Бильярд, Лес, Водоем', '31' => 'Баня, Бассейн, Бильярд, Лес, Водоем', '33' => 'Баня, Питание', '35' => 'Баня, Бассейн, Питание', '37' => 'Баня, Бильярд, Питание', '39' => 'Баня, Бассейн, Бильярд, Питание', '40' => 'Лес, Питание', '41' => 'Баня, Лес, Питание', '43' => 'Баня, Бассейн, Лес, Питание', '44' => 'Бильярд, Лес, Питание', '45' => 'Баня, Биллиард, Лес, Питание', '47' => 'Баня, Бассейн, Бильярд, Лес, Питание', '49' => 'Баня, Лес, Питание', '51' => 'Баня, Бассейн, Лес, Питание', '53' => 'Баня, Бильярд, Лес, Питание', '56' => 'Лес, Водоем, Питание', '57' => 'Баня, Лес, Водоем, Питание', '58' => 'Бассейн, Лес, Водоем, Питание', '59' => 'Баня, Бассейн, Лес, Водоем, Питание', '60' => 'Бильярд, Лес, Водоем, Питание', '61' => 'Баня, Бильярд, Лес, Водоем, Питание', '63' => 'Баня, Бассейн, Бильярд, Лес, Водоем, Питание', '65' => 'Баня, Бассейн, Бильярд, Лес, Водоем, Питание');
         $base = new Model_Base();
         $material = new Model_Material('group');
         $counter = 0;
         foreach ($result as $item) {
             $photos = array();
             $dates = array();
             $faciality = array();
             $dquery = 'SELECT busy_date FROM vz_calendar WHERE cottage_id =' . $item['id'];
             $dresult = DB::query(Database::SELECT, $dquery)->execute()->as_array();
             if (isset($facialities[$item['opt']])) {
                 $ifaciality = explode(',', $facialities[$item['opt']]);
             } else {
                 $ifaciality = array();
             }
             foreach ($ifaciality as $fitem) {
                 $faciality[] = trim($fitem);
             }
             foreach ($dresult as $date) {
                 $dates[] = $date['busy_date'];
             }
             $pquery = 'SELECT id, title FROM vz_images WHERE top = ' . $item['id'] . ' ORDER by ord';
             $presult = DB::query(Database::SELECT, $pquery)->execute()->as_array();
             foreach ($presult as $pitem) {
                 $id = intval($pitem['id']);
                 if ($id < 1000) {
                     $folder = 0;
                 }
                 if ($id > 999 && $id < 10000) {
                     $folder = substr($id, 0, 1);
                 }
                 if ($id > 9999) {
                     $folder = substr($id, 0, 2);
                 }
                 $photos[] = '/img/user/catalog/' . $folder . '/' . $pitem['id'] . 'b.jpg';
             }
             if ($item['act'] == 1) {
                 $sleep = 0;
             } else {
                 $sleep = 1;
             }
             $insert = array('title' => $item['name'], 'url' => $base->str2url($item['name']), 'description' => $item['description'], 'sleep' => $sleep, 'date_241' => $dates, 'select_223' => array($types[$item['object_type']]), 'chars_224' => $item['pagetitle'], 'chars_225' => $item['spec_offer'], 'chars_226' => $item['spec_price'], 'chars_227' => $item['city'], 'select_228' => array($region[$item['region']]), 'chars_229' => $item['len'], 'chars_230' => $item['path'], 'select_231' => $faciality, 'chars_232' => $item['bad1'], 'chars_233' => $item['bad2'], 'chars_234' => $item['rooms'], 'price_235' => $item['cost'], 'chars_236' => $item['dayprice'], 'chars_237' => $item['people'], 'chars_238' => $item['mincapacity'], 'chars_239' => $item['capacity'], 'photoalbum_243' => $photos, 'texts_242' => $item['content']);
             $res = $material->newMaterial($insert, '33', array(), TRUE);
             if ($res) {
                 ++$counter;
             } else {
                 $this->data['errors'][] = 'Материал ' . $item['name'] . ' не был добавлен';
             }
             //
             //                echo '<pre>';
             //                var_dump($insert);
             //                echo '<pre>';
         }
         $this->data['messages'][] = 'Добавлено ' . $counter . ' материалов';
     } elseif ($id == 'comments') {
         //перебираем все отзывы
         $query = 'SELECT a.*, b.name AS obj_name FROM vz_reviews a, vz_catalog b WHERE a.object_id = b.id ORDER BY object_id DESC LIMIT 0, 1000';
         $result = DB::query(Database::SELECT, $query)->execute()->as_array();
         $cnt = 0;
         foreach ($result as $comment) {
             $q = 'SELECT id FROM materials WHERE name =\'' . $comment['obj_name'] . '\'';
             $res = DB::query(Database::SELECT, $q)->execute()->current();
             if ($res) {
                 $q1 = "UPDATE vz_reviews SET object_id = " . $res['id'] . ' WHERE id =' . $comment['id'];
                 $res1 = DB::query(Database::UPDATE, $q1)->execute();
                 if (!$res1) {
                     $this->data['errors'][] = $q1;
                 } else {
                     ++$cnt;
                 }
             }
         }
         $this->data['messages'][] = 'Обновлено ' . $cnt . ' комментариев';
     } elseif ($id == 'update_id') {
         $cnt = 0;
         //ПЕРЕБИРАЕМ ВСЕ КОТТЕДЖИ
         $query = 'SELECT * FROM vz_catalog WHERE act!=0 ORDER BY act DESC LIMIT 0, 500';
         $result = DB::query(Database::SELECT, $query)->execute()->as_array();
         foreach ($result as $item) {
             //делаем запрос по названию
             $q = 'UPDATE materials SET old_id = ' . $item['id'] . ' WHERE name = \'' . $item['name'] . '\'';
             $res = DB::query(Database::UPDATE, $q)->execute();
             if (!$res) {
                 $this->data['errors'][] = $q;
             } else {
                 ++$cnt;
             }
         }
     }
     $this->template->content = View::factory('admin/admScripts', array('data' => $this->data, 'user' => $this->user));
 }
Exemple #2
0
 public function action_load_price()
 {
     // Получение значения ячейки
     function get_cell_value($worksheet, $cell)
     {
         return $worksheet->getCell($cell)->getValue();
     }
     // Преобразование числового значения столбца в символьное
     function col_n2str($col_n)
     {
         return PHPExcel_Cell::stringFromColumnIndex($col_n - 1);
     }
     // Преобразование символьного значения столбца в числовое
     function col_str2n($col)
     {
         return PHPExcel_Cell::columnIndexFromString($col);
     }
     // Узнать уровень вложенности строки
     function get_level($worksheet, $row)
     {
         return $worksheet->getRowDimension($row)->getOutlineLevel();
     }
     $objPHPExcel = PHPExcel_IOFactory::load(DOCROOT . "/price.xls");
     $structure = array("name" => array("index" => "A", "type" => "chars", "title" => "Наименование", "ordering" => 1), "ed_izm" => array("index" => "N", "type" => "select", "title" => "Единица измерения", "ordering" => 2), "price" => array("index" => "O", "type" => "price", "title" => "Цена", "ordering" => 3));
     $num_structure = array_values($structure);
     $categories = array(array("id" => 0, "level" => -1, "name" => "root"));
     $materials = array();
     $category_id_counter = 1;
     // Счётчик для id категории
     $parent_category_id = 0;
     // id родительской категории
     //echo '<table border>';
     //echo "<tr><td>Id категории<td>Уровень<td>id родительской категории<td>Название категории</tr>";
     // Проход по листам
     foreach ($objPHPExcel->getWorksheetIterator() as $worksheet) {
         $worksheet_title = $worksheet->getTitle();
         $max_row = $worksheet->getHighestRow();
         // максимальная строка
         $max_col = $worksheet->getHighestColumn();
         // максимальный столбец (буква)
         $max_col = col_str2n($max_col);
         // максимальный столбец (цифра)
         //echo "<p>Максимальная строка: " . $max_row . "</p>";
         //echo "<p>Максимальный столбец: " . $max_col . " (" . col_n2str($max_col) . ")</p>";
         $start_row = 12;
         // С какой строки начинаем?
         // Перебор строк
         for ($row = $start_row; $row <= $max_row; $row++) {
             $level = get_level($worksheet, $row);
             // Уровень вложенности
             // Строка является заголовком?
             if (!get_cell_value($worksheet, $num_structure[1]["index"] . $row)) {
                 $current_cell = "A" . $row;
                 // Адрес ячейки
                 $value = get_cell_value($worksheet, $current_cell);
                 // Название категории
                 $categories[$category_id_counter] = array("id" => $category_id_counter, "level" => $level, "name" => $value);
                 // Поиск родителя
                 for ($i = $category_id_counter; $i >= 0; $i--) {
                     if ($categories[$i]["level"] == $level - 1) {
                         $parent_category_id = $categories[$i]["id"];
                         break;
                     }
                 }
                 //echo "<tr><td>" . $category_id_counter . "<td>" . $level . "<td>" . $parent_category_id . "<td>" . $value;
                 $categories[$category_id_counter]["parent"] = $parent_category_id;
                 $category_id_counter++;
             } else {
                 //echo '<tr><td colspan="4"><table style="width:100%;" border><tr>';
                 foreach ($structure as $name => $el) {
                     $current_cell = $el["index"] . $row;
                     // Адрес ячейки
                     $value = get_cell_value($worksheet, $current_cell);
                     $material_data[$name] = $value;
                     //echo '<td>' . $value;
                 }
                 //echo "</table>";
                 $category_id = $category_id_counter - 1;
                 $material_data["category_id"] = $category_id;
                 if (!isset($categories[$category_id]["materials"])) {
                     $categories[$category_id]["materials"] = array();
                 }
                 $categories[$category_id]["materials"][] = $material_data;
                 $materials[] = $material_data;
             }
         }
         //echo "</table>";
         //var_dump($categories);
         //var_dump($materials);
         //echo "<hr>";
     }
     $gid = 1218;
     // id группы
     $model_material = new Model_Material('groups');
     $model_base = new Model_Base();
     $group = $model_material->getGroup($gid);
     $categories[0]["db_id"] = $gid;
     $categories[0]["name"] = $group["name"];
     $parent_id = 0;
     $insertdata = array();
     $fieldset = $model_material->getFieldsSet($gid);
     //$insert_categories = array();
     $current_level = 0;
     while (true) {
         $search_level_status = false;
         foreach ($categories as $category_id => $category_data) {
             if ($category_data["level"] == $current_level) {
                 $search_level_status = true;
                 // Поиск родителя
                 for ($i = $category_id; $i >= 0; $i--) {
                     if ($categories[$i]["level"] == $current_level - 1) {
                         $parent_id = $categories[$i]["db_id"];
                         break;
                     }
                 }
                 $insert_group_id = $model_material->groupInsert($parent_id, $parent_id, array('name' => $category_data["name"]));
                 $group_params = array();
                 foreach ($structure as $name => $param) {
                     $param_data = array_merge($param, array("name" => $name, "gid" => $insert_group_id));
                     $model_material->addParam($param_data);
                 }
                 $category_data["db_id"] = $insert_group_id;
                 if (isset($category_data["materials"])) {
                     $fieldset = $model_material->getFieldsSet($insert_group_id);
                     //var_dump($fieldset);
                     // Проход по материалам
                     foreach ($category_data["materials"] as $material) {
                         //var_dump($material);
                         $insertdata = array();
                         $insertdata['title'] = Request::clearText($material["name"]);
                         $insertdata['url'] = Request::str2url($material["name"]);
                         $insertdata['description'] = Request::clearText($material["name"]);
                         // Проход по параметрам
                         foreach ($fieldset as $field) {
                             if (isset($structure[$field["name"]])) {
                                 $insertdata[$field["type"] . '_' . $field["id"]] = $material[$field["name"]];
                                 switch ($field["type"]) {
                                     case "files":
                                         $insertdata[$field["type"] . '_' . $field["id"]] = array($material[$field["name"]]);
                                         break;
                                     case "photoalbum":
                                         $insertdata[$field["type"] . '_' . $field["id"]] = array($material[$field["name"]]);
                                         break;
                                     case "select":
                                         $insertdata[$field["type"] . '_' . $field["id"]] = array($material[$field["name"]]);
                                         break;
                                 }
                                 // Наценка 30%
                                 /*if ($field["type"] == "price") {
                                 			$insertdata[$field["type"].'_'.$field["id"]] = $material[$field["name"]] * 1.3;
                                 		}*/
                             }
                         }
                         echo "<pre>";
                         var_dump($insertdata);
                         echo "</pre>";
                         $result = $model_material->newMaterial($insertdata, $insert_group_id, TRUE);
                     }
                 }
                 //var_dump($category_data);
                 echo "<hr>";
                 $categories[$category_id] = $category_data;
             }
         }
         if (!$search_level_status) {
             break;
         }
         $current_level++;
     }
 }
Exemple #3
0
 public function action_new()
 {
     $fieldset = array();
     $group = new Model_Material('groups');
     $data['groups'] = $group->getTree();
     $gid = $this->request->param('id');
     if ($gid != NULL) {
         $fields = $group->getParams($gid);
         foreach ($fields as $field) {
             //генерируем код для каждого поля
             //если поле - список выбора
             if ($field['type'] == 'select') {
                 $values = $group->getSelectValues($field['id']);
                 $field['myValues'] = $values;
             }
             $fieldset[] = View::factory('admin/fields/' . $field['type'])->bind('data', $field)->render();
         }
         $data['fieldset'] = $fieldset;
     }
     if (isset($_POST['new_material'])) {
         $res = $group->newMaterial($_POST, $gid, $_FILES);
         if ($res) {
             Controller::redirect('admin/materials/' . $gid);
         } else {
             $data['errors'] = $group->getErrors();
         }
     }
     $wpm['status'] = Cookie::get('wpm', FALSE);
     $wpm['folder'] = Cookie::get('wpm_folder', '');
     $folders = $this->getFolders();
     $pictures = $this->action_pictures($wpm['folder']);
     $this->template->content = View::factory('admin/admMaterials', array('data' => $data, 'folders' => $folders, 'pictures' => $pictures, 'wpm' => $wpm, 'user' => $this->user));
 }
Exemple #4
0
 public function action_new()
 {
     $fieldset = array();
     $folders = $this->getFolders();
     $group = new Model_Material('groups');
     $data['groups'] = $group->getTree();
     $gid = $this->request->param('id');
     if ($gid != NULL) {
         $fields = $group->getParams($gid);
         foreach ($fields as $field) {
             //генерируем код для каждого поля
             //если поле - список выбора
             if ($field['type'] == 'select') {
                 $values = $group->getSelectValues($field['id']);
                 $field['myValues'] = $values;
             }
             if ($field['type'] == 'photoalbum') {
                 $base = new Model_Base();
                 $options = $base->getOptions();
                 $field['photos_base_path'] = $options['photos_base_path'];
             }
             if ($field['type'] == 'files') {
                 $base = new Model_Base();
                 $options = $base->getOptions();
                 $field['files_base_path'] = $options['files_base_path'];
             }
             $fieldset[] = View::factory('admin/fields/' . $field['type'])->bind('data', $field)->bind('folders', $folders)->bind('multiselect', $field['multiselect'])->bind('user', $this->user)->render();
         }
         $data['fieldset'] = $fieldset;
     }
     if (isset($_POST['new_material'])) {
         //PC::debug($_POST);
         //var_dump($_POST);
         $res = $group->newMaterial($_POST, $gid, $_FILES);
         if ($res) {
             Controller::redirect('admin/materials/' . $gid);
         } else {
             $data['errors'] = $group->getErrors();
         }
     }
     if (isset($_POST['save_selects'])) {
         $selects = new Model_Params_Selects();
         $values = $_POST;
         unset($values['save_selects']);
         $selects->saveSelectsValues($values, $_POST['save_selects']);
     }
     if (isset($_POST['save_param'])) {
         $selects = new Model_Selects();
         $values = $_POST;
         unset($values['save_param']);
         $selects->saveSelectsParam($values, $_POST['save_param'], $_FILES);
     }
     $wpm['status'] = Cookie::get('wpm', FALSE);
     $wpm['folder'] = Cookie::get('wpm_folder', '');
     $pictures = $this->action_pictures($wpm['folder']);
     $this->template->content = View::factory('admin/admMaterials', array('data' => $data, 'folders' => $folders, 'pictures' => $pictures, 'wpm' => $wpm, 'user' => $this->user));
 }
Exemple #5
0
 public function load_xls($files = NULL, $gid, $offset = 11, $limit = 20)
 {
     $material = new Model_Material('groups');
     $base = new Model_Base();
     $group = $material->getGroup($gid);
     $insertdata = array();
     $fieldset = $material->getFieldsSet($gid);
     if (is_array($files)) {
         if (isset($files) && count($files) > 0) {
             $files_size = $files['xls_price']['size'];
         } else {
             $files_size = $_GET['files_size'];
         }
         if (isset($files) && count($files) > 0) {
             $temp = $files['xls_price']['name'];
         } else {
             $temps = explode('_', $_GET['files_name']);
             $temp = implode(' ', $temps);
         }
         $name_arr = explode('.', $temp);
         $ext = array_pop($name_arr);
         if (isset($files) && count($files) > 0) {
             $tmp_name = $_FILES['xls_price']['tmp_name'];
         } else {
             $tmp_name = $_GET['files_tmp'];
         }
     } else {
         $files_size = filesize($files);
         $ext = pathinfo($files, PATHINFO_EXTENSION);
         $loadedfilename = $files;
     }
     $create_categories = TRUE;
     $load_data = TRUE;
     if ($create_categories == TRUE) {
         if ($files_size > 0 && ($ext == 'xls' || $ext == 'xlsx')) {
             //echo $files['xls_price']['size'];
             //get upload file
             if (!isset($loadedfilename)) {
                 $uploadfile = $this->uploads_dir() . $temp;
             } else {
                 $uploadfile = $loadedfilename;
                 $tmp_name = $loadedfilename;
             }
             //if lile moved
             if (move_uploaded_file($tmp_name, $uploadfile) || isset($_GET['files_name']) || isset($loadedfilename)) {
                 //load file
                 $objPHPExcel = PHPExcel_IOFactory::load($uploadfile);
                 //foreach pages
                 foreach ($objPHPExcel->getWorksheetIterator() as $worksheet) {
                     $worksheetTitle = $worksheet->getTitle();
                     $highestRow = $worksheet->getHighestRow();
                     // например, 10
                     $highestColumn = $worksheet->getHighestColumn();
                     // например, 'F'
                     $highestColumnIndex = PHPExcel_Cell::columnIndexFromString($highestColumn);
                     $nrColumns = ord($highestColumn) - 64;
                     //получаем все поля для группы
                     //$fieldset = $material->getFieldsSet($gid);
                     //перебираем страницы файла
                     foreach ($objPHPExcel->getWorksheetIterator() as $worksheet) {
                         $fields_index = array();
                         $worksheetTitle = $worksheet->getTitle();
                         $highestRow = $worksheet->getHighestRow();
                         // например, 10
                         $highestColumn = $worksheet->getHighestColumn();
                         // например, 'F'
                         $highestColumnIndex = PHPExcel_Cell::columnIndexFromString($highestColumn);
                         $nrColumns = ord($highestColumn) - 64;
                         if ($highestRow > $limit) {
                             $highestRow = $offset + $limit;
                         }
                         foreach ($objPHPExcel->getWorksheetIterator() as $worksheet) {
                             for ($row = $offset; $row <= $highestRow; ++$row) {
                                 $group_name = Arr::get($group, 'title_field', 'A') . $row;
                                 $group_nameCell = $worksheet->getCell($group_name);
                                 $insertdata[$row]['group_name'] = $group_nameCell->getValue();
                                 $title = 'D' . $row;
                                 $titleCell = $worksheet->getCell($title);
                                 $insertdata[$row]['title'] = $titleCell->getValue();
                                 $insertdata[$row]['url'] = Request::str2url($insertdata[$row]['title']);
                                 $insertdata[$row]['description'] = $insertdata[$row]['title'];
                                 $article = 'B' . $row;
                                 $articleCell = $worksheet->getCell($article);
                                 $insertdata[$row]['article'] = array($articleCell->getValue());
                                 $count = 'P' . $row;
                                 $countCell = $worksheet->getCell($count);
                                 $insertdata[$row]['count'] = array($countCell->getValue());
                                 $made_in = 'E' . $row;
                                 $made_inCell = $worksheet->getCell($made_in);
                                 $insertdata[$row]['madein'] = array($made_inCell->getValue());
                                 $trademark = 'F' . $row;
                                 $trademarkCell = $worksheet->getCell($trademark);
                                 $insertdata[$row]['trademark'] = array($trademarkCell->getValue());
                                 $photos = 'G' . $row;
                                 $photosCell = $worksheet->getCell($photos)->getHyperlink()->getUrl();
                                 $insertdata[$row]['photos'] = array($photosCell);
                                 $price = 'S' . $row;
                                 $priceCell = $worksheet->getCell($price);
                                 $insertdata[$row]['price'] = $priceCell->getOldCalculatedValue();
                             }
                         }
                     }
                 }
                 //                    echo '<pre>';
                 //                    var_dump($insertdata);
                 //                    echo '</pre>';
                 $params = array(0 => array('type' => 'select', 'title' => 'Страна производителя', 'name' => 'madein', 'ordering' => '3'), 1 => array('type' => 'select', 'title' => 'Торговая марка', 'name' => 'trademark', 'ordering' => '4'), 2 => array('type' => 'photoalbum', 'title' => 'Фото', 'name' => 'photos', 'ordering' => '1'), 3 => array('type' => 'price', 'title' => 'Цена', 'name' => 'price', 'ordering' => '2'));
                 foreach ($insertdata as $id => $group) {
                     $names = Arr::get($group, 'group_name');
                     $groupnames = explode('\\', $names);
                     $parent = '602';
                     $groupnames = array_reverse($groupnames);
                     $i = 1;
                     foreach ($groupnames as $name) {
                         if ($name != '') {
                             $groups = new Model_Material('groups');
                             if ($parent) {
                                 //проверяем наличие такой группы у родителя
                                 $res = $groups->getGroupChildren($parent, $name);
                                 if (!$res) {
                                     //если нет создаем
                                     //$newGroupId = $groups->groupInsert($parent, $parent, array('name' => $name));
                                     //$parent = $newGroupId;
                                 } else {
                                     if ($load_data == TRUE) {
                                         //загружаем данные в группу при условии, что это последняя группа
                                         if ($i == count($groupnames)) {
                                             //                                                $fieldset = $material->getFieldsSet($res['id']);
                                             $result = $material->unique_url($group['url'], $res['id']);
                                             //                                                foreach($fieldset as $field)
                                             //                                                {
                                             //                                                    if(isset($group[$field['name']]))
                                             //                                                    {
                                             //                                                        $gname = $field['type'].'_'.$field['id'];
                                             //                                                        $gvalue = $group[$field['name']];
                                             //                                                        $group[$gname] = $gvalue;
                                             //                                                        unset($group[$field['name']]);
                                             //                                                    }
                                             //                                                }
                                             //
                                             //                                                echo "<pre>";
                                             //                                                var_dump($group);
                                             //                                                echo "</pre>";
                                             if ($result) {
                                                 $fieldset = $material->getFieldsSet($res['id']);
                                                 foreach ($fieldset as $field) {
                                                     if (isset($group[$field['name']])) {
                                                         $gname = $field['type'] . '_' . $field['id'];
                                                         $gvalue = $group[$field['name']];
                                                         $group[$gname] = $gvalue;
                                                         unset($group[$field['name']]);
                                                     }
                                                 }
                                                 unset($group['group_name']);
                                                 $result = $material->newMaterial($group, $res['id'], TRUE, TRUE);
                                             }
                                             //                                                if(!$res)
                                             //                                                {
                                             //                                                    $group['mid'] = $material->getMaterialIdByUrl($group['url'], $res['id']);
                                             //                                                    if(isset($group['sleep']))
                                             //                                                        unset($group['sleep']);
                                             //
                                             //                                                    $result = $material->saveMaterial($group, $res['id'], TRUE, TRUE);
                                             //                                                }
                                             //                                                else
                                             //                                                {
                                             //                                                    $result = $material->newMaterial($group, $res['id'], TRUE, TRUE);
                                             //                                                }
                                         }
                                     }
                                     $parent = $res['id'];
                                 }
                             }
                         }
                         //создаем стандартный набор параметров
                         if ($i == count($groupnames)) {
                             foreach ($params as $param) {
                                 $param['gid'] = $parent;
                                 //получаем параметры группы
                                 $groups->addParam($param);
                             }
                         }
                         ++$i;
                     }
                 }
                 //                    if(is_array($insertdata))
                 //                    {
                 //                        foreach($insertdata as $item)
                 //                        {
                 //                            $id = $material->unique_url($item['url'], $gid);
                 //                            if(!$id)
                 //                            {
                 //                                $item['mid'] = $material->getMaterialIdByUrl($item['url'], $gid);
                 //                                if(isset($item['sleep']))
                 //                                    unset($item['sleep']);
                 //
                 //                                $result = $material->saveMaterial($item, $gid, TRUE);
                 //                            }
                 //                            else
                 //                            {
                 //                                $result = $material->newMaterial($item, $gid, TRUE);
                 //                            }
                 //                        }
                 //                    }
             }
         } else {
             echo '<div class="error_box">Не выбран файл или он неверного формата</div>';
         }
     } else {
         if ($files_size > 0 && ($ext == 'xls' || $ext == 'xlsx')) {
             //echo $files['xls_price']['size'];
             //get upload file
             $uploadfile = $this->uploads_dir() . $temp;
             //if lile moved
             if (move_uploaded_file($tmp_name, $uploadfile) || isset($_GET['files_name'])) {
                 //load file
                 $objPHPExcel = PHPExcel_IOFactory::load($uploadfile);
                 //foreach pages
                 foreach ($objPHPExcel->getWorksheetIterator() as $worksheet) {
                     $worksheetTitle = $worksheet->getTitle();
                     $highestRow = $worksheet->getHighestRow();
                     // например, 10
                     $highestColumn = $worksheet->getHighestColumn();
                     // например, 'F'
                     $highestColumnIndex = PHPExcel_Cell::columnIndexFromString($highestColumn);
                     $nrColumns = ord($highestColumn) - 64;
                     //получаем все поля для группы
                     $fieldset = $material->getFieldsSet($gid);
                     //перебираем страницы файла
                     foreach ($objPHPExcel->getWorksheetIterator() as $worksheet) {
                         $fields_index = array();
                         $worksheetTitle = $worksheet->getTitle();
                         $highestRow = $worksheet->getHighestRow();
                         // например, 10
                         $highestColumn = $worksheet->getHighestColumn();
                         // например, 'F'
                         $highestColumnIndex = PHPExcel_Cell::columnIndexFromString($highestColumn);
                         $nrColumns = ord($highestColumn) - 64;
                         foreach ($fieldset as $field) {
                             if ($worksheetTitle === $field['xls_page']) {
                                 $fields_index[$field['xls_col']] = $field['type'] . '_' . $field['id'];
                             }
                         }
                         for ($row = Arr::get($group, 'first_row', 0); $row <= $highestRow; ++$row) {
                             //формируем заголовоки массива
                             $title = Arr::get($group, 'title_field', 'А') . $row;
                             $titleCell = $worksheet->getCell($title);
                             $desc = Arr::get($group, 'desc_field', 'А') . $row;
                             $descCell = $worksheet->getCell($desc);
                             $insertdata[$row]['title'] = Request::clearText($titleCell->getValue());
                             //  $insertdata[$row]['title'] = $streetCell->getValue().' '.$houseCell->getValue().$korpus.$liter;
                             $insertdata[$row]['url'] = Request::str2url($insertdata[$row]['title']);
                             $insertdata[$row]['description'] = Request::clearText($descCell->getValue());
                             foreach ($fields_index as $key => $value) {
                                 $cell = $worksheet->getCell($key . $row);
                                 $ftype = explode('_', $value);
                                 if (Arr::get($ftype, 0) == 'chars' || Arr::get($ftype, 0) == 'texts') {
                                     $insertdata[$row][$value] = strval($cell->getValue());
                                 } elseif (Arr::get($ftype, 0) == 'select' || Arr::get($ftype, 0) == 'date' || Arr::get($ftype, 0) == 'files' || Arr::get($ftype, 0) == 'photoalbum') {
                                     $param = $material->getParam(Arr::get($ftype, 1));
                                     if ($param && isset($param['delimetr']) && $param['delimetr'] != '') {
                                         $arr = explode($param['delimetr'], strval($cell->getValue()));
                                         $arr = array_map('trim', $arr);
                                         $insertdata[$row][$value] = $arr;
                                     } else {
                                         $insertdata[$row][$value] = array(strval($cell->getValue()));
                                     }
                                 } elseif (Arr::get($ftype, 0) == 'price') {
                                     $insertdata[$row][$value] = round($cell->getValue(), 2);
                                 }
                             }
                         }
                     }
                 }
                 //                    echo '<pre>';
                 //                    var_dump($insertdata);
                 //                    echo '</pre>';
                 if (is_array($insertdata)) {
                     foreach ($insertdata as $item) {
                         $id = $material->unique_url($item['url'], $gid);
                         if (!$id) {
                             $item['mid'] = $material->getMaterialIdByUrl($item['url'], $gid);
                             if (isset($item['sleep'])) {
                                 unset($item['sleep']);
                             }
                             $result = $material->saveMaterial($item, $gid, TRUE);
                         } else {
                             $result = $material->newMaterial($item, $gid, TRUE);
                         }
                     }
                 }
             }
         } else {
             echo '<div class="error_box">Не выбран файл или он неверного формата</div>';
         }
     }
 }