TypeError
File: .../Bridge/Nette/Thumbnail/ThumbnailAbstractGenerator.php:30
20: protected bool $bestQuality; 21: protected bool $webp = false; 22: 23: public function __construct( 24: private readonly string $thumbPathMask, 25: private readonly string $placeholder, 26: protected BrowserProvider $browserProvider, 27: protected DirectoryProvider $directoryProvider, 28: ) {} 29: 30: public function thumbnail(?string $publicPath, ?int $width = null, ?int $height = null, $crop = false, bool $bestQuality = false): string 31: { 32: $this->webp = true; 33: 34: return '/' . $this->thumbnailRelative($publicPath, $width, $height, $crop, $bestQuality);
184: foreach ($iterator = $ʟ_it = new LR\CachingIterator($categories, $ʟ_it ?? null) as $category) /* line 123 */ { 185: if ($category->isVisible) /* line 123 */ { 186: echo ' <div class="col-6 col-md-4 col-lg-3 text-center category"> 187: <div class="item"> 188: <a class="img" href="'; 189: echo LR\Filters::escapeHtmlAttr($this->global->uiControl->link("ProductCatalog:category", [$category->id])) /* line 125 */; 190: echo '"> 191: '; 192: if ($category->image !== null) /* line 126 */ { 193: echo ' <img class="lazy" src="/img/loading.svg" data-src="'; 194: echo LR\Filters::escapeHtmlAttr(($this->filters->thumbnail)($category->image, 100)) /* line 126 */; 195: echo '" alt="'; 196: echo LR\Filters::escapeHtmlAttr($category->name) /* line 126 */; 197: echo '"> 198: ';
116: <i class="iconify dropdown-arrow ms-1 d-none d-lg-inline-block" data-icon="bi:chevron-down"></i> 117: </a> 118: <a class="dropdown-mobile" href="" id="{$item->getId()}" data-bs-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="true"> 119: <i class="iconify dropdown-arrow ms-1 d-lg-none" data-icon="bi:chevron-down"></i> 120: </a> 121: <div class="dropdown-menu mega-menu" aria-labelledby="{$item->getId()}"> 122: <div class="row"> 123: <div n:foreach="$categories as $category" n:if="$category->isVisible" class="col-6 col-md-4 col-lg-3 text-center category"> 124: <div class="item"> 125: <a class="img" n:href="ProductCatalog:category $category->id"> 126: <img class="lazy" n:if="$category->image !== null" src="/img/loading.svg" data-src="{$category->image|thumbnail:100}" alt="{$category->name}"> 127: </a> 128: <div> 129: <a n:href="ProductCatalog:category $category->id">{$category->name}</a> 130: <div class="subcategories">
100
161: /** 162: * Renders template. 163: * @internal 164: */ 165: public function render(?string $block = null): void 166: { 167: $level = ob_get_level(); 168: try { 169: $this->prepare(); 170: if (!$this->doRender($block)) { 171: $this->main(); 172: } 173: 174: } catch (\Throwable $e) { 175: while (ob_get_level() > $level) {
250: } 251: 252: 253: /** 254: * @param string|\Closure|null $mod content-type name or modifier closure 255: * @internal 256: */ 257: public function renderToContentType($mod, ?string $block = null): void 258: { 259: $this->filter( 260: function () use ($block) { $this->render($block); }, 261: $mod, 262: static::CONTENT_TYPE, 263: "'$this->name'" 264: );
null
354: $block->functions = array_merge($block->functions, $functions); 355: } 356: 357: 358: /** 359: * @param string|\Closure|null $mod content-type name or modifier closure 360: */ 361: private function filter(callable $function, $mod, string $contentType, string $name): void 362: { 363: if ($mod === null || $mod === $contentType) { 364: $function(); 365: 366: } elseif ($mod instanceof \Closure) { 367: echo $mod($this->capture($function), $contentType); 368:
253: /** 254: * @param string|\Closure|null $mod content-type name or modifier closure 255: * @internal 256: */ 257: public function renderToContentType($mod, ?string $block = null): void 258: { 259: $this->filter( 260: function () use ($block) { $this->render($block); }, 261: $mod, 262: static::CONTENT_TYPE, 263: "'$this->name'" 264: ); 265: } 266: 267:
'html'
795: 796: 797: /** {snippetArea header} on line 73 */ 798: public function blockHeader(array $ʟ_args): void 799: { 800: extract($this->params); 801: extract($ʟ_args); 802: unset($ʟ_args); 803: $this->global->snippetDriver->enter('header', 'area'); 804: try { 805: $this->createTemplate("/home/shoperia/websites/shoperia.sk/demo/rixafy/vendor/shoperia/common/src/Module/Front/../../../../../../app/Module/Front/../../../vendor/shoperia/common/src/Module/Front/@Templates/Default/@Layout/header.latte", $this->params, 'includeblock')->renderToContentType('html') /* line 74 */; 806: } finally { 807: $this->global->snippetDriver->leave(); 808: } 809:
64: {include content} 65: {else} 66: <div class="eu-cookies"><div class="container text-center p-2"><span>{_'notifications.cookies.text'}</span> <a href="javascript:void(0)" onclick="cookieBar.hideCookies()" class="btn btn-sm btn-primary ml-2">{_'notifications.cookies.consent'}</a></div></div> 67: <div n:if="$customer !== null && !$customer->isVerified()" class="bg-danger p-2 text-white text-center small">{_'notifications.customer.accountNotActivated', ['email' => $customer->getEmail()]} <a n:if="$customer->canBeSendAnotherVerificationEmail()" n:href="resendVerificationEmail!" class="btn btn-sm btn-light py-0 ms-2">{_'notifications.customer.resendEmail'}</a></div> 68: <div class="ajax-spinner" id="ajax-spinner"><div class="lds-roller"><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div></div></div> 69: <div class="site" itemscope itemtype="https://schema.org/WebSite"> 70: <meta itemprop="headline" content="{ifset title}{include title|stripHtml|trim}{else}{if $metaData->title !== null}{$metaData->title|stripHtml|trim}{/if}{/ifset}"/> 71: <meta itemprop="url" content="{link '//Homepage:default'}"/> 72: <meta itemprop="text" content="{ifset description}{include description|stripHtml|trim}{else}{if $metaData->description !== null}{$metaData->description|stripHtml|trim}{else}{$domainText->getDescription()}{/if}{/ifset}"/> 73: {snippetArea header} 74: {includeTemplate '@Layout/header.latte'} 75: {/snippetArea} 76: 77: {include flashes} 78:
299: 300: if (!$block) { 301: $hint = ($t = Latte\Helpers::getSuggestion($this->getBlockNames($layer), $name)) 302: ? ", did you mean '$t'?" 303: : '.'; 304: $name = $layer ? "$layer $name" : $name; 305: throw new Latte\RuntimeException("Cannot include undefined block '$name'$hint"); 306: } 307: 308: $this->filter( 309: function () use ($block, $params): void { reset($block->functions)($params); }, 310: $mod, 311: $block->contentType, 312: "block $name" 313: );
302: ? ", did you mean '$t'?" 303: : '.'; 304: $name = $layer ? "$layer $name" : $name; 305: throw new Latte\RuntimeException("Cannot include undefined block '$name'$hint"); 306: } 307: 308: $this->filter( 309: function () use ($block, $params): void { reset($block->functions)($params); }, 310: $mod, 311: $block->contentType, 312: "block $name" 313: ); 314: } 315: 316:
'block header'
244: }) /* line 72 */; 245: } else /* line 72 */ { 246: if ($metaData->description !== null) /* line 72 */ { 247: echo LR\Filters::escapeHtmlAttr(($this->filters->trim)(($this->filters->stripHtml)($metaData->description))) /* line 72 */; 248: } else /* line 72 */ { 249: echo LR\Filters::escapeHtmlAttr($domainText->getDescription()) /* line 72 */; 250: } 251: } 252: echo '"> 253: '; 254: $this->renderBlock('header', [], null, 'snippet') /* line 73 */; 255: echo ' 256: 257: '; 258: $this->renderBlock('flashes', get_defined_vars(), 'html') /* line 77 */;
63: {include flashes} 64: {include content} 65: {else} 66: <div class="eu-cookies"><div class="container text-center p-2"><span>{_'notifications.cookies.text'}</span> <a href="javascript:void(0)" onclick="cookieBar.hideCookies()" class="btn btn-sm btn-primary ml-2">{_'notifications.cookies.consent'}</a></div></div> 67: <div n:if="$customer !== null && !$customer->isVerified()" class="bg-danger p-2 text-white text-center small">{_'notifications.customer.accountNotActivated', ['email' => $customer->getEmail()]} <a n:if="$customer->canBeSendAnotherVerificationEmail()" n:href="resendVerificationEmail!" class="btn btn-sm btn-light py-0 ms-2">{_'notifications.customer.resendEmail'}</a></div> 68: <div class="ajax-spinner" id="ajax-spinner"><div class="lds-roller"><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div></div></div> 69: <div class="site" itemscope itemtype="https://schema.org/WebSite"> 70: <meta itemprop="headline" content="{ifset title}{include title|stripHtml|trim}{else}{if $metaData->title !== null}{$metaData->title|stripHtml|trim}{/if}{/ifset}"/> 71: <meta itemprop="url" content="{link '//Homepage:default'}"/> 72: <meta itemprop="text" content="{ifset description}{include description|stripHtml|trim}{else}{if $metaData->description !== null}{$metaData->description|stripHtml|trim}{else}{$domainText->getDescription()}{/if}{/ifset}"/> 73: {snippetArea header} 74: {includeTemplate '@Layout/header.latte'} 75: {/snippetArea} 76: 77: {include flashes}
'header'
array (0)
'snippet'
193: 194: if ($this->referenceType === 'import') { 195: if ($this->parentName) { 196: throw new Latte\RuntimeException('Imported template cannot use {extends} or {layout}, use {import}'); 197: } 198: 199: } elseif ($this->parentName) { // extends 200: ob_start(function () {}); 201: $this->params = $this->main(); 202: ob_end_clean(); 203: $this->createTemplate($this->parentName, $this->params, 'extends')->render($block); 204: 205: } elseif ($block !== null) { // single block rendering 206: $this->renderBlock($block, $this->params); 207:
160: 161: /** 162: * Renders template. 163: * @internal 164: */ 165: public function render(?string $block = null): void 166: { 167: $level = ob_get_level(); 168: try { 169: $this->prepare(); 170: if (!$this->doRender($block)) { 171: $this->main(); 172: } 173: 174: } catch (\Throwable $e) {
92: 93: /** 94: * Renders template to output. 95: * @param object|mixed[] $params 96: */ 97: public function render(string $name, $params = [], ?string $block = null): void 98: { 99: $template = $this->createTemplate($name, $this->processParams($params)); 100: $template->global->coreCaptured = false; 101: ($this->probe)($template); 102: $template->render($block); 103: } 104: 105: 106: /**
36: return $this->latte; 37: } 38: 39: 40: /** 41: * Renders template to output. 42: */ 43: public function render(?string $file = null, array $params = []): void 44: { 45: Nette\Utils\Arrays::toObject($params, $this); 46: $this->latte->render($file ?: $this->file, $this); 47: } 48: 49: 50: /**
'/home/shoperia/websites/shoperia.sk/demo/rixafy/vendor/shoperia/common/src/Module/Front/@Templates/Default/Homepage/default.latte'
40: return $this->source; 41: } 42: 43: 44: /** 45: * Sends response to output. 46: */ 47: public function send(Nette\Http\IRequest $httpRequest, Nette\Http\IResponse $httpResponse): void 48: { 49: if ($this->source instanceof Nette\Application\UI\Template) { 50: $this->source->render(); 51: 52: } else { 53: echo $this->source; 54: }
161: 162: Arrays::invoke($this->onPresenter, $this, $this->presenter); 163: $response = $this->presenter->run(clone $request); 164: 165: if ($response instanceof Responses\ForwardResponse) { 166: $request = $response->getRequest(); 167: goto process; 168: } 169: 170: Arrays::invoke($this->onResponse, $this, $response); 171: $response->send($this->httpRequest, $this->httpResponse); 172: } 173: 174: 175: public function processException(\Throwable $e): void
80: } 81: 82: 83: /** 84: * Dispatch a HTTP request to a front controller. 85: */ 86: public function run(): void 87: { 88: try { 89: Arrays::invoke($this->onStartup, $this); 90: $this->processRequest($this->createInitialRequest()); 91: Arrays::invoke($this->onShutdown, $this); 92: 93: } catch (\Throwable $e) { 94: Arrays::invoke($this->onError, $this, $e);
18: 'height' => $match[4], 19: ]))); 20: exit; 21: } 22: 23: require __DIR__ . '/../vendor/autoload.php'; 24: 25: App\Kernel::boot() 26: ->createContainer() 27: ->getByType(Nette\Application\Application::class) 28: ->run(); 29:
'shoperia'
'/home/shoperia'
'Keep-Alive'
'216.73.216.155'
'https'
'{"scheme":"https"}'
'US'
'cloudflare; loops=1'
'Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; [email protected])'
'gzip, br'
'*/*'
'9b2789ef7838e248-ORD'
'rixafy.shoperia.sk'
'200'
'443'
'88.198.206.158'
''
'nginx/1.24.0'
'CGI/1.1'
'on'
'HTTP/1.1'
'/home/shoperia/websites/shoperia.sk/demo/rixafy/public'
'/index.php'
'/cs?XDEBUG_SESSION_STOP=1'
'GET'
'XDEBUG_SESSION_STOP=1'
'/home/shoperia/websites/shoperia.sk/demo/rixafy/public/index.php'
'RESPONDER'
1766489551.575401
1766489551
0
1
2
3
4
5
-1
-42
array (1) 0 => array (7) | 'name' => 'default output handler' | 'type' => 0 | 'flags' => 20592 | 'level' => 0 | 'chunk_size' => 4096 | 'buffer_size' => 8192 | 'buffer_used' => 2836
'1'
empty
'tracy-session=a6db6abebd; expires=Wed, 23-Dec-2026 17:32:31 GMT; Max-Age=31557600; path=/; HttpOnly'
'Shoperia'
'text/html; charset=utf-8'
'ALLOWALL'
'_nss=1; path=/; secure; HttpOnly; SameSite=Strict'
'X-Requested-With'
'PHPSESSID=21b6a971f9e45267a187fb3645; expires=Tue, 06-Jan-2026 11:32:31 GMT; Max-Age=1209600; path=/; secure; HttpOnly; SameSite=Lax'
'Thu, 19 Nov 1981 08:52:00 GMT'
'no-store, no-cache, must-revalidate'
'no-cache'
Headers have been sent, output started at .../latte/[email protected]:205 source
195: return get_defined_vars(); 196: } 197: echo "\n"; 198: if ($loadEmptyLayout) /* line 62 */ { 199: $this->renderBlock('flashes', get_defined_vars(), 'html') /* line 63 */; 200: $this->renderBlock('content', [], 'html') /* line 64 */; 201: } else /* line 65 */ { 202: echo '<div class="eu-cookies"><div class="container text-center p-2"><span>'; 203: echo LR\Filters::escapeHtmlText(call_user_func($this->filters->translate, 'notifications.cookies.text')); 204: echo '</span> <a href="javascript:void(0)" onclick="cookieBar.hideCookies()" class="btn btn-sm btn-primary ml-2">'; 205: echo LR\Filters::escapeHtmlText(call_user_func($this->filters->translate, 'notifications.cookies.consent')); 206: echo '</a></div></div> 207: '; 208: if ($customer !== null && !$customer->isVerified()) /* line 67 */ { 209: echo '<div class="bg-danger p-2 text-white text-center small">';