вывод раздела "О руководстве" через скрипт

This commit is contained in:
Ivan Ivanov 2019-10-19 13:22:53 +03:00
parent 13bd1b6f12
commit a5592e5a34
2 changed files with 344 additions and 66 deletions

67
uisi/general/bosses.bak Normal file
View File

@ -0,0 +1,67 @@
<?
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");
$APPLICATION->SetTitle("О руководстве");
?>
<p></p>
<p align="center"><strong><font size="3" face="Times New Roman">О руководстве</font></strong></p>
<p> </p>
<ul>
<li>
<p>
<b>Минина Елена Александровна</b>
<br>
Должность: Директор
<br>
Телефон: +7(343)232-32-00
<br>
email: <a title="написать письмо" href="mailto:mea@uisi.ru">mea@uisi.ru</a>
<br>
Адрес: 620109, г.Екатеринбург, ул.Мельникова, 50, каб. №322
</p>
</li>
<br>
<li>
<p>
<b>Чукина Наталья Васильевна</b>
<br>
Должность: Главный бухгалтер
<br>
Телефон: +7(343)232-39-03
<br>
email: <a title="написать письмо" href="mailto:cnv@uisi.ru">cnv@uisi.ru</a>
<br>
Адрес: 620109, г.Екатеринбург, ул.Мельникова, 50, каб. №320
</p>
</li>
<br>
<li>
<p>
<b>Субботин Евгений Андреевич</b>
<br>
Должность: Начальник управления административного и социального обеспечения
<br>
Телефон: +7(343)231-57-54
<br>
email: <a title="написать письмо" href="mailto:adm@uisi.ru">adm@uisi.ru</a>
<br>
Адрес: 620109, г.Екатеринбург, ул.Мельникова, 50, каб. №325
</p>
</li>
<br>
<li>
<p>
<b>Белякова Анна Николаевна</b>
<br>
Должность: Начальник учебного управления
<br>
Телефон: +7(343)232-39-02
<br>
email: <a title="написать письмо" href="mailto:ban@uisi.ru">ban@uisi.ru</a>
<br>
Адрес: 620109, г.Екатеринбург, ул.Мельникова, 50, каб. №321
</p>
</li>
</ul><?require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php");?>

View File

@ -1,67 +1,278 @@
<?
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");
$APPLICATION->SetTitle("О руководстве");
?>
<p></p>
<p align="center"><strong><font size="3" face="Times New Roman">О руководстве</font></strong></p>
<p> </p>
<ul>
<li>
<p>
<b>Минина Елена Александровна</b>
<br>
Должность: Директор
<br>
Телефон: +7(343)232-32-00
<br>
email: <a title="написать письмо" href="mailto:mea@uisi.ru">mea@uisi.ru</a>
<br>
Адрес: 620109, г.Екатеринбург, ул.Мельникова, 50, каб. №322
</p>
</li>
<br>
<li>
<p>
<b>Чукина Наталья Васильевна</b>
<br>
Должность: Главный бухгалтер
<br>
Телефон: +7(343)232-39-03
<br>
email: <a title="написать письмо" href="mailto:cnv@uisi.ru">cnv@uisi.ru</a>
<br>
Адрес: 620109, г.Екатеринбург, ул.Мельникова, 50, каб. №320
</p>
</li>
<br>
<li>
<p>
<b>Субботин Евгений Андреевич</b>
<br>
Должность: Начальник управления административного и социального обеспечения
<br>
Телефон: +7(343)231-57-54
<br>
email: <a title="написать письмо" href="mailto:adm@uisi.ru">adm@uisi.ru</a>
<br>
Адрес: 620109, г.Екатеринбург, ул.Мельникова, 50, каб. №325
</p>
</li>
<br>
<li>
<p>
<b>Белякова Анна Николаевна</b>
<br>
Должность: Начальник учебного управления
<br>
Телефон: +7(343)232-39-02
<br>
email: <a title="написать письмо" href="mailto:ban@uisi.ru">ban@uisi.ru</a>
<br>
Адрес: 620109, г.Екатеринбург, ул.Мельникова, 50, каб. №321
</p>
</li>
</ul><?require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php");?>
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/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');?>