403Webshell
Server IP : 188.114.96.3  /  Your IP : 216.73.216.143
Web Server : Apache
System : Linux sv058.home.net.pl 6.8.2 husak_dirty_pages_fix #1 SMP PREEMPT_DYNAMIC Tue Apr 2 22:06:51 CEST 2024 x86_64
User :  ( 3194769)
PHP Version : 8.5.12
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : OFF
Directory :  /polana/includes/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /polana/includes/seasonal_illustration.php
<?php
declare(strict_types=1);

function seasonal_interactive_default_start_dates(): array
{
    return [
        'spring' => '03-20',
        'summer' => '06-21',
        'autumn' => '09-23',
        'winter' => '12-21',
    ];
}

function seasonal_interactive_normalize_mmdd(string $value): ?string
{
    $value = trim($value);

    if (!preg_match('/^(\d{1,2})-(\d{1,2})$/', $value, $m)) {
        return null;
    }

    $month = (int)$m[1];
    $day = (int)$m[2];

    if (!checkdate($month, $day, 2024)) {
        return null;
    }

    return sprintf('%02d-%02d', $month, $day);
}

function seasonal_interactive_start_dates(): array
{
    $defaults = seasonal_interactive_default_start_dates();
    $dates = [];

    foreach ($defaults as $season => $default) {
        $raw = setting('visual_' . $season . '_start', $default);
        $dates[$season] = seasonal_interactive_normalize_mmdd($raw) ?? $default;
    }

    return $dates;
}

function seasonal_interactive_validate_start_dates(array $input): array
{
    $defaults = seasonal_interactive_default_start_dates();
    $normalized = [];

    foreach ($defaults as $season => $default) {
        $normalized[$season] = seasonal_interactive_normalize_mmdd((string)($input[$season] ?? $default));

        if ($normalized[$season] === null) {
            throw new RuntimeException('Daty pór roku muszą być w formacie MM-DD, np. 03-01.');
        }
    }

    $spring = (int)str_replace('-', '', $normalized['spring']);
    $summer = (int)str_replace('-', '', $normalized['summer']);
    $autumn = (int)str_replace('-', '', $normalized['autumn']);
    $winter = (int)str_replace('-', '', $normalized['winter']);

    if (!($spring < $summer && $summer < $autumn && $autumn < $winter)) {
        throw new RuntimeException('Daty muszą iść po kolei w roku: wiosna < lato < jesień < zima.');
    }

    return $normalized;
}

function seasonal_interactive_season_ranges(?array $dates = null): array
{
    $dates = $dates ?? seasonal_interactive_start_dates();

    return [
        'spring' => 'od ' . str_replace('-', '.', $dates['spring']) . ' do dnia przed ' . str_replace('-', '.', $dates['summer']),
        'summer' => 'od ' . str_replace('-', '.', $dates['summer']) . ' do dnia przed ' . str_replace('-', '.', $dates['autumn']),
        'autumn' => 'od ' . str_replace('-', '.', $dates['autumn']) . ' do dnia przed ' . str_replace('-', '.', $dates['winter']),
        'winter' => 'od ' . str_replace('-', '.', $dates['winter']) . ' do dnia przed ' . str_replace('-', '.', $dates['spring']),
    ];
}

function seasonal_interactive_season(): string
{
    $override = setting('visual_season_override', 'auto');

    if (in_array($override, ['spring', 'summer', 'autumn', 'winter'], true)) {
        return $override;
    }

    $dates = seasonal_interactive_start_dates();
    $today = (int)date('md');
    $spring = (int)str_replace('-', '', $dates['spring']);
    $summer = (int)str_replace('-', '', $dates['summer']);
    $autumn = (int)str_replace('-', '', $dates['autumn']);
    $winter = (int)str_replace('-', '', $dates['winter']);

    if ($today >= $winter || $today < $spring) {
        return 'winter';
    }

    if ($today >= $autumn) {
        return 'autumn';
    }

    if ($today >= $summer) {
        return 'summer';
    }

    return 'spring';
}

