Files
Fakel-Gym/modals/modal-room.php
GP_DEV 54eb8e266f init
2025-06-01 12:38:35 +03:00

261 lines
8.6 KiB
PHP
Raw 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.

<?php
/**
* Выбор языка (направления) в виде карточек
* Необходим плагин Polylang
*/
// Проверяем существование функций Polylang
if (!function_exists('pll_languages_list') || !function_exists('pll_current_language')) {
return;
}
?>
<style>
.language-selector {
max-width: 800px;
margin: 0 auto;
background: #f5f5f5;
border-radius: 20px;
padding: 40px 30px;
text-align: center;
}
.language-selector__title {
font-size: 42px;
font-weight: 700;
color: #333;
margin: 0 0 15px 0;
}
.language-selector__subtitle {
font-size: 24px;
font-weight: 400;
color: #666;
margin: 0 0 40px 0;
line-height: 1.3;
}
.language-cards {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 0;
border-radius: 16px;
overflow: hidden;
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.12);
}
.language-card {
padding: 50px 30px;
text-decoration: none;
display: flex;
flex-direction: column;
justify-content: space-between;
min-height: 320px;
transition: transform 0.3s ease, box-shadow 0.3s ease;
position: relative;
}
.language-card:hover {
transform: translateY(-4px);
box-shadow: 0 12px 40px rgba(0, 0, 0, 0.2);
z-index: 2;
}
.language-card--dark {
background: linear-gradient(135deg, #4a4a4a 0%, #2d2d2d 100%);
color: white;
}
.language-card--light {
background: linear-gradient(135deg, #ffffff 0%, #f8f8f8 100%);
color: #333;
}
.language-card__header {
margin-bottom: 30px;
}
.language-card__title {
font-size: 32px;
font-weight: 700;
margin: 0 0 8px 0;
}
.language-card__subtitle {
font-size: 16px;
opacity: 0.8;
margin: 0;
}
.language-card__content {
flex-grow: 1;
margin-bottom: 30px;
}
.language-card__description {
font-size: 15px;
line-height: 1.6;
opacity: 0.9;
margin: 0;
}
.language-card__footer {
text-align: center;
}
.language-card__button {
background: rgba(255, 255, 255, 0.15);
border: 1px solid rgba(255, 255, 255, 0.2);
color: inherit;
padding: 12px 32px;
border-radius: 50px;
font-size: 16px;
font-weight: 600;
transition: all 0.3s ease;
display: inline-block;
text-decoration: none;
backdrop-filter: blur(10px);
}
.language-card--dark .language-card__button {
background: rgba(255, 255, 255, 0.15);
border-color: rgba(255, 255, 255, 0.3);
}
.language-card--light .language-card__button {
background: rgba(0, 0, 0, 0.08);
border-color: rgba(0, 0, 0, 0.15);
}
.language-card__button:hover {
transform: translateY(-2px);
background: rgba(255, 255, 255, 0.25);
border-color: rgba(255, 255, 255, 0.4);
}
.language-card--light .language-card__button:hover {
background: rgba(0, 0, 0, 0.12);
border-color: rgba(0, 0, 0, 0.25);
}
/* Мобильная адаптация */
@media (max-width: 768px) {
.language-cards {
grid-template-columns: 1fr;
}
.language-selector {
padding: 30px 20px;
}
.language-selector__title {
font-size: 32px;
}
.language-selector__subtitle {
font-size: 20px;
}
.language-card {
padding: 40px 25px;
min-height: 280px;
}
.language-card__title {
font-size: 28px;
}
}
</style>
<div class="language-selector">
<h2 class="language-selector__title">Fakel</h2>
<p class="language-selector__subtitle">Какое направление<br>вас интересует?</p>
<div class="language-cards">
<?php
$languages = pll_languages_list();
$current_lang = pll_current_language('slug');
// Определяем конфигурацию языков
$lang_config = array(
'fitness' => array(
'title' => 'Fakel Fitness',
'subtitle' => 'Фитнес-центр',
'description' => 'Фитнес-центр мировых стандартов 2500 м². Оборудование из США, большая кардио-зона, более 45 направлений групповых программ, сауна, кафе, зона релакса и мн. др.',
'button_text' => 'Фитнес-центр',
'style' => 'light'
),
'gym' => array(
'title' => 'Fakel Gym',
'subtitle' => 'Тренажерный зал',
'description' => 'Пространство для работы с весами, головными тренажерами и ничего лишнего. Идеальное соотношение цены и комфорта, если Вам необходим лишь тренажерный зал.',
'button_text' => 'Тренажерный зал',
'style' => 'dark'
)
);
if ($languages) {
foreach ($languages as $lang_slug) {
// Получаем URL для языка
$lang_url = '';
if (function_exists('pll_home_url')) {
if (is_singular() && function_exists('pll_get_post')) {
$translated_post_id = pll_get_post(get_the_ID(), $lang_slug);
if ($translated_post_id) {
$lang_url = get_permalink($translated_post_id);
} else {
$lang_url = pll_home_url($lang_slug);
}
} else {
$lang_url = pll_home_url($lang_slug);
}
}
// Используем конфигурацию если есть, иначе дефолтные значения
if (isset($lang_config[$lang_slug])) {
$config = $lang_config[$lang_slug];
} else {
// Получаем название языка
$lang_names = pll_languages_list(array('fields' => 'name'));
$lang_slugs = pll_languages_list(array('fields' => 'slug'));
$lang_index = array_search($lang_slug, $lang_slugs);
$lang_name = ($lang_index !== false && isset($lang_names[$lang_index]))
? $lang_names[$lang_index]
: strtoupper($lang_slug);
$config = array(
'title' => $lang_name,
'subtitle' => 'Версия сайта',
'description' => 'Перейти на ' . $lang_name . ' версию сайта',
'button_text' => 'Перейти',
'style' => ($lang_slug === 'gym') ? 'dark' : 'light'
);
}
echo sprintf(
'<a href="%s" class="language-card language-card--%s" data-lang="%s">
<div class="language-card__header">
<h3 class="language-card__title">%s</h3>
<p class="language-card__subtitle">%s</p>
</div>
<div class="language-card__content">
<p class="language-card__description">%s</p>
</div>
<div class="language-card__footer">
<span class="language-card__button">%s</span>
</div>
</a>',
esc_url($lang_url),
esc_attr($config['style']),
esc_attr($lang_slug),
esc_html($config['title']),
esc_html($config['subtitle']),
esc_html($config['description']),
esc_html($config['button_text'])
);
}
}
?>
</div>
</div>