uisi.ru/uisi/general/bosses.php
2023-11-28 21:06:25 +05:00

278 lines
8.5 KiB
PHP
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?
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[] = '<tr>
<td>'.$data['title'].':</td>
<td>'.$value.'</td>
</tr>';
}
}
$address = getAddress($arUser);
if ($address) {
$arUserRows[] = '<tr>
<td>Адрес:</td>
<td>'.$address.'</a></td>
</tr>';
}
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 '<ul class="staff-info"><li>'.implode('</li><li>', $list).'</li></ul>';
}
$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 = '<a href="/uisi/general/bosses.php"><- '.$title.'</a>';
$name_full = getFullName($arUser['NAME'], $arUser['SECOND_NAME'], $arUser['LAST_NAME']);
$title .= ' - '.$name_full;
$content .= '<table class="staff-detail-table"><tbody>';
$photo_path = '/uisi/media/staff/'.$arUser['LOGIN'].'-w';
$photo = CFile::Show2Images($photo_path.'-pre.png', $photo_path.'.png', 256, 256);
$content .= '<tr>
<td style="padding: 10px;">'.$photo.'</td>
<td><h1>'.$name_full.'</h1></td>
</tr>';
$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 .= '<tr>
<td>Электронный адрес:</td>
<td><a href="mailto:'.$email.'">'.$email.'</a></td>
</tr>';
}
$content .= '</tbody></table>';
} 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 = '<h1>Педагогический состав</h1>';
$content = '<a href="/uisi.ru/">Главная</a> > <a href="/uisi/general/osnov_sved.php">Сведения об образовательной организации</a> > <a href="/uisi/general/rukovodstvo.php">Руководство. Педагогический состав</a> > Руководство';
$content .= '<table style="border-collapse: collapse;">
<thead>
<tr>
<th></th>
<th colspan="2" style="text-align: left;">ФИО</th>
<th style="text-align: left;">Должность</th>
<th style="text-align: left;">Телефон</th>
<th style="text-align: left;">Почта</th>
</tr>
</thead>
<tbody>';
while ($arUser = $rsUsers->GetNext()) {
$arPreviewRows = getUserRows($arUser);
$content .= '<tr style="border-top: 1px solid #828282;">';
$url_detail = '?id='.$arUser['ID'];
$photo = CFile::ShowImage('/uisi/media/staff/'.$arUser['LOGIN'].'-w.png', 100, 100, 'border=0', $url_detail);
$content .= '<td style="padding: 10px;">'.$photo.'</td>';
$name_full = getFullName($arUser['NAME'], $arUser['SECOND_NAME'], $arUser['LAST_NAME']);
$content .= '<td><a href="'.$url_detail.'" title="полные сведения">'.$name_full.'</a></td>';
$content .= '<td style="padding: 15px;">';
if ($arPreviewRows) {
$content .= '<a class="staff-list-item-preview-link" href="#"></a>';
}
$content .= '</td>';
$content .= '<td>'.$arUser['WORK_POSITION'].'</td>';
$content .= '<td style="padding: 5px;">'.$arUser['WORK_PHONE'].'</td>';
$content .= '<td style="padding: 5px;">';
$email = $arUser['UF_EMAIL'];
if ($email) {
$content .= '<a href="mailto:'.$email.'">'.$email.'</a>';
}
$content .= '</td>';
$content .= '</tr>';
if ($arPreviewRows) {
$content .= '<tr><td class="staff-list-item-preview" colspan="6"><table class="staff-list-item-preview-table"><tbody>';
$content .= implode($arPreviewRows);
$content .= '</tbody></table></td></tr>';
}
}
$content .= '</tbody></table>';
$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 '<style>'.$style.'</style>';
echo $content;
echo '<script>$( function() { '.$script.' } );</script>';
?><?require($_SERVER['DOCUMENT_ROOT'].'/bitrix/footer.php');?>