function seasonal_interactive_label(string $season): string
{
    return match ($season) {
        'spring' => 'Wiosna',
        'summer' => 'Lato',
        'autumn' => 'Jesień',
        default => 'Zima',
    };
}

function render_seasonal_illustration(string $context = 'home', string $class = '', ?string $forcedSeason = null): void
{
    $season = in_array($forcedSeason, ['spring', 'summer', 'autumn', 'winter'], true)
        ? (string)$forcedSeason
        : seasonal_interactive_season();

    if ($season === 'winter') {
        ?>
        <div class="seasonal-interactive season-winter <?= e($class) ?>" data-seasonal-interactive data-motion="<?= visual_motion_enabled() ? '1' : '0' ?>" aria-label="Zimowa ilustracja restauracji">
            <div class="seasonal-orbit seasonal-orbit-a"></div>
            <div class="seasonal-orbit seasonal-orbit-b"></div>
            <?php render_pot_visual('seasonal-winter-pot'); ?>
        </div>
        <?php
        return;
    }

    ?>
    <div
        class="seasonal-interactive season-<?= e($season) ?> <?= e($class) ?>"
        data-seasonal-interactive
        data-motion="<?= visual_motion_enabled() ? '1' : '0' ?>"
        aria-label="<?= e(seasonal_interactive_label($season)) ?> – animowana ilustracja restauracji"
    >
        <?php if ($season === 'spring'): ?>
            <svg viewBox="0 0 640 520" class="seasonal-svg" role="img" aria-hidden="true">
                <ellipse class="season-shadow" cx="320" cy="438" rx="185" ry="22"/>
                <ellipse class="season-plate" cx="320" cy="340" rx="190" ry="92"/>
                <ellipse class="season-plate-inner" cx="320" cy="326" rx="145" ry="60"/>

                <g class="spring-leaf spring-leaf-a">
                    <path d="M245 326 C186 259 210 184 269 165 C290 229 287 286 245 326Z"/>
                    <path class="season-stem" d="M254 318 C252 271 257 222 270 173"/>
                </g>
                <g class="spring-leaf spring-leaf-b">
                    <path d="M360 323 C421 264 414 195 365 171 C341 224 337 276 360 323Z"/>
                    <path class="season-stem" d="M355 315 C359 266 363 220 366 179"/>
                </g>

                <g class="spring-herbs">
                    <path d="M304 329 C298 273 307 222 325 183"/>
                    <path d="M320 329 C336 271 351 239 382 209"/>
                    <path d="M287 330 C276 283 257 249 232 224"/>
                </g>

                <g class="spring-flower spring-flower-a" transform="translate(302 200)">
                    <circle cx="0" cy="-16" r="16"/>
                    <circle cx="16" cy="0" r="16"/>
                    <circle cx="0" cy="16" r="16"/>
                    <circle cx="-16" cy="0" r="16"/>
                    <circle class="season-red" cx="0" cy="0" r="10"/>
                </g>
                <g class="spring-flower spring-flower-b" transform="translate(385 240) scale(.7)">
                    <circle cx="0" cy="-16" r="16"/>
                    <circle cx="16" cy="0" r="16"/>
                    <circle cx="0" cy="16" r="16"/>
                    <circle cx="-16" cy="0" r="16"/>
                    <circle class="season-red" cx="0" cy="0" r="10"/>
                </g>

                <circle class="season-red spring-dot spring-dot-a" cx="205" cy="280" r="8"/>
                <circle class="season-red spring-dot spring-dot-b" cx="438" cy="302" r="6"/>

                <ellipse class="spring-petal spring-petal-a" cx="228" cy="168" rx="12" ry="7" transform="rotate(-22 228 168)"/>
                <ellipse class="spring-petal spring-petal-b" cx="418" cy="186" rx="10" ry="6" transform="rotate(18 418 186)"/>
            </svg>
        <?php elseif ($season === 'summer'): ?>
            <svg viewBox="0 0 640 520" class="seasonal-svg" role="img" aria-hidden="true">
                <ellipse class="season-shadow" cx="320" cy="438" rx="190" ry="22"/>
                <ellipse class="season-plate" cx="320" cy="340" rx="196" ry="94"/>
                <ellipse class="season-plate-inner" cx="320" cy="327" rx="156" ry="66"/>

                <g class="summer-tomato summer-tomato-a">
                    <circle class="season-red" cx="260" cy="318" r="55"/>
                    <path class="summer-star" d="M260 256l10 24 25-9-16 22 22 15-27-2-7 26-8-25-27 3 21-16-17-21 25 8z"/>
                </g>
                <g class="summer-tomato summer-tomato-b">
                    <circle class="season-red summer-red-soft" cx="378" cy="332" r="46"/>
                    <path class="summer-star" d="M378 285l8 20 22-7-14 18 19 13-23-2-6 22-7-21-22 2 18-13-14-18 21 7z"/>
                </g>

                <g class="summer-herb">
                    <path d="M317 304 C314 246 337 202 380 176"/>
                    <ellipse cx="342" cy="236" rx="19" ry="39" transform="rotate(-42 342 236)"/>
                    <ellipse cx="374" cy="205" rx="18" ry="36" transform="rotate(30 374 205)"/>
                    <ellipse cx="300" cy="245" rx="16" ry="33" transform="rotate(-22 300 245)"/>
                </g>

                <circle class="summer-sun" cx="463" cy="154" r="35"/>
                <path class="summer-sun-ray" d="M463 93v-30M463 245v-30M402 154h-30M554 154h-30M420 111l-22-22M528 219l-22-22M506 111l22-22M398 219l22-22"/>

                <path class="summer-heat summer-heat-a" d="M210 246 C230 228 220 204 238 188"/>
                <path class="summer-heat summer-heat-b" d="M322 236 C340 218 332 194 350 178"/>
                <path class="summer-heat summer-heat-c" d="M408 252 C426 234 420 208 436 194"/>
            </svg>
        <?php else: ?>
            <svg viewBox="0 0 640 520" class="seasonal-svg" role="img" aria-hidden="true">
                <ellipse class="season-shadow" cx="320" cy="438" rx="186" ry="22"/>
                <ellipse class="season-bowl" cx="320" cy="344" rx="183" ry="94"/>
                <path class="season-bowl-front" d="M141 344 C153 428 205 454 320 454 C435 454 487 428 499 344 C457 393 402 407 320 407 C238 407 183 393 141 344Z"/>

                <g class="mushroom mushroom-a" transform="translate(250 267)">
                    <path class="mushroom-cap" d="M-58 8C-48-41 48-41 58 8Z"/>
                    <path class="mushroom-stem" d="M-14 7h28l12 74h-52z"/>
                </g>
                <g class="mushroom mushroom-b" transform="translate(365 290) scale(.8)">
                    <path class="mushroom-cap" d="M-58 8C-48-41 48-41 58 8Z"/>
                    <path class="mushroom-stem" d="M-14 7h28l12 74h-52z"/>
                </g>

                <g class="autumn-leaf autumn-leaf-a">
                    <path d="M160 135C212 148 226 192 196 231C162 213 142 180 160 135Z"/>
                </g>
                <g class="autumn-leaf autumn-leaf-b">
                    <path d="M472 105C521 129 524 174 488 205C458 179 446 145 472 105Z"/>
                </g>
                <g class="autumn-leaf autumn-leaf-c">
                    <path d="M444 224C478 239 482 272 456 295C432 278 423 251 444 224Z"/>
                </g>

                <path class="autumn-herb" d="M315 326 C318 266 303 222 276 184"/>
                <path class="autumn-herb" d="M330 326 C345 271 372 231 411 203"/>

                <g class="autumn-leaf autumn-leaf-d">
                    <path d="M250 110C286 126 292 158 270 184C244 171 231 141 250 110Z"/>
                </g>
            </svg>
        <?php endif; ?>
    </div>
    <?php
}

Youez - 2016 - github.com/yon3zu
LinuXploit