<?php use Components\Classes\Author; use Components\Classes\Napravls; use Components\Classes\Disciplines; use Components\Entity\Napravl; use Components\Entity\Discipline; $author_id = $_SESSION['user']['data']['id']; if (!empty($_POST['save'])) { $disciplines = isset($_POST['discipline']) ? $_POST['discipline'] : array(); Author::delete_napravl_all($author_id); Author::addDisciplines($author_id, array_keys($disciplines)); $GUI->OK('Сохранено'); } $napravlAll = Napravl::findAll(); $authorNapravls = Author::get_napravl($author_id); $authorDisciplines = Author::getDisciplines($author_id); $result[] = '<table style="width: 100%;">'; if (count($napravlAll)) { foreach ($napravlAll as $napravl) { $disciplines = Napravls::getDisciplines($napravl['id']); $checked = in_array($napravl['id'], $authorNapravls); $result[] = '<tr style="background-color: #d3d3d3;">'; $result[] = '<td colspan="100">'; $result[] = '<div class="module_name"> <label for="napravl[' . $napravl['id'] . ']">' . Napravls::getName($napravl['id']) . '</label> </div>'; if (count($disciplines)) { $result[] = ' '; $result[] = '<span style="vertical-align: middle;line-height: 1.9;" data-toggle="select" data-target="napravl_' . $napravl['id'] . '">выбрать все</span>'; $result[] = ' ';
/** * @deprecated * @param $naprav_id * @return mixed */ function get_naprav_name($naprav_id) { try { $napravl = Napravl::find($naprav_id); return $napravl['name']; } catch (InvalidArgumentException $e) { return 'не указано'; } catch (EntityNotFoundException $e) { return 'не указано'; } }
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(); } } }
$tbl = $GUI->Table("sprav" . $n); if (user_can($GUI->mmenu->selected->id, $GUI->mmenu->selected->selected->id, $_SESSION["user"]["data"]["group_id"], "Редактировать")) { $tbl->RowEvent2 = "document.location.href=\"?section=sprav&subsection=2&edit=%var%\""; } $r = $tbl->NewColumn(); $r->Caption = "Номер"; $r->DoSort = true; $r->Key = "id"; $r = $tbl->NewColumn(); $r->Caption = "Наименование"; $r->DoSort = true; $r->Key = "name"; $r = $tbl->NewColumn(); $r->Caption = "Количество авторов"; $r->DoSort = true; $r->Process = "get_authors_qt_for_napravl"; $r = $tbl->NewColumn(); $r->Caption = ""; $r->Process = "tp_napravl_cmds"; foreach (Napravl::findAll() as $d) { $tbl->AddRow($d, "id"); } $tbl->InlineSort(true); if (user_can($GUI->mmenu->selected->id, $GUI->mmenu->selected->selected->id, $_SESSION["user"]["data"]["group_id"], "Добавить")) { $GUI->cmdmenu->AddItem("Добавить", "?section=sprav&subsection=2&add"); } } function get_authors_qt_for_napravl($value, $row, $table, $info) { return Napravls::getAuthorsQt($row['id']); }