2026-09-15 single-teacher.php

This commit is contained in:
Dekart Deploy Bot 2026-09-15 17:44:44 +00:00
parent 02e319935c
commit 2d58edaedb
3 changed files with 111 additions and 10 deletions

View File

@ -1218,3 +1218,80 @@
}
}
/*
Иконки-акценты (оживление 2026-09-15) stroke-сет Lucide, 24×24
*/
/* Полоса дефицита: иконка слева от числа */
.teacher-single__scarcity-ico {
display: inline-flex;
flex: none;
color: #B45309;
}
/* Цифры: бейдж-иконка над числом */
.teacher-single__metric-ico {
display: inline-flex;
align-items: center;
justify-content: center;
width: 42px;
height: 42px;
margin-bottom: 10px;
border-radius: 50%;
background: var(--color-primary-light, #EFF6FF);
color: var(--color-primary, #2563EB);
}
/* Результаты: бейдж-иконка над цифрой */
.teacher-single__result-ico {
display: inline-flex;
align-items: center;
justify-content: center;
width: 42px;
height: 42px;
margin-bottom: 10px;
border-radius: 50%;
background: var(--color-primary-light, #EFF6FF);
color: var(--color-primary, #2563EB);
}
/* Карточка курса: иконка направления в шапке */
.teacher-single__course-ico {
display: inline-flex;
flex: none;
align-self: center;
color: var(--color-primary, #2563EB);
}
/* Образование: иконка в заголовке колонки */
.teacher-single__edu-ico {
display: inline-block;
margin-right: 8px;
vertical-align: -3px;
color: var(--color-primary, #2563EB);
}
/* Hero: doodles по углам фото (паттерн camp) */
.teacher-single__visual {
position: relative;
}
.teacher-single__doodle {
position: absolute;
pointer-events: none;
z-index: 2;
opacity: .9;
}
.teacher-single__doodle--gears {
top: -10px;
left: -14px;
}
.teacher-single__doodle--pencils {
right: -10px;
bottom: -8px;
}
@media (max-width: 768px) {
.teacher-single__doodle {
display: none;
}
}

View File

@ -540,6 +540,8 @@ $schema_graph[] = array('@type' => 'BreadcrumbList', 'itemListElement' => $bread
</div>
<div class="ds-hero__photo-ring" aria-hidden="true"></div>
</div>
<img class="teacher-single__doodle teacher-single__doodle--gears" src="<?php echo esc_url(get_template_directory_uri()); ?>/assets/images/doodles/hero-doodle-gears.svg" alt="" width="52" height="52" loading="lazy">
<img class="teacher-single__doodle teacher-single__doodle--pencils" src="<?php echo esc_url(get_template_directory_uri()); ?>/assets/images/doodles/hero-doodle-pencils.svg" alt="" width="46" height="46" loading="lazy">
<?php endif; ?>
</div>
@ -569,8 +571,10 @@ $schema_graph[] = array('@type' => 'BreadcrumbList', 'itemListElement' => $bread
<section class="teacher-single__metrics section-bg reveal" data-bg="teacher-metrics" aria-label="Цифры">
<div class="container">
<div class="teacher-single__metrics-grid<?php echo count($metrics) < 3 ? ' is-few' : ''; ?>">
<?php foreach ($metrics as $m) : ?>
<?php $metric_icons = array('icon-calendar', 'icon-star', 'icon-users', 'icon-graduation'); ?>
<?php foreach ($metrics as $mi => $m) : ?>
<div class="teacher-single__metric">
<span class="teacher-single__metric-ico" aria-hidden="true"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><use href="#<?php echo esc_attr($metric_icons[$mi] ?? 'icon-star'); ?>"/></svg></span>
<div class="teacher-single__metric-num"><?php echo esc_html($m['num']); ?></div>
<div class="teacher-single__metric-label"><?php echo esc_html($m['label']); ?></div>
</div>
@ -589,12 +593,14 @@ $schema_graph[] = array('@type' => 'BreadcrumbList', 'itemListElement' => $bread
<div class="teacher-single__scarcity-inner">
<?php if ($days_left !== '') : ?>
<div class="teacher-single__scarcity-item">
<span class="teacher-single__scarcity-ico" aria-hidden="true"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><use href="#icon-clock"/></svg></span>
<span class="teacher-single__scarcity-num" data-countdown="<?php echo esc_attr($days_left); ?>"><?php echo esc_html($days_left); ?></span>
<span class="teacher-single__scarcity-label">дней до <?php echo esc_html($exam_label); ?></span>
</div>
<?php endif; ?>
<?php if ($seats_left && (int) $seats_left > 0) : ?>
<div class="teacher-single__scarcity-item">
<span class="teacher-single__scarcity-ico" aria-hidden="true"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><use href="#icon-users"/></svg></span>
<span class="teacher-single__scarcity-num is-hot"><?php echo esc_html($seats_left); ?></span>
<span class="teacher-single__scarcity-label">места в группе</span>
</div>
@ -618,13 +624,13 @@ $schema_graph[] = array('@type' => 'BreadcrumbList', 'itemListElement' => $bread
<div class="teacher-single__edu-grid">
<?php if ($education) : ?>
<div class="teacher-single__edu-col">
<h3 class="teacher-single__edu-h">Образование</h3>
<h3 class="teacher-single__edu-h"><svg class="teacher-single__edu-ico" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><use href="#icon-graduation"/></svg>Образование</h3>
<div class="teacher-single__edu-text"><?php echo wp_kses_post($education); ?></div>
</div>
<?php endif; ?>
<?php if ($add_education) : ?>
<div class="teacher-single__edu-col">
<h3 class="teacher-single__edu-h">Повышение квалификации</h3>
<h3 class="teacher-single__edu-h"><svg class="teacher-single__edu-ico" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><use href="#icon-document"/></svg>Повышение квалификации</h3>
<div class="teacher-single__edu-text"><?php echo wp_kses_post($add_education); ?></div>
</div>
<?php endif; ?>
@ -674,6 +680,7 @@ $schema_graph[] = array('@type' => 'BreadcrumbList', 'itemListElement' => $bread
<div class="teacher-single__story-steps">
<h2 class="bento-h2">Как проходит первое занятие</h2>
<ol class="teacher-single__timeline">
<?php $timeline_icons = array('icon-calendar', 'icon-users', 'icon-target'); ?>
<?php $step_num = 0; ?>
<?php foreach ($steps as $i => $step) :
$st_title = $step['step_title'] ?? '';
@ -684,7 +691,7 @@ $schema_graph[] = array('@type' => 'BreadcrumbList', 'itemListElement' => $bread
$step_num++;
?>
<li class="teacher-single__timeline-item">
<span class="teacher-single__timeline-num" aria-hidden="true"><?php echo esc_html($step_num); ?></span>
<span class="teacher-single__timeline-num" aria-hidden="true"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><use href="#<?php echo esc_attr($timeline_icons[$step_num - 1] ?? 'icon-calendar'); ?>"/></svg></span>
<div class="teacher-single__timeline-content">
<h3><?php echo esc_html($st_title); ?></h3>
<?php if ($st_text) : ?><p><?php echo esc_html($st_text); ?></p><?php endif; ?>
@ -710,12 +717,14 @@ $schema_graph[] = array('@type' => 'BreadcrumbList', 'itemListElement' => $bread
<p class="bento-p"><?php echo esc_html($full_name); ?> ведёт занятия по направлениям в мини-группах <?php echo esc_html($group_size); ?> человек — выберите программу.</p>
</div>
<div class="teacher-single__courses-grid">
<?php $course_icons = array('icon-book', 'icon-game', 'icon-graduation', 'icon-target'); ?>
<?php $course_i = 1; ?>
<?php foreach ($subject_items as $si) :
$course_anchor = 'course-' . $course_i;
?>
<article class="teacher-single__course" id="<?php echo esc_attr($course_anchor); ?>">
<div class="teacher-single__course-head">
<span class="teacher-single__course-ico" aria-hidden="true"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><use href="#<?php echo esc_attr($course_icons[$course_i - 1] ?? 'icon-book'); ?>"/></svg></span>
<h2 class="teacher-single__course-title">
<?php echo esc_html($si['name']); ?> <?php echo esc_html($branch_city_prep); ?>
</h2>
@ -791,6 +800,7 @@ $schema_graph[] = array('@type' => 'BreadcrumbList', 'itemListElement' => $bread
<p class="bento-p">Формат мини-группы закрывает три разные задачи выберите свою.</p>
</div>
<div class="teacher-single__segments-grid">
<?php $segment_icons = array('icon-target', 'icon-book', 'icon-game'); ?>
<?php $seg_num = 0; ?>
<?php foreach ($segments as $i => $seg) :
if ($i >= 3) {
@ -804,7 +814,7 @@ $schema_graph[] = array('@type' => 'BreadcrumbList', 'itemListElement' => $bread
$seg_num++;
?>
<article class="teacher-single__segment-card">
<span class="teacher-single__segment-icon" aria-hidden="true"><?php echo esc_html(str_pad((string) $seg_num, 2, '0', STR_PAD_LEFT)); ?></span>
<span class="teacher-single__segment-icon" aria-hidden="true"><svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><use href="#<?php echo esc_attr($segment_icons[$seg_num - 1] ?? 'icon-target'); ?>"/></svg></span>
<h3 class="teacher-single__segment-title"><?php echo esc_html($s_title); ?></h3>
<p class="teacher-single__segment-text"><?php echo esc_html($s_text); ?></p>
</article>
@ -834,13 +844,15 @@ $schema_graph[] = array('@type' => 'BreadcrumbList', 'itemListElement' => $bread
<p class="bento-p">Не обещания, а факты что меняется в знаниях и успеваемости после занятий.</p>
</div>
<div class="teacher-single__results-grid">
<?php foreach ($results as $rs) :
<?php $result_icons = array('icon-trending-up', 'icon-check-circle', 'icon-star'); ?>
<?php foreach ($results as $ri => $rs) :
$rt = trim((string) ( $rs['result_title'] ?? '' ));
if ('' === $rt) {
continue;
}
?>
<div class="teacher-single__result">
<span class="teacher-single__result-ico" aria-hidden="true"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><use href="#<?php echo esc_attr($result_icons[$ri] ?? 'icon-trending-up'); ?>"/></svg></span>
<div class="teacher-single__result-num"><?php echo esc_html($rt); ?></div>
<div class="teacher-single__result-text"><?php echo esc_html($rs['result_text'] ?? ''); ?></div>
</div>
@ -945,7 +957,7 @@ $schema_graph[] = array('@type' => 'BreadcrumbList', 'itemListElement' => $bread
<section class="teacher-single__trust section-bg reveal" data-bg="teacher-trust" aria-labelledby="teacher-trust-title">
<div class="container">
<div class="teacher-single__trust-inner">
<span class="teacher-single__trust-shield" aria-hidden="true"><svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><use href="#icon-check"/></svg></span>
<span class="teacher-single__trust-shield" aria-hidden="true"><svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><use href="#icon-shield-check"/></svg></span>
<div>
<h2 id="teacher-trust-title" class="bento-h2">Работаем официально</h2>
<p class="teacher-single__trust-text"><?php echo esc_html($license); ?></p>
@ -988,13 +1000,13 @@ $schema_graph[] = array('@type' => 'BreadcrumbList', 'itemListElement' => $bread
<?php if ($geo_walk || $geo_parking || $geo_schools) : ?>
<ul class="teacher-single__geo-logistics">
<?php if ($geo_walk) : ?>
<li><span class="teacher-single__geo-pin" aria-hidden="true"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0Z"/><circle cx="12" cy="10" r="3"/></svg></span><?php echo esc_html($geo_walk); ?></li>
<li><span class="teacher-single__geo-pin" aria-hidden="true"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><use href="#icon-location-pin"/></svg></span><?php echo esc_html($geo_walk); ?></li>
<?php endif; ?>
<?php if ($geo_parking) : ?>
<li><span class="teacher-single__geo-pin" aria-hidden="true"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0Z"/><circle cx="12" cy="10" r="3"/></svg></span><?php echo esc_html($geo_parking); ?></li>
<li><span class="teacher-single__geo-pin" aria-hidden="true"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><use href="#icon-car"/></svg></span><?php echo esc_html($geo_parking); ?></li>
<?php endif; ?>
<?php if ($geo_schools) : ?>
<li><span class="teacher-single__geo-pin" aria-hidden="true"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0Z"/><circle cx="12" cy="10" r="3"/></svg></span><?php echo esc_html($geo_schools); ?></li>
<li><span class="teacher-single__geo-pin" aria-hidden="true"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><use href="#icon-graduation"/></svg></span><?php echo esc_html($geo_schools); ?></li>
<?php endif; ?>
</ul>
<?php endif; ?>

View File

@ -124,4 +124,16 @@ if (! defined('ABSPATH')) {
<path d="M8 3a3 3 0 1 0 1 5.83"/>
<path d="M16 3a3 3 0 1 1-1 5.83"/>
</symbol>
<symbol id="icon-shield-check" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<path d="M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z"/>
<path d="m9 12 2 2 4-4"/>
</symbol>
<symbol id="icon-car" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<path d="M19 17h2c.6 0 1-.4 1-1v-3c0-.9-.7-1.7-1.5-1.9C18.7 10.6 16 10 16 10s-1.3-1.4-2.2-2.3c-.5-.4-1.1-.7-1.8-.7H5c-.6 0-1.1.4-1.4.9l-1.4 2.9A3.7 3.7 0 0 0 2 12v4c0 .6.4 1 1 1h2"/>
<circle cx="7" cy="17" r="2"/>
<path d="M9 17h6"/>
<circle cx="17" cy="17" r="2"/>
</symbol>
</svg>