Exemplo n.º 1
0
 public static function makeDisciplinesDefault($napravl_id)
 {
     self::deleteAllDisciplines($napravl_id);
     foreach (self::getDisciplines($napravl_id) as $discipline_id) {
         Disciplines::addToNaprav($discipline_id, self::getDefaultID());
     }
 }
Exemplo n.º 2
0
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();
        }
    }
}