From 480188c549054f28389524da7e28f84e75842ccc Mon Sep 17 00:00:00 2001 From: Dekart Deploy Bot Date: Sun, 10 May 2026 13:53:01 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9B=D0=B0=D0=B3=D0=B5=D1=80=D1=8C:=20=D0=A1?= =?UTF-8?q?=D0=B5=D0=BA=D1=86=D0=B8=D1=8F=201-3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- wp-content/themes/dekart/assets/css/camp.css | 14 +- wp-content/themes/dekart/assets/js/camp.js | 170 +++---- wp-content/themes/dekart/page-camp.php | 500 +++++++++---------- 3 files changed, 333 insertions(+), 351 deletions(-) diff --git a/wp-content/themes/dekart/assets/css/camp.css b/wp-content/themes/dekart/assets/css/camp.css index ee45e85..b73b479 100644 --- a/wp-content/themes/dekart/assets/css/camp.css +++ b/wp-content/themes/dekart/assets/css/camp.css @@ -903,7 +903,6 @@ p { } .btn-close-mentors { - position: absolute; position: absolute; bottom: 100%; left: 100%; @@ -2836,6 +2835,19 @@ p { font-weight: 500; } +.hero-cta__note { + font-family: Inter, sans-serif; + font-size: 14px; + line-height: 1.5; + color: #555; + text-align: center; + margin-top: 18px; + max-width: 360px; + margin-left: auto; + margin-right: auto; + font-weight: 400; +} + .btn-write-camp { background-color: #39b7ea; color: #fff; diff --git a/wp-content/themes/dekart/assets/js/camp.js b/wp-content/themes/dekart/assets/js/camp.js index a45ccc3..bdbd067 100644 --- a/wp-content/themes/dekart/assets/js/camp.js +++ b/wp-content/themes/dekart/assets/js/camp.js @@ -1,107 +1,84 @@ -document.querySelector('body').style='background: #FFF;'; - -var swiper = new Swiper(".camp-swiper-foto-thumbsSlider", { - spaceBetween: 10, - slidesPerView: 7, - freeMode: true, - watchSlidesVisibility: true, - watchSlidesProgress: true, -}); -var swiper2 = new Swiper(".camp-swiper-foto", { - spaceBetween: 10, - slidesPerView: 1, - navigation: { - nextEl: ".swiper-button-next", - prevEl: ".swiper-button-prev", - }, - thumbs: { - swiper: swiper, - }, -}); - -const btnCloseModalPrograms = document.querySelector('.btn-close-programs'); -const btnCloseModalMentors = document.querySelector('.btn-close-mentors'); -const modalPrograms = document.querySelector('.modal-programs'); -const modalMentors = document.querySelector('.modal-mentors'); - -const modalCampRequestForm = document.querySelector('.modal-camp-request-form'); - -btnCloseModalPrograms.addEventListener("click", function (event) { - modalPrograms.classList.remove('open'); -}); -btnCloseModalMentors.addEventListener("click", function (event) { - modalMentors.classList.remove('open'); -}); - -document.addEventListener("click", function (event) { - const target = event.target; - - if (target.classList.contains("btn-close-request-form-camp")) { - modalCampRequestForm.style="display: none;"; - return; - } - - if (target.classList.contains("btn-write-camp")) { - modalCampRequestForm.style=""; - return; - } - - if (target.classList.contains("btn-program")) { - modalPrograms.querySelector('.modal-programs__img').innerHTML = target.parentNode.querySelector('.programs__item_img').outerHTML; - modalPrograms.querySelector('.programs__item_title').innerHTML = target.parentNode.querySelector('.programs__item_title').innerHTML; - modalPrograms.querySelector('.programs__item_price').innerHTML = target.parentNode.querySelector('.programs__item_price').innerHTML; - modalPrograms.querySelector('.programs__content').innerHTML = target.parentNode.querySelector('.programs_content').innerHTML; - modalPrograms.classList.add('open'); - return; - } - if (target.classList.contains("btn-mentors")) { - modalMentors.querySelector('.modal-programs__img').innerHTML = target.parentNode.querySelector('.mentors__item_img').outerHTML; - modalMentors.querySelector('.modal-mentors_name').innerHTML = target.parentNode.querySelector('.mentors__item_name').innerHTML; - modalMentors.querySelector('.modal-mentors_job').innerHTML = target.parentNode.querySelector('.mentors__item_text').innerHTML; - modalMentors.querySelector('.mentors__about-col_text').innerHTML = target.parentNode.querySelector('.mentor_education').innerHTML; - - modalMentors.querySelector('.modal-mentors__directions').innerHTML = target.parentNode.querySelector('.HTMLdirection').innerHTML; - modalMentors.querySelector('.mentors__experience-col_text').innerHTML = target.parentNode.querySelector('.mentor_experience').innerHTML; - modalMentors.querySelector('.modal-additional__education_list').innerHTML = target.parentNode.querySelector('.mentor_add_experience').innerHTML; - modalMentors.classList.add('open'); - return; - } -}); +document.querySelector('body').style='background: #FFF;'; -// Scroll animation: fade-up sections -document.addEventListener('DOMContentLoaded', function() { - const observer = new IntersectionObserver((entries) => { - entries.forEach(entry => { - if (entry.isIntersecting) { - entry.target.classList.add('visible'); - } - }); - }, { threshold: 0.15 }); - - document.querySelectorAll('.about-us__wrapper, .suggestions__item, .suggestions__subtitle, .suggestions h2').forEach(el => { - el.classList.add('fade-up'); - observer.observe(el); - }); - - // Stagger for suggestion cards - document.querySelectorAll('.suggestions__item').forEach((card, i) => { - card.style.transitionDelay = (i * 0.1) + 's'; - }); +var swiper = new Swiper(".camp-swiper-foto-thumbsSlider", { + spaceBetween: 10, + slidesPerView: 7, + freeMode: true, + watchSlidesVisibility: true, + watchSlidesProgress: true, +}); +var swiper2 = new Swiper(".camp-swiper-foto", { + spaceBetween: 10, + slidesPerView: 1, + navigation: { + nextEl: ".swiper-button-next", + prevEl: ".swiper-button-prev", + }, + thumbs: { + swiper: swiper, + }, +}); + +const btnCloseModalPrograms = document.querySelector('.btn-close-programs'); +const btnCloseModalMentors = document.querySelector('.btn-close-mentors'); +const modalPrograms = document.querySelector('.modal-programs'); +const modalMentors = document.querySelector('.modal-mentors'); + +const modalCampRequestForm = document.querySelector('.modal-camp-request-form'); + +btnCloseModalPrograms.addEventListener("click", function (event) { + modalPrograms.classList.remove('open'); +}); +btnCloseModalMentors.addEventListener("click", function (event) { + modalMentors.classList.remove('open'); +}); + +document.addEventListener("click", function (event) { + const target = event.target; + + if (target.classList.contains("btn-close-request-form-camp")) { + modalCampRequestForm.style="display: none;"; + return; + } + + if (target.classList.contains("btn-write-camp")) { + modalCampRequestForm.style=""; + return; + } + + if (target.classList.contains("btn-program")) { + modalPrograms.querySelector('.modal-programs__img').innerHTML = target.parentNode.querySelector('.programs__item_img').outerHTML; + modalPrograms.querySelector('.programs__item_title').innerHTML = target.parentNode.querySelector('.programs__item_title').innerHTML; + modalPrograms.querySelector('.programs__item_price').innerHTML = target.parentNode.querySelector('.programs__item_price').innerHTML; + modalPrograms.querySelector('.programs__content').innerHTML = target.parentNode.querySelector('.programs_content').innerHTML; + modalPrograms.classList.add('open'); + return; + } + if (target.classList.contains("btn-mentors")) { + modalMentors.querySelector('.modal-programs__img').innerHTML = target.parentNode.querySelector('.mentors__item_img').outerHTML; + modalMentors.querySelector('.modal-mentors_name').innerHTML = target.parentNode.querySelector('.mentors__item_name').innerHTML; + modalMentors.querySelector('.modal-mentors_job').innerHTML = target.parentNode.querySelector('.mentors__item_text').innerHTML; + modalMentors.querySelector('.mentors__about-col_text').innerHTML = target.parentNode.querySelector('.mentor_education').innerHTML; + + modalMentors.querySelector('.modal-mentors__directions').innerHTML = target.parentNode.querySelector('.HTMLdirection').innerHTML; + modalMentors.querySelector('.mentors__experience-col_text').innerHTML = target.parentNode.querySelector('.mentor_experience').innerHTML; + modalMentors.querySelector('.modal-additional__education_list').innerHTML = target.parentNode.querySelector('.mentor_add_experience').innerHTML; + modalMentors.classList.add('open'); + return; + } }); -// Scroll animation: all sections (function() { + const prefersReducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches; + if (prefersReducedMotion) return; + const animatedSections = [ '.hero-media-search__container', '.about-us__wrapper', - '.suggestions h2', - '.suggestions__subtitle', - '.suggestions__item', '.infograph h2', '.infograph .camp_text', '.infograph-wrapper', '.programs h2', - '.programs__subtitle', '.programs-wrapper > div', '.mentors h2', '.mentors-wrapper > div', @@ -116,7 +93,7 @@ document.addEventListener('DOMContentLoaded', function() { '.contact-wrapper', ].join(','); - const observer2 = new IntersectionObserver((entries) => { + const observer = new IntersectionObserver((entries) => { entries.forEach(entry => { if (entry.isIntersecting) { entry.target.classList.add('visible'); @@ -126,11 +103,10 @@ document.addEventListener('DOMContentLoaded', function() { document.querySelectorAll(animatedSections).forEach(el => { el.classList.add('fade-up'); - observer2.observe(el); + observer.observe(el); }); - // Stagger for cards - document.querySelectorAll('.suggestions__item, .routine__item, .programs-wrapper > div, .mentors-wrapper > div').forEach((card, i) => { + document.querySelectorAll('.programs-wrapper > div, .mentors-wrapper > div').forEach((card, i) => { card.style.transitionDelay = (i * 0.08) + 's'; }); })(); diff --git a/wp-content/themes/dekart/page-camp.php b/wp-content/themes/dekart/page-camp.php index eb4ab10..e1046b9 100644 --- a/wp-content/themes/dekart/page-camp.php +++ b/wp-content/themes/dekart/page-camp.php @@ -12,10 +12,32 @@ $priceMin = 1000000; $priceMax = 0; $programs = carbon_get_post_meta($post_id, 'programs' ); -foreach ($programs as $item) { - $price = (int)$item['programs_price']; - if ($price > $priceMax) $priceMax = $price; - if ($price < $priceMin) $priceMin = $price; +if (is_array($programs)) { + foreach ($programs as $item) { + $price = (int)$item['programs_price']; + if ($price > $priceMax) $priceMax = $price; + if ($price < $priceMin) $priceMin = $price; + } +} + +/** + * Banner helper + */ +function getBanner($nameBanner) { + $banner_add_img = wp_get_attachment_url(carbon_get_post_meta( get_the_ID(), 'banner_add_img' . $nameBanner )); + if ($banner_add_img == '') return; + $banner_add_title = carbon_get_post_meta( get_the_ID(), 'banner_add_title' . $nameBanner ); + $banner_add_text = carbon_get_post_meta( get_the_ID(), 'banner_add_text' . $nameBanner ); + $banner_add_text_min = carbon_get_post_meta( get_the_ID(), 'banner_add_text_min' . $nameBanner ); + echo ""; } ?>
@@ -74,10 +96,10 @@ $metrics = [
-

Записаться на бесплатный пробный день

- - + + +

Один пробный день — за наш счёт. Оцените качество сами, а решение примете после.

@@ -89,12 +111,12 @@ $metrics = [ 'class' => 'hero-media-search__image', 'fetchpriority' => 'high', 'loading' => 'eager', - 'alt' => esc_attr( $hero['h1'] ) + 'alt' => esc_attr( wp_trim_words( $hero['h1'], 10 ) ) ] ); ?> <?php echo esc_attr( $hero['h1'] ); ?> + alt="Детский лагерь Декарт" loading="eager"> @@ -113,10 +135,10 @@ $metrics = [
-

Записаться на бесплатный пробный день

- - + + +

Один пробный день — за наш счёт. Оцените качество сами, а решение примете после.

@@ -164,7 +186,7 @@ $metrics = [ ⭐ 2500+ мам доверили нам лето @@ -176,18 +198,20 @@ $metrics = [

Мамы выбирают Dekart, потому что дети бегут в лагерь без уговоров

Они возвращаются с горящими глазами. И просятся обратно каждый день.

$item) { - $suggestions_title = $item['suggestions_title']; - $suggestions_text = $item['suggestions_text']; - $icon_file = $icons[$index % count($icons)]; - ?>
-
- -
-

-

-
+ if (is_array($suggestions)) { + foreach ($suggestions as $index => $item) { + $suggestions_title = $item['suggestions_title']; + $suggestions_text = $item['suggestions_text']; + $icon_file = $icons[$index % count($icons)]; + ?>
+
+ +
+

+

+
@@ -225,29 +249,31 @@ $metrics = [
-
- <?php echo get_post_meta( $programs_img, '_wp_attachment_image_alt', true ); ?> -

-

-

-

от ₽ /

- - -
- + if (is_array($programs)) { + foreach ($programs as $item) { + $programs_img = $item['programs_img']; + $programs_title = $item['programs_title']; + $programs_date = $item['programs_date']; + $programs_text = $item['programs_text']; + $programs_price = $item['programs_price']; + $programs_days = $item['programs_days']; + $programs_content = $item['programs_content'];?> +
+ <?php echo get_post_meta( $programs_img, '_wp_attachment_image_alt', true ); ?> +

+

+

+

от ₽ /

+ + +
+
- + - +
" . $direction['direction_name']."";} - $teacher_foto = carbon_get_post_meta($mentor[0]['id'] , 'teacher_avatar'); - ?> -
- - - - <?php echo get_post_meta( $teacher_foto, '_wp_attachment_image_alt', true ); ?> - - - - - -
- + if (is_array($mentors)) { + foreach ($mentors as $item) { + $mentor = $item['mentor']; + $mentorName = get_the_title($mentor[0]['id']); + $mentor_job = $item['mentor_job']; + $mentor_directions = $item['mentor_directions']; + $HTMLdirection = ""; + $post_url = get_permalink($mentor[0]['id']); + if (is_array($mentor_directions)) { + foreach ($mentor_directions as $direction) {$HTMLdirection .= "" . esc_html($direction['direction_name'])."";} + } + $teacher_foto = carbon_get_post_meta($mentor[0]['id'] , 'teacher_avatar'); + ?> +
+ + + + <?php echo get_post_meta( $teacher_foto, '_wp_attachment_image_alt', true ); ?> + + + + + +
+
- +

Распорядок дня в клубе

-
-
-
-
-

-

-

+ if (is_array($routine)) { + foreach ($routine as $item) { + $routine_time = $item['routine_time']; + $routine_title = $item['routine_title']; + $routine_text = $item['routine_text']; + ?> +
+
+
+
+

+

+

+
-
- +
@@ -393,12 +425,14 @@ $metrics = [ $fotos_content = carbon_get_post_meta($post_id, 'fotos_content' ); $fotos_link_vk = carbon_get_post_meta($post_id, 'fotos_link_vk' ); $HTMLimgs = ""; - foreach ($fotos as $item) { - $img = wp_get_attachment_url($item['foto']); - $alt = get_post_meta( $item['foto'], '_wp_attachment_image_alt', true ); - $HTMLimgs .= "
- $alt -
"; + if (is_array($fotos)) { + foreach ($fotos as $item) { + $img = wp_get_attachment_url($item['foto']); + $alt = get_post_meta( $item['foto'], '_wp_attachment_image_alt', true ); + $HTMLimgs .= "
+ $alt +
"; + } } ?>
@@ -414,21 +448,8 @@ $metrics = [
-
+
-
@@ -449,7 +470,6 @@ $metrics = [
-1, 'post_type' => 'reviews', @@ -462,16 +482,16 @@ $metrics = [ if ($the_query->have_posts()) : while ($the_query->have_posts()) : $the_query->the_post(); - $post_id = get_the_ID(); + $review_id = get_the_ID(); $review_date = get_the_date( 'd.m.Y'); - $review_level = carbon_get_post_meta( $post_id, 'review_level' ); + $review_level = carbon_get_post_meta( $review_id, 'review_level' ); - $avatar = carbon_get_post_meta( $post_id, 'review_avatar' ); + $avatar = carbon_get_post_meta( $review_id, 'review_avatar' ); - $stars = carbon_get_post_meta( $post_id, 'review_star' ); - $tekst_otzyva = carbon_get_post_meta( $post_id, 'review_text' ); - $prepodavatel = carbon_get_post_meta( $post_id, 'review_teacher' ); + $stars = carbon_get_post_meta( $review_id, 'review_star' ); + $tekst_otzyva = carbon_get_post_meta( $review_id, 'review_text' ); + $prepodavatel = carbon_get_post_meta( $review_id, 'review_teacher' ); $add_class= "more"; @@ -481,14 +501,14 @@ $metrics = [
-
+
<?php echo get_post_meta( $avatar, '_wp_attachment_image_alt', true ); ?>
-
+
@@ -499,123 +519,113 @@ $metrics = [ - +
-
- +
+
-
- +
+ +
+
+ +
+
+
+ + +
+ + + +
+

Часто задаваемые вопросы

+
+ + +
+ " . esc_html($questions_question) . " + + + + + + + + +
+
+
" . wp_kses_post($questions_answer) . "
+
+
"; + if ($count % 2 === 0) { + $HTMcol1 .= $accordion_item; + } else { + $HTMcol2 .= $accordion_item; + } + $count++; + } + } + echo "
$HTMcol1
"; + echo "
$HTMcol2
"; + ?> + +
+ +
+ +

Контакты

+
+
+
Телефон:
+ +
Почта:
+ +
Адрес:
+
+
Наши соцсети:
+
+ + +
- +
+
-
-
- -
-
- - - -
-

Часто задаваемые вопросы

-
- - -
- $questions_question - - - - - - - - -
-
-
$questions_answer
-
-
"; - } else { - $HTMcol2 .= "
-
- $questions_question - - - - - - - - -
-
-
$questions_answer
-
-
"; - } - $count++; - } - echo "
$HTMcol1
"; - echo "
$HTMcol2
"; - ?> - -
- -
- -

Контакты

-
-
-
Телефон:
- -
Почта:
- -
Адрес:
-
-
Наши соцсети:
-
- - - - -
-
-
- -
-
-
- + +
- - - - "; -} -?> +