diff --git a/uisi/general/bosses.bak b/uisi/general/bosses.bak new file mode 100644 index 0000000..3319006 --- /dev/null +++ b/uisi/general/bosses.bak @@ -0,0 +1,67 @@ +SetTitle("О руководстве"); +?> +

+ +

О руководстве

+ +

+ + \ No newline at end of file diff --git a/uisi/general/bosses.php b/uisi/general/bosses.php index 3319006..49ffd1b 100644 --- a/uisi/general/bosses.php +++ b/uisi/general/bosses.php @@ -1,67 +1,278 @@ SetTitle("О руководстве"); -?> -

- -

О руководстве

- -

- - \ No newline at end of file +require($_SERVER['DOCUMENT_ROOT'].'/bitrix/header.php'); + +function Http404() +{ + CHTTP::SetStatus('404 Not Found'); + @define('ERROR_404','Y'); + + $rsSites = CSite::GetByID(SITE_ID); + $arSite = $rsSites->Fetch(); + include($arSite['DOC_ROOT'].'/404.php'); + return; +} + +function getAddress($arUser) +{ + $arAddress = array(); + foreach (array($arUser['WORK_ZIP'], $arUser['WORK_CITY'], $arUser['WORK_STREET']) as $part) { + if ($part) { + $arAddress[] = $part; + } + } + return implode(',', $arAddress); +} + +function getFullName($name, $name_second, $name_last) +{ + $name_full = ($name_last) ? $name_last.' ' : '' ; + $name_full .= $name; + $name_full .= ($name_second) ? ' '.$name_second : '' ; + return $name_full; +} + +function getUserRows($arUser, $arFieldsBefore = array(), $arFieldsAfter = array()) +{ + $arFieldsBase = array( + 'UF_TRAINING_DIRECTIO' => array( + 'title' => 'Наименование направления подготовки и (или) специальности', + 'list' => false + ), + 'UF_TOTAL_WORK_EXPERI' => array( + 'title' => 'Общий стаж работы', + 'list' => false + ), + 'UF_PROF_EXP' => array( + 'title' => 'Стаж работы по специальности', + 'list' => false + ), + 'UF_ADVANCED_TRAINING' => array( + 'title' => 'Повышение квалификации', + 'list' => true + ), + 'UF_QUALIFICATION' => array( + 'title' => 'Квалификация', + 'list' => false + ), + 'UF_EDUCATION_LEVEL' => array( + 'title' => 'Уровень образования', + 'list' => false + ), + ); + $arFields = array_merge($arFieldsBefore, $arFieldsBase, $arFieldsAfter); + + $arUserRows = array(); + foreach ($arFields as $field => $data) { + $value = $arUser[$field]; + if ($value) { + if ($data['list']) { + $value = renderList($value); + } + $arUserRows[] = ' + '.$data['title'].': + '.$value.' + '; + } + } + + $address = getAddress($arUser); + if ($address) { + $arUserRows[] = ' + Адрес: + '.$address.' + '; + } + + return $arUserRows; +} + +function renderList($data) +{ + $list = array(); + foreach (explode(';', $data) as $item) { + $item = trim($item); + if ($item) { + $list[] = $item; + } + } + + if (count($list) == 1) { + return $data; + } + + return ''; +} + +$title = 'О руководстве'; +$style = '.cont1 td,th { + font-size: 12px; + } + .staff-info { + padding-left: 10px; + }'; +$script = ''; + +$groupsAllowed = array(14); +$id = htmlspecialcharsEx($_REQUEST['id']); +if ($id) { + $arGroups = CUser::GetUserGroup($id); + $result_intersect = array_intersect($groupsAllowed, $arGroups); + if (empty($result_intersect)) { + return Http404(); + } + + $rsUser = CUser::GetByID($id); + if (!$rsUser) { + return Http404(); + } + + $arUser = $rsUser->Fetch(); + + $style .= '.staff-detail-table { + border-collapse: collapse; + } + .staff-detail-table tr:nth-child(2n) { + background-color: rgba(24, 24, 24, 0.1); + } + .staff-detail-table h1 { + font-size: 16px; + } + '; + + $content = '<- '.$title.''; + + $name_full = getFullName($arUser['NAME'], $arUser['SECOND_NAME'], $arUser['LAST_NAME']); + $title .= ' - '.$name_full; + + $content .= ''; + + $photo_path = '/uisi/media/staff/'.$arUser['LOGIN'].'-w'; + $photo = CFile::Show2Images($photo_path.'-pre.png', $photo_path.'.png', 256, 256); + $content .= ' + + + '; + + $arFieldsBefore = array( + 'WORK_POSITION' => array( + 'title' => 'Должность', + 'list' => false + ), + 'WORK_PHONE' => array( + 'title' => 'Телефон', + 'list' => false + ), + ); + $arUserRows = getUserRows($arUser, $arFieldsBefore); + $content .= implode($arUserRows); + + $email = $arUser['UF_EMAIL']; + if ($email) { + $content .= ' + + + '; + } + + $content .= '
'.$photo.'

'.$name_full.'

Электронный адрес:'.$email.'
'; +} else { + $rsUsers = CUser::GetList(($by='UF_SORT'), ($order='asc'), array('GROUPS_ID'=>$groupsAllowed), array('SELECT'=>array('UF_*'))); + + // разбиваем постранично по 50 записей + // $rsUsers->NavStart(50); + + // печатаем постраничную навигацию + // echo $rsUsers->NavPrint(GetMessage('PAGES')); + + $style .= '.staff-list-item-preview { + display: none; + border-top: 1px dotted #828282; + } + .staff-list-item-preview-link { + display: inline-block; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0.3em solid; + border-right: 0.3em solid transparent; + border-bottom: 0; + border-left: 0.3em solid transparent; + font-size: 20px !important; + } + .staff-list-item-preview-table { + width: 90%; + } + .staff-list-item-preview-table td:first-child { + width: 30%; + }'; + + $content = '

Педагогический состав

'; + + $content = '<- Руководство. Педагогический состав'; + + $content .= ' + + + + + + + + + + '; + + while ($arUser = $rsUsers->GetNext()) { + + $arPreviewRows = getUserRows($arUser); + + $content .= ''; + + $url_detail = '?id='.$arUser['ID']; + + $photo = CFile::ShowImage('/uisi/media/staff/'.$arUser['LOGIN'].'-w.png', 100, 100, 'border=0', $url_detail); + $content .= ''; + + $name_full = getFullName($arUser['NAME'], $arUser['SECOND_NAME'], $arUser['LAST_NAME']); + $content .= ''; + + $content .= ''; + + $content .= ''; + $content .= ''; + + $content .= ''; + + $content .= ''; + + if ($arPreviewRows) { + $content .= ''; + } + } + + $content .= '
ФИОДолжностьТелефонПочта
'.$photo.''.$name_full.''; + if ($arPreviewRows) { + $content .= ''; + } + $content .= ''.$arUser['WORK_POSITION'].''.$arUser['WORK_PHONE'].''; + $email = $arUser['UF_EMAIL']; + if ($email) { + $content .= ''.$email.''; + } + $content .= '
'; + $content .= implode($arPreviewRows); + $content .= '
'; + + $script .= '$(".staff-list-item-preview-link").on("click", function() { + $(this).closest("tr").next("tr").find(".staff-list-item-preview").toggle(); + return false; + });'; +} + +$APPLICATION->SetTitle($title); + +echo ''; +echo $content; +echo ''; + +?> \ No newline at end of file