Nette\MemberAccessException
File: .../demo/vendor/nette/utils/src/Utils/ObjectHelpers.php:82
72: ? 'private ' 73: : ($rm->isProtected() ? 'protected ' : ''); 74: throw new MemberAccessException("Call to {$visibility}method $class::$method() from " . ($context ? "scope $context." : 'global scope.')); 75: 76: } else { 77: $hint = self::getSuggestion(array_merge( 78: get_class_methods($class), 79: self::parseFullDoc(new \ReflectionClass($class), '~^[ \t*]*@method[ \t]+(?:static[ \t]+)?(?:\S+[ \t]+)??(\w+)\(~m'), 80: $additionalMethods 81: ), $method); 82: throw new MemberAccessException("Call to undefined method $class::$method()" . ($hint ? ", did you mean $hint()?" : '.')); 83: } 84: } 85: 86:
31: if (ObjectHelpers::hasProperty($class, $name) === 'event') { // calling event handlers 32: $handlers = $this->$name ?? null; 33: if (is_iterable($handlers)) { 34: foreach ($handlers as $handler) { 35: $handler(...$args); 36: } 37: } elseif ($handlers !== null) { 38: throw new UnexpectedValueException("Property $class::$$name must be iterable or null, " . gettype($handlers) . ' given.'); 39: } 40: } else { 41: ObjectHelpers::strictCall($class, $name); 42: } 43: } 44: 45:
'CoolCMS\FrontModule\BazaarModule\Models\Entities\CategoryEntity'
'getLowestPrice'
3: use Latte\Runtime as LR; 4: 5: /** source: /var/www/clients/client1/web1/web/subdom/demo/app/modules/FrontModule/BazaarModule/templates/Advert/templates/_default/Parts/Add/price.latte */ 6: final class Templated7e73dcf7e extends Latte\Runtime\Template 7: { 8: 9: public function main(): array 10: { 11: extract($this->params); 12: $currencyId = $loc->getCurrencyId() /* line 1 */; 13: $lowestPrice = $category->getForFree() ? .0 : $category->getLowestPrice($paymentRegionId, $currencyId)?->getPrice() /* line 2 */; 14: $currency = $currencyList[$currencyId]??NULL /* line 3 */; 15: if (is_null($lowestPrice) || $lowestPrice === .0) /* line 4 */ { 16: echo 'Zdarma 17: ';
1: {var $currencyId = $loc->getCurrencyId()} 2: {var $lowestPrice = $category->getForFree() ? .0 : $category->getLowestPrice($paymentRegionId, $currencyId)?->getPrice()} 3: {var $currency = $currencyList[$currencyId]??NULL} 4: {if is_null($lowestPrice) || $lowestPrice === .0}Zdarma 5: {else}{$lowestPrice|priceFormat:$currency} 6: {/if} 7: 8: 9:
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:
249: return $referred; 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'"
'html'
''/var/www/clients/client1/web1/web/subdom/demo/app/modules/FrontModule/BazaarModule/templates/Advert/templates/_default/Parts/Add/price.latte''
33: echo "\n"; 34: $_input = end($this->global->formsStack)["categoryIds"]; 35: echo Nextras\FormsRendering\LatteMacros\Bs3InputMacros::input($_input->getControlPart($categoryId)->addAttributes(['class'=>'form-check-input']), $_input, true); 36: echo ' <span>'; 37: echo LR\Filters::escapeHtmlText($caption) /* line 16 */; 38: echo '</span> 39: '; 40: if ($_label) echo $_label->endTag(); 41: echo ' 42: <span class="price">'; 43: $this->createTemplate("price.latte", ['category'=>$subcategory] + $this->params, 'include')->renderToContentType('html') /* line 18 */; 44: echo '</span> 45: </div> 46: </div> 47: ';
8: <div class="card"> 9: 10: {if ($lft+1) === $rgt} 11: <div class="card-header pt-0 pb-0" id="heading{$categoryId}"> 12: <div class="form-check d-flex flex-row w-100 pt-2 pb-2"> 13: {var $caption = $form['categoryIds']->getLabelPart($categoryId)->getChildren()[0]} 14: {label categoryIds:$categoryId class=>'form-check-label flex-grow-1'} 15: {input categoryIds:$categoryId class=>'form-check-input'} 16: <span>{$caption}</span> 17: {/label} 18: <span class="price">{include price.latte category=>$subcategory}</span> 19: </div> 20: </div> 21: {else} 22: <div class="card-header p-0" id="heading{$categoryId}">
''/var/www/clients/client1/web1/web/subdom/demo/app/modules/FrontModule/BazaarModule/templates/Advert/templates/_default/Parts/Add/subcategories.latte''
61: } 62: echo ' <div class="collapse" id="collapse'; 63: echo LR\Filters::escapeHtmlAttr($categoryId) /* line 26 */; 64: echo '" aria-labelledby="heading'; 65: echo LR\Filters::escapeHtmlAttr($categoryId) /* line 26 */; 66: echo '" data-parent="#addPageCategoryList"> 67: '; 68: if (isset($sortedCategoryList[$categoryId])) /* line 27 */ { 69: echo ' <div class="card-body"> 70: '; 71: $this->createTemplate('subcategories.latte', ['categories' => $sortedCategoryList[$categoryId]] + $this->params, 'include')->renderToContentType('html') /* line 28 */; 72: echo ' 73: </div> 74: '; 75: }
18: <span class="price">{include price.latte category=>$subcategory}</span> 19: </div> 20: </div> 21: {else} 22: <div class="card-header p-0" id="heading{$categoryId}"> 23: <a class="btn btn-link w-100 p-2 text-center text-lg-start" data-bs-toggle="collapse" href="#collapse{$categoryId}" role="button" aria-expanded="false" aria-controls="collapse{$categoryId}">{$name}</a> 24: </div> 25: {/if} 26: <div class="collapse" id="collapse{$categoryId}" aria-labelledby="heading{$categoryId}" data-parent="#addPageCategoryList"> 27: <div class="card-body" n:ifset="$sortedCategoryList[$categoryId]"> 28: {include 'subcategories.latte' categories => $sortedCategoryList[$categoryId]} 29: </div> 30: </div> 31: </div> 32: {/foreach}
83: echo LR\Filters::escapeHtmlAttr($categoryId) /* line 30 */; 84: echo '" aria-labelledby="heading'; 85: echo LR\Filters::escapeHtmlAttr($categoryId) /* line 30 */; 86: echo '" data-parent="#addPageCategoryList"'; 87: echo ($ʟ_tmp = array_filter([$first && $openFirst ? 'show' : null, 'collapse'])) ? ' class="' . LR\Filters::escapeHtmlAttr(implode(" ", array_unique($ʟ_tmp))) . '"' : "" /* line 30 */; 88: echo '> 89: '; 90: if (isset($sortedCategoryList[$categoryId])) /* line 31 */ { 91: echo ' <div class="card-body"> 92: '; 93: $this->createTemplate('subcategories.latte', ['categories' => $sortedCategoryList[$categoryId], 'form' => $form] + $this->params, 'include')->renderToContentType('html') /* line 32 */; 94: echo ' 95: </div> 96: '; 97: }
22: <span class="price">{include price.latte category=>$category}</span> 23: </div> 24: </div> 25: {else} 26: <div class="card-header p-0" id="heading{$categoryId}"> 27: <a class="btn btn-link w-100 p-2 text-center text-lg-start" data-bs-toggle="collapse" href="#collapse{$categoryId}" role="button" aria-expanded="{if $first && $openFirst}true{else}false{/if}" aria-controls="collapse{$categoryId}">{$name}</a> 28: </div> 29: {/if} 30: <div n:class="$first && $openFirst ? show, collapse" id="collapse{$categoryId}" aria-labelledby="heading{$categoryId}" data-parent="#addPageCategoryList"> 31: <div class="card-body" n:ifset="$sortedCategoryList[$categoryId]"> 32: {include 'subcategories.latte' categories => $sortedCategoryList[$categoryId], form => $form} 33: </div> 34: </div> 35: </div> 36: {do $first = FALSE}
''/var/www/clients/client1/web1/web/subdom/demo/app/modules/FrontModule/BazaarModule/templates/Advert/templates/_default/Parts/Add/step1.latte''
46: 47: /** {block content} on line 4 */ 48: public function blockContent(array $ʟ_args): void 49: { 50: extract($this->params); 51: extract($ʟ_args); 52: unset($ʟ_args); 53: echo ' <div id="bazaar-add-advert" class="text-center"> 54: '; 55: if ($step === 1) /* line 6 */ { 56: $this->createTemplate('Parts/Add/step1.latte', $this->params, 'include')->renderToContentType('html') /* line 7 */; 57: } else /* line 8 */ { 58: $this->createTemplate('Parts/Add/step2.latte', $this->params, 'include')->renderToContentType('html') /* line 9 */; 59: } 60: echo ' </div>
1: {block heading} 2: <h1 class="text-center">{p_'heading.addAdvert'}</h1> 3: {/block} 4: {block content} 5: <div id="bazaar-add-advert" class="text-center"> 6: {if $step === 1} 7: {include 'Parts/Add/step1.latte'} 8: {else} 9: {include 'Parts/Add/step2.latte'} 10: {/if} 11: </div> 12: {/block}
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: );
298: : ($this->blocks[self::LAYER_LOCAL][$name] ?? $this->blocks[self::LAYER_TOP][$name] ?? null); 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"
'block content'
39: } 40: $this->renderBlock('heading', get_defined_vars()) /* line 12 */; 41: echo ' 42: <div class="flash"'; 43: echo ' id="' . htmlspecialchars($this->global->snippetDriver->getHtmlId('flashMessages')) . '"'; 44: echo '> 45: '; 46: $this->renderBlock('flashMessages', [], null, 'snippet'); 47: echo ' </div> 48: '; 49: $this->renderBlock('content', [], 'html') /* line 22 */; 50: echo ' </section> 51: </div> 52: </div> 53: </main>
12: {block heading} 13: {if $showTitle} 14: <h1>{$name}</h1> 15: {/if} 16: {/block} 17: <div class="flash" n:snippet="flashMessages"> 18: {foreach $flashes as $flash} 19: <p class="alert {$flash->type}">{_$flash->message}</p> 20: {/foreach} 21: </div> 22: {include #content} 23: </section> 24: </div> 25: </div> 26: </main>
'content'
array (0)
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: /**
'/var/www/clients/client1/web1/web/subdom/demo/app/modules/FrontModule/BazaarModule/templates/Advert/templates/_default/add.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);
3: declare(strict_types=1); 4: //exit; 5: ini_set("display_errors", 1); 6: error_reporting(E_ALL); 7: 8: require_once __DIR__ . '/../vendor/autoload.php'; 9: 10: App\Bootstrap::boot() 11: ->createContainer() 12: ->getByType(Nette\Application\Application::class) 13: ->run();
'/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin'
'/var/www/clients/client1/web1/tmp'
''
'web1'
'/var/www/clients/client1/web1'
'/subdom/demo/www/index.php'
'/pridat-inzerat/'
'GET'
'HTTP/1.1'
'CGI/1.1'
'/www/pridat-inzerat/'
'56972'
'/var/www/clients/client1/web1/web/subdom/demo/www/index.php'
'webmaster@coolsoft.cz'
'/var/www/clients/client1/web1/web'
'https'
'216.73.217.41'
'443'
'37.205.10.44'
'demo.coolsoft.cz'
'Apache'
'gzip, br, zstd, deflate'
'eshopcoolsoftcz=5o013onajpb15ri7dj3lskqc4p; _nss=1; tracy-session=a939dde303'
'Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)'
'*/*'
'1'
'on'
'https://demo.coolsoft.cz/pridat-inzerat/'
'200'
'RESPONDER'
1778338660.087946
1778338660
array (1) 0 => array (7) | 'name' => 'default output handler' | 'type' => 0 | 'flags' => 20592 | 'level' => 0 | 'chunk_size' => 4096 | 'buffer_size' => 24576 | 'buffer_used' => 129
empty
'5o013onajpb15ri7dj3lskqc4p'
'a939dde303'
'Nette Framework 3'
'text/html; charset=utf-8'
'SAMEORIGIN'
'_nss=1; path=/; secure; HttpOnly; SameSite=Strict'
'eshopcoolsoftcz=5o013onajpb15ri7dj3lskqc4p; expires=Tue, 09 Jun 2026 14:57:40 GMT; Max-Age=2678400; path=/; secure; HttpOnly; SameSite=Lax'
'Thu, 19 Nov 1981 08:52:00 GMT'
'no-store, no-cache, must-revalidate'
'no-cache'
'X-Requested-With'
Headers have been sent, output started at .../cache/latte/web-default-Style1.latte--d8c340881d.php:20 source
10: { 11: extract($this->params); 12: $dropdownMenuId = 0 /* line 1 */; 13: $deep = 0 /* line 2 */; 14: $iterations = 0; 15: foreach ($sortedMenuItemList as $row) /* line 3 */ { 16: $item = $row[1]??NULL /* line 4 */; 17: if ($row[0]===0) /* line 5 */ { 18: echo ' <ul '; 19: if ($deep>0) /* line 6 */ { 20: echo 'aria-labelledby="navbarScrollingDropdown-'; 21: echo LR\Filters::escapeHtmlAttr($dropdownMenuId) /* line 6 */; 22: echo '"'; 23: $dropdownMenuId++ /* line 6 */; 24: }