public static function makeDisciplinesDefault($napravl_id) { self::deleteAllDisciplines($napravl_id); foreach (self::getDisciplines($napravl_id) as $discipline_id) { Disciplines::addToNaprav($discipline_id, self::getDefaultID()); } }
function impdiscip_exec($Frm, $Err) { if (!$Err) { $v = $Frm->GetValue(0); if (!strpos($v["type"], "ms-excel")) { $Frm->_gui->informer->ERR("Неправильный тип файла"); page_reloadSubSec(); } else { $s = ""; if ($Frm->GetValue(1)) { db::truncate(TABLE_DISCIPLINE); db::truncate(TABLE_DISCIPLINE_TO_NAPRAVL); db::truncate(TABLE_AUTHOR_TO_DISCIPLINE); $s = "Таблица очищена. "; } require_once DIR_FS_DOCUMENT_ROOT . "/ext/PHPExcel/PHPExcel.php"; $loader = PHPExcel_IOFactory::load($v['tmp_name']); $loader->setActiveSheetIndex(0); $sheet = $loader->getActiveSheet(); $colNumber = PHPExcel_Cell::columnIndexFromString($sheet->getHighestColumn()); if ($colNumber < 1 or $colNumber > 2) { $Frm->_gui->informer->ERR("В таблице должно быть от 1 до 2 колонок(сейчас " . $colNumber . ")"); page_reloadSubSec(); } $rowIterator = $sheet->getRowIterator(); $addcnt = 0; foreach ($rowIterator as $row) { // Получили ячейки текущей строки и обойдем их в цикле $cellIterator = $row->getCellIterator(); foreach ($cellIterator as $cell) { $value = trim($cell->getValue()); $color = $sheet->getStyle($cell->getCoordinate())->getFill()->getEndColor()->getRGB(); if ($color == '000000') { $napravl = db::get_single_row("SELECT * FROM " . TABLE_NAPRAVL . " WHERE LOWER(name) = '" . db::input(strtolower($value)) . "'"); if ($napravl) { $napravl_id = $napravl['id']; } else { $napravl_id = Napravl::create(array('name' => $value)); } } else { if (empty($napravl_id)) { continue 2; } $discipline = db::get_single_row("SELECT * FROM " . TABLE_DISCIPLINE . " WHERE LOWER(name) = '" . db::input(strtolower($value)) . "'"); if ($discipline) { Disciplines::addToNaprav($discipline['id'], $napravl_id); continue 2; } else { $discipline_id = Discipline::create(array('name' => $value)); Disciplines::addToNaprav($discipline_id, $napravl_id); $addcnt++; } } } } $Frm->_gui->informer->OK($s . "Добавлено " . $addcnt . " строк"); page_reloadSubSec(); } } }