@php /** @var \App\Models\Page $page */ @endphp @extends('www._master') @section('content') {{-- TODO: prestavi to v ločeno funkcijo, da jo lahko pri urejanju strani ločeno pokličeš in dinamično zamenjaš na strani; naredi tako, da bo uporabno za vse efekte --}} @if($page->page_background_effect == App\Classes\Prefs::$web_page_background_effects['icons_float_together']['id']) @php $count = App\Classes\Prefs::$web_page_background_effects['icons_float_together']['settings']['icons_count']; $minSpacing = 10; // minimum spacing in % units (distance between icons) $positions = []; function distance($a, $b) { return sqrt(pow($a['top'] - $b['top'], 2) + pow($a['left'] - $b['left'], 2)); } for ($i = 0; $i < $count; $i++) { $attempts = 0; do { $top = rand(5, 95); $left = rand(5, 95); $valid = true; foreach ($positions as $pos) { if (distance(['top' => $top, 'left' => $left], $pos) < $minSpacing) { $valid = false; break; } } $attempts++; // fallback if stuck to avoid infinite loop if ($attempts > 1000) { $valid = true; } } while (!$valid); $positions[] = ['top' => $top, 'left' => $left]; } // randomize floating direction vector $float_x = rand(-300, 300); $float_y = rand(-300, 300); @endphp
@endif @includeFirst(['www.headers']) @includeFirst(['www.main']) @includeFirst(['www.footers']) @endsection