Rychle promění celou stěnu v les, zamaskují ošklivé staré dveře, vytvoří kouzelnou říši v dětském pokoji. A stejně tak mohou být i decentním prvkem elegantního obýváku.
Abyste našli to pravé, máme pro vás obrovské množství motivů i tvarů – a naše kategorie vám s hledáním pomohou.
Jak chcete vybírat?
Nette\Database\ConnectionException #HY000
SELECT `products_categories_rel`.* FROM `products_categories_rel` LEFT JOIN `categories` ON `products_categories_rel`.`categories_id` = `categories`.`id` WHERE (`products_categories_rel`.`products_id` IN (88, 123, 179, 294, 425, 546, 610, 620, 626, 629, 646, 671, 675, 896, 923, 978, 1064, 1071, 1250, 1392, 1433, 1465, 1471, 1477, 1491, 1548, 1626)) ORDER BY `products_categories_rel`.`products_id`, `categories`.`pos_left`
File: .../local/vendor/nette/database/src/Database/ResultSet.php:79
69: } elseif ($queryString !== null) { 70: static $types = ['boolean' => PHP_VERSION < 70307 ? PDO::PARAM_INT : PDO::PARAM_BOOL, 'integer' => PDO::PARAM_INT, 71: 'resource' => PDO::PARAM_LOB, 'NULL' => PDO::PARAM_NULL, ]; 72: $this->pdoStatement = $connection->getPdo()->prepare($queryString); 73: foreach ($params as $key => $value) { 74: $type = gettype($value); 75: $this->pdoStatement->bindValue(is_int($key) ? $key + 1 : $key, $value, $types[$type] ?? PDO::PARAM_STR); 76: } 77: 78: $this->pdoStatement->setFetchMode(PDO::FETCH_ASSOC); 79: @$this->pdoStatement->execute(); // @ PHP generates warning when ATTR_ERRMODE = ERRMODE_EXCEPTION bug #73878 80: } 81: } catch (\PDOException $e) { 82: $e = $connection->getDriver()->convertException($e); 83: $e->queryString = $queryString;
51: public function convertException(\PDOException $e): Nette\Database\DriverException 52: { 53: $code = $e->errorInfo[1] ?? null; 54: if (in_array($code, [1216, 1217, 1451, 1452, 1701], true)) { 55: return Nette\Database\ForeignKeyConstraintViolationException::from($e); 56: 57: } elseif (in_array($code, [1062, 1557, 1569, 1586], true)) { 58: return Nette\Database\UniqueConstraintViolationException::from($e); 59: 60: } elseif ($code >= 2001 && $code <= 2028) { 61: return Nette\Database\ConnectionException::from($e); 62: 63: } elseif (in_array($code, [1048, 1121, 1138, 1171, 1252, 1263, 1566], true)) { 64: return Nette\Database\NotNullConstraintViolationException::from($e); 65:
| $src |
|---|
72: $this->pdoStatement = $connection->getPdo()->prepare($queryString); 73: foreach ($params as $key => $value) { 74: $type = gettype($value); 75: $this->pdoStatement->bindValue(is_int($key) ? $key + 1 : $key, $value, $types[$type] ?? PDO::PARAM_STR); 76: } 77: 78: $this->pdoStatement->setFetchMode(PDO::FETCH_ASSOC); 79: @$this->pdoStatement->execute(); // @ PHP generates warning when ATTR_ERRMODE = ERRMODE_EXCEPTION bug #73878 80: } 81: } catch (\PDOException $e) { 82: $e = $connection->getDriver()->convertException($e); 83: $e->queryString = $queryString; 84: $e->params = $params; 85: throw $e; 86: }
| $e |
|---|
217: 218: 219: /** 220: * Generates and executes SQL query. 221: * @param literal-string $sql 222: */ 223: public function query(string $sql, ...$params): ResultSet 224: { 225: [$this->sql, $params] = $this->preprocess($sql, ...$params); 226: try { 227: $result = new ResultSet($this, $this->sql, $params, $this->rowNormalizer); 228: } catch (PDOException $e) { 229: Arrays::invoke($this->onQuery, $this, $e); 230: throw $e; 231: }
| $connection | |
|---|---|
| $queryString | |
| $params | |
| $normalizer |
80: return $this->connection->getInsertId($sequence); 81: } 82: 83: 84: /** 85: * Generates and executes SQL query. 86: * @param literal-string $sql 87: */ 88: public function query(string $sql, ...$params): ResultSet 89: { 90: return $this->connection->query($sql, ...$params); 91: } 92: 93: 94: /** @deprecated use query() */
| $sql | |
|---|---|
| #1 |
601: 602: 603: protected function createGroupedSelectionInstance(string $table, string $column): GroupedSelection 604: { 605: return new GroupedSelection($this->explorer, $this->conventions, $table, $column, $this, $this->cache ? $this->cache->getStorage() : null); 606: } 607: 608: 609: protected function query(string $query): Nette\Database\ResultSet 610: { 611: return $this->explorer->query($query, ...$this->sqlBuilder->getParameters()); 612: } 613: 614: 615: protected function emptyResultSet(bool $clearCache = true, bool $deleteRererencedCache = true): void
| $sql | |
|---|---|
| #1 |
556: throw new Nette\InvalidStateException('Table with no primary key requires an explicit select clause.'); 557: } 558: 559: try { 560: $result = $this->query($this->getSql()); 561: 562: } catch (Nette\Database\DriverException $exception) { 563: if (!$this->sqlBuilder->getSelect() && $this->previousAccessedColumns) { 564: $this->previousAccessedColumns = false; 565: $this->accessedColumns = []; 566: $result = $this->query($this->getSql()); 567: } else { 568: throw $exception; 569: } 570: }
| $query |
|---|
156: if (!isset($this->refCacheCurrent['data'])) { 157: // we have not fetched any data yet => init accessedColumns by cached accessedColumns 158: $this->accessedColumns = $accessedColumns; 159: 160: $limit = $this->sqlBuilder->getLimit(); 161: $rows = count($this->refTable->rows); 162: if ($limit && $rows > 1) { 163: $this->sqlBuilder->setLimit(null, null); 164: } 165: 166: parent::execute(); 167: $this->sqlBuilder->setLimit($limit, null); 168: $data = []; 169: $offset = []; 170: $this->accessColumn($this->column);
999: $clone->setActive($active); 1000: return $clone; 1001: } 1002: 1003: 1004: /********************* interface Iterator ****************d*g**/ 1005: 1006: 1007: public function rewind(): void 1008: { 1009: $this->execute(); 1010: $this->keys = array_keys($this->data); 1011: reset($this->keys); 1012: } 1013:
223: 224: 225: /** 226: * @return array 227: */ 228: public function getCategories(): array 229: { 230: $entities = []; 231: $related = $this->getRow()->related('products_categories_rel')->order('categories.pos_left'); 232: 233: foreach ($related as $rel) { 234: $row = $rel->ref('categories'); 235: $entities[$row->id] = CategoriesRepository::getEntity($row, $row->related('categories_mld')); 236: } 237:
253: 254: return $category; 255: } 256: 257: /** 258: * @return CategoriesEntity|null 259: */ 260: public function getHeadCategory(): ?CategoriesEntity 261: { 262: $category = NULL; 263: foreach ($this->getCategories() as $c) { 264: if (!$category || $c->pos_level < $category->pos_level) { 265: $category = $c; 266: } 267: }
93: '; 94: if (isset($page) && $page->system == 'favourites') /* line 37 */ { 95: echo ' <a class="ajax btn-sm favourite-remove" title="Odebrat z oblíbených" href="'; 96: echo LR\Filters::escapeHtmlAttr($this->global->uiControl->link("setProductFavouriteState!", [$product->id])) /* line 37 */; 97: echo '"><i class="fal fa-trash"></i></a> 98: '; 99: } 100: echo ' <div class="product-info"> 101: 102: '; 103: if ($category = $product->getHeadCategory()) /* line 40 */ { 104: echo ' <a href="'; 105: echo LR\Filters::escapeHtmlAttr(LR\Filters::safeUrl($category->full_url)) /* line 40 */; 106: echo '" class="category"> 107: ';
30: 31: </a> 32: {var $isFavourite = $GLOBALS['container']->isFavourite($product->id)} 33: <a n:href="setProductFavouriteState! $product->id" title="{content('products','add_favourite')}" 34: n:class="$isFavourite ? 'wishlist-added' : '', 'add-to-wishlist'"><i 35: n:class="$isFavourite ? 'fas' : 'far', 'fa-heart'"></i></a> 36: </div> 37: <a n:if="isset($page) && $page->system == 'favourites'" n:href="setProductFavouriteState! $product->id" class="ajax btn-sm favourite-remove" title="Odebrat z oblíbených"><i class="fal fa-trash"></i></a> 38: <div class="product-info"> 39: 40: <a n:if="$category = $product->getHeadCategory()" href="{$category->full_url}" class="category"> 41: {$category->name} 42: </a> 43: <h6 class="title"><a href="{$product->getUrl()}">{$product->name}</a></h6> 44: <span n:if="$isInAction" class="price">
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: );
| $block | 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:
| $function | |
|---|---|
| $mod | 'html'
|
| $contentType | 'html'
|
| $name | ''/var/www/dev.primaobrazy.cz/web/local/www/../app/FrontModule/Products/templates/_item.latte''
|
227: extract($ʟ_args); 228: unset($ʟ_args); 229: $this->global->snippetDriver->enter("listAppend", 'static'); 230: try { 231: $iterations = 0; 232: foreach ($products as $product) /* line 73 */ { 233: echo ' <div 234: class="product-item col"> 235: '; 236: $this->createTemplate(APP_DIR.'/FrontModule/Products/templates/_item.latte', ['product' => $product, 237: 'page' => $control->getPage()] + $this->params, 'include')->renderToContentType('html') /* line 75 */; 238: echo ' 239: </div> 240: '; 241: $iterations++;
65: <div class="products-section section learts-mt-20"> 66: <div n:class="$control->isContainer() ? 'container'"> 67: <div class="row learts-mb-n50"> 68: 69: <div n:class="'col-12 learts-mb-50 order-lg-2 products-col', $control->isShowFilters() ? 'col-lg-9'"> 70: <!-- Products Start --> 71: <div n:snippet="listAppend" class="products row row-cols-xl-3 row-cols-lg-3 row-cols-md-3 row-cols-sm-2 row-cols-1"> 72: 73: <div n:foreach="$products as $product" 74: class="product-item col"> 75: {include APP_DIR.'/FrontModule/Products/templates/_item.latte', 'product' => $product, 76: 'page' => $control->getPage()} 77: </div> 78: 79: </div>
| $mod | 'html'
|
|---|
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: );
| $ʟ_args | 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:
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:
| $function | |
|---|---|
| $mod | null
|
| $contentType | 'html'
|
| $name | 'block listAppend'
|
148: <div class="row learts-mb-n50"> 149: 150: <div'; 151: echo ($ʟ_tmp = array_filter(['col-12 learts-mb-50 order-lg-2 products-col', $control->isShowFilters() ? 'col-lg-9' : null])) ? ' class="' . LR\Filters::escapeHtmlAttr(implode(" ", array_unique($ʟ_tmp))) . '"' : "" /* line 69 */; 152: echo '> 153: <!-- Products Start --> 154: <div class="products row row-cols-xl-3 row-cols-lg-3 row-cols-md-3 row-cols-sm-2 row-cols-1"'; 155: echo ' id="' . htmlspecialchars($this->global->snippetDriver->getHtmlId('listAppend')) . '"'; 156: echo '> 157: '; 158: $this->renderBlock('listAppend', [], null, 'snippet'); 159: echo ' </div> 160: 161: <div class="products-bottom learts-mt-40"'; 162: echo ' id="' . htmlspecialchars($this->global->snippetDriver->getHtmlId('paging')) . '"';
1: {var $category = $control->getCategory()} 2: {var $children = $control->getCategoryChildren()} 3: <div n:if="$control->isShowFilters()" class="section learts-pt-30"> 4: <div class="container"> 5: <!-- Section Title Start --> 6: <div n:if="$category" class="section-title2 text-left"> 7: <h2 class="title">{$category->getTitle()|brakes|noescape}</h2> 8: {$category->text|noescape} 9: </div> 10: <!-- Section Title End --> 11: 12: <div n:if="!empty($children)" class="row row-cols-lg-4 row-cols-sm-2 row-cols-1"> 13: 14: <div n:foreach="$children as $category" class="col category-banner5-col"> 15: <div class="category-banner5">
| $name | 'listAppend'
|
|---|---|
| $params | array (0)
|
| $mod | null
|
| $layer | 'snippet'
|
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) {
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: /**
| $block | null
|
|---|
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: /**
| $name | '/var/www/dev.primaobrazy.cz/web/local/app/FrontModule/__components/Products/ProductsControl.latte'
|
|---|---|
| $params |
107: return $presenter->getContent($contentSystem, $parameterSystem); 108: }) 109: ->addFunction('settings', function(string $system) { 110: /** @var BasePresenter $presenter */ 111: $presenter = $this->getPresenter(); 112: return $presenter->getSettings($system); 113: }); 114: 115: $this->template->products = $this->getProducts(); 116: 117: $this->template->render(); 118: } 119: 120: 121: /**
49: /** {snippetArea products} on line 5 */ 50: public function blockProducts(array $ʟ_args): void 51: { 52: extract($this->params); 53: extract($ʟ_args); 54: unset($ʟ_args); 55: $this->global->snippetDriver->enter('products', 'area'); 56: try { 57: /* line 6 */ $_tmp = $this->global->uiControl->getComponent("products"); 58: if ($_tmp instanceof Nette\Application\UI\Renderable) $_tmp->redrawControl(null, false); 59: $_tmp->render(); 60: } finally { 61: $this->global->snippetDriver->leave(); 62: } 63:
1: {block content} 2: 3: {control breadcrumbs} 4: 5: {snippetArea products} 6: {control products} 7: {/snippetArea} 8:
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: );
| $ʟ_args | 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:
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:
| $function | |
|---|---|
| $mod | null
|
| $contentType | 'html'
|
| $name | 'block products'
|
34: public function blockContent(array $ʟ_args): void 35: { 36: extract($this->params); 37: extract($ʟ_args); 38: unset($ʟ_args); 39: echo "\n"; 40: /* line 3 */ $_tmp = $this->global->uiControl->getComponent("breadcrumbs"); 41: if ($_tmp instanceof Nette\Application\UI\Renderable) $_tmp->redrawControl(null, false); 42: $_tmp->render(); 43: echo "\n"; 44: $this->renderBlock('products', [], null, 'snippet') /* line 5 */; 45: echo "\n"; 46: } 47: 48:
1: {block content} 2: 3: {control breadcrumbs} 4: 5: {snippetArea products} 6: {control products} 7: {/snippetArea} 8:
| $name | 'products'
|
|---|---|
| $params | array (0)
|
| $mod | null
|
| $layer | 'snippet'
|
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: );
| $ʟ_args | 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:
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:
| $function | |
|---|---|
| $mod | 'html'
|
| $contentType | 'html'
|
| $name | 'block content'
|
128: $this->renderBlock('sidebarWrapper', [], null, 'snippet') /* line 83 */; 129: echo ' 130: 131: <div class="offcanvas-overlay"></div> 132: 133: '; 134: if ($ʟ_if[2] = ($useBasicTemplateStyle)) /* line 91 */ { 135: echo ' <div id="base-template-style"> 136: '; 137: } 138: $this->renderBlock('content', [], 'html') /* line 92 */; 139: if ($ʟ_if[2]) /* line 91 */ { 140: echo ' </div> 141: '; 142: }
82: 83: {snippetArea sidebarWrapper} 84: {include '__inc/headerMobile/menu.latte'} 85: {include '__inc/cartSidebar.latte'} 86: {include '__inc/searchResultsSidebar.latte'} 87: {/snippetArea} 88: 89: <div class="offcanvas-overlay"></div> 90: 91: <div n:tag-if="$useBasicTemplateStyle" id="base-template-style"> 92: {include #content} 93: </div> 94: 95: 96: {include '__inc/footer/top.latte'}
| $name | 'content'
|
|---|---|
| $params | array (0)
|
| $mod | 'html'
|
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) {
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:
| $block | null
|
|---|
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) {
| $block | null
|
|---|
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: /**
| $block | null
|
|---|
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: /**
| $name | '/var/www/dev.primaobrazy.cz/web/local/app/FrontModule/Products/templates/default.latte'
|
|---|---|
| $params |
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
| $httpRequest | |
|---|---|
| $httpResponse |
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);
| $request |
|---|
10: define('FS_TEMP', FS_DIR.'/temp'); 11: 12: 13: //TODO: Zobrazit blok CATEGORIES. Upravit, aby si mohl zadat své vlastní obrázky, názvy, podnadpisy... http://view.pro-idea.cz/primaobrazy/index.html Making & Crafting 14: 15: 16: 17: \App\Bootstrap::boot() 18: ->createContainer() 19: ->getByType(Nette\Application\Application::class) 20: ->run(); 21:
PDOException #HY000
File: .../local/vendor/nette/database/src/Database/ResultSet.php:79
69: } elseif ($queryString !== null) { 70: static $types = ['boolean' => PHP_VERSION < 70307 ? PDO::PARAM_INT : PDO::PARAM_BOOL, 'integer' => PDO::PARAM_INT, 71: 'resource' => PDO::PARAM_LOB, 'NULL' => PDO::PARAM_NULL, ]; 72: $this->pdoStatement = $connection->getPdo()->prepare($queryString); 73: foreach ($params as $key => $value) { 74: $type = gettype($value); 75: $this->pdoStatement->bindValue(is_int($key) ? $key + 1 : $key, $value, $types[$type] ?? PDO::PARAM_STR); 76: } 77: 78: $this->pdoStatement->setFetchMode(PDO::FETCH_ASSOC); 79: @$this->pdoStatement->execute(); // @ PHP generates warning when ATTR_ERRMODE = ERRMODE_EXCEPTION bug #73878 80: } 81: } catch (\PDOException $e) { 82: $e = $connection->getDriver()->convertException($e); 83: $e->queryString = $queryString;
69: } elseif ($queryString !== null) { 70: static $types = ['boolean' => PHP_VERSION < 70307 ? PDO::PARAM_INT : PDO::PARAM_BOOL, 'integer' => PDO::PARAM_INT, 71: 'resource' => PDO::PARAM_LOB, 'NULL' => PDO::PARAM_NULL, ]; 72: $this->pdoStatement = $connection->getPdo()->prepare($queryString); 73: foreach ($params as $key => $value) { 74: $type = gettype($value); 75: $this->pdoStatement->bindValue(is_int($key) ? $key + 1 : $key, $value, $types[$type] ?? PDO::PARAM_STR); 76: } 77: 78: $this->pdoStatement->setFetchMode(PDO::FETCH_ASSOC); 79: @$this->pdoStatement->execute(); // @ PHP generates warning when ATTR_ERRMODE = ERRMODE_EXCEPTION bug #73878 80: } 81: } catch (\PDOException $e) { 82: $e = $connection->getDriver()->convertException($e); 83: $e->queryString = $queryString;
217: 218: 219: /** 220: * Generates and executes SQL query. 221: * @param literal-string $sql 222: */ 223: public function query(string $sql, ...$params): ResultSet 224: { 225: [$this->sql, $params] = $this->preprocess($sql, ...$params); 226: try { 227: $result = new ResultSet($this, $this->sql, $params, $this->rowNormalizer); 228: } catch (PDOException $e) { 229: Arrays::invoke($this->onQuery, $this, $e); 230: throw $e; 231: }
| $connection | |
|---|---|
| $queryString | |
| $params | |
| $normalizer |
80: return $this->connection->getInsertId($sequence); 81: } 82: 83: 84: /** 85: * Generates and executes SQL query. 86: * @param literal-string $sql 87: */ 88: public function query(string $sql, ...$params): ResultSet 89: { 90: return $this->connection->query($sql, ...$params); 91: } 92: 93: 94: /** @deprecated use query() */
| $sql | |
|---|---|
| #1 |
601: 602: 603: protected function createGroupedSelectionInstance(string $table, string $column): GroupedSelection 604: { 605: return new GroupedSelection($this->explorer, $this->conventions, $table, $column, $this, $this->cache ? $this->cache->getStorage() : null); 606: } 607: 608: 609: protected function query(string $query): Nette\Database\ResultSet 610: { 611: return $this->explorer->query($query, ...$this->sqlBuilder->getParameters()); 612: } 613: 614: 615: protected function emptyResultSet(bool $clearCache = true, bool $deleteRererencedCache = true): void
| $sql | |
|---|---|
| #1 |
556: throw new Nette\InvalidStateException('Table with no primary key requires an explicit select clause.'); 557: } 558: 559: try { 560: $result = $this->query($this->getSql()); 561: 562: } catch (Nette\Database\DriverException $exception) { 563: if (!$this->sqlBuilder->getSelect() && $this->previousAccessedColumns) { 564: $this->previousAccessedColumns = false; 565: $this->accessedColumns = []; 566: $result = $this->query($this->getSql()); 567: } else { 568: throw $exception; 569: } 570: }
| $query |
|---|
156: if (!isset($this->refCacheCurrent['data'])) { 157: // we have not fetched any data yet => init accessedColumns by cached accessedColumns 158: $this->accessedColumns = $accessedColumns; 159: 160: $limit = $this->sqlBuilder->getLimit(); 161: $rows = count($this->refTable->rows); 162: if ($limit && $rows > 1) { 163: $this->sqlBuilder->setLimit(null, null); 164: } 165: 166: parent::execute(); 167: $this->sqlBuilder->setLimit($limit, null); 168: $data = []; 169: $offset = []; 170: $this->accessColumn($this->column);
999: $clone->setActive($active); 1000: return $clone; 1001: } 1002: 1003: 1004: /********************* interface Iterator ****************d*g**/ 1005: 1006: 1007: public function rewind(): void 1008: { 1009: $this->execute(); 1010: $this->keys = array_keys($this->data); 1011: reset($this->keys); 1012: } 1013:
223: 224: 225: /** 226: * @return array 227: */ 228: public function getCategories(): array 229: { 230: $entities = []; 231: $related = $this->getRow()->related('products_categories_rel')->order('categories.pos_left'); 232: 233: foreach ($related as $rel) { 234: $row = $rel->ref('categories'); 235: $entities[$row->id] = CategoriesRepository::getEntity($row, $row->related('categories_mld')); 236: } 237:
253: 254: return $category; 255: } 256: 257: /** 258: * @return CategoriesEntity|null 259: */ 260: public function getHeadCategory(): ?CategoriesEntity 261: { 262: $category = NULL; 263: foreach ($this->getCategories() as $c) { 264: if (!$category || $c->pos_level < $category->pos_level) { 265: $category = $c; 266: } 267: }
93: '; 94: if (isset($page) && $page->system == 'favourites') /* line 37 */ { 95: echo ' <a class="ajax btn-sm favourite-remove" title="Odebrat z oblíbených" href="'; 96: echo LR\Filters::escapeHtmlAttr($this->global->uiControl->link("setProductFavouriteState!", [$product->id])) /* line 37 */; 97: echo '"><i class="fal fa-trash"></i></a> 98: '; 99: } 100: echo ' <div class="product-info"> 101: 102: '; 103: if ($category = $product->getHeadCategory()) /* line 40 */ { 104: echo ' <a href="'; 105: echo LR\Filters::escapeHtmlAttr(LR\Filters::safeUrl($category->full_url)) /* line 40 */; 106: echo '" class="category"> 107: ';
30: 31: </a> 32: {var $isFavourite = $GLOBALS['container']->isFavourite($product->id)} 33: <a n:href="setProductFavouriteState! $product->id" title="{content('products','add_favourite')}" 34: n:class="$isFavourite ? 'wishlist-added' : '', 'add-to-wishlist'"><i 35: n:class="$isFavourite ? 'fas' : 'far', 'fa-heart'"></i></a> 36: </div> 37: <a n:if="isset($page) && $page->system == 'favourites'" n:href="setProductFavouriteState! $product->id" class="ajax btn-sm favourite-remove" title="Odebrat z oblíbených"><i class="fal fa-trash"></i></a> 38: <div class="product-info"> 39: 40: <a n:if="$category = $product->getHeadCategory()" href="{$category->full_url}" class="category"> 41: {$category->name} 42: </a> 43: <h6 class="title"><a href="{$product->getUrl()}">{$product->name}</a></h6> 44: <span n:if="$isInAction" class="price">
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: );
| $block | 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:
| $function | |
|---|---|
| $mod | 'html'
|
| $contentType | 'html'
|
| $name | ''/var/www/dev.primaobrazy.cz/web/local/www/../app/FrontModule/Products/templates/_item.latte''
|
227: extract($ʟ_args); 228: unset($ʟ_args); 229: $this->global->snippetDriver->enter("listAppend", 'static'); 230: try { 231: $iterations = 0; 232: foreach ($products as $product) /* line 73 */ { 233: echo ' <div 234: class="product-item col"> 235: '; 236: $this->createTemplate(APP_DIR.'/FrontModule/Products/templates/_item.latte', ['product' => $product, 237: 'page' => $control->getPage()] + $this->params, 'include')->renderToContentType('html') /* line 75 */; 238: echo ' 239: </div> 240: '; 241: $iterations++;
65: <div class="products-section section learts-mt-20"> 66: <div n:class="$control->isContainer() ? 'container'"> 67: <div class="row learts-mb-n50"> 68: 69: <div n:class="'col-12 learts-mb-50 order-lg-2 products-col', $control->isShowFilters() ? 'col-lg-9'"> 70: <!-- Products Start --> 71: <div n:snippet="listAppend" class="products row row-cols-xl-3 row-cols-lg-3 row-cols-md-3 row-cols-sm-2 row-cols-1"> 72: 73: <div n:foreach="$products as $product" 74: class="product-item col"> 75: {include APP_DIR.'/FrontModule/Products/templates/_item.latte', 'product' => $product, 76: 'page' => $control->getPage()} 77: </div> 78: 79: </div>
| $mod | 'html'
|
|---|
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: );
| $ʟ_args | 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:
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:
| $function | |
|---|---|
| $mod | null
|
| $contentType | 'html'
|
| $name | 'block listAppend'
|
148: <div class="row learts-mb-n50"> 149: 150: <div'; 151: echo ($ʟ_tmp = array_filter(['col-12 learts-mb-50 order-lg-2 products-col', $control->isShowFilters() ? 'col-lg-9' : null])) ? ' class="' . LR\Filters::escapeHtmlAttr(implode(" ", array_unique($ʟ_tmp))) . '"' : "" /* line 69 */; 152: echo '> 153: <!-- Products Start --> 154: <div class="products row row-cols-xl-3 row-cols-lg-3 row-cols-md-3 row-cols-sm-2 row-cols-1"'; 155: echo ' id="' . htmlspecialchars($this->global->snippetDriver->getHtmlId('listAppend')) . '"'; 156: echo '> 157: '; 158: $this->renderBlock('listAppend', [], null, 'snippet'); 159: echo ' </div> 160: 161: <div class="products-bottom learts-mt-40"'; 162: echo ' id="' . htmlspecialchars($this->global->snippetDriver->getHtmlId('paging')) . '"';
1: {var $category = $control->getCategory()} 2: {var $children = $control->getCategoryChildren()} 3: <div n:if="$control->isShowFilters()" class="section learts-pt-30"> 4: <div class="container"> 5: <!-- Section Title Start --> 6: <div n:if="$category" class="section-title2 text-left"> 7: <h2 class="title">{$category->getTitle()|brakes|noescape}</h2> 8: {$category->text|noescape} 9: </div> 10: <!-- Section Title End --> 11: 12: <div n:if="!empty($children)" class="row row-cols-lg-4 row-cols-sm-2 row-cols-1"> 13: 14: <div n:foreach="$children as $category" class="col category-banner5-col"> 15: <div class="category-banner5">
| $name | 'listAppend'
|
|---|---|
| $params | array (0)
|
| $mod | null
|
| $layer | 'snippet'
|
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) {
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: /**
| $block | null
|
|---|
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: /**
| $name | '/var/www/dev.primaobrazy.cz/web/local/app/FrontModule/__components/Products/ProductsControl.latte'
|
|---|---|
| $params |
107: return $presenter->getContent($contentSystem, $parameterSystem); 108: }) 109: ->addFunction('settings', function(string $system) { 110: /** @var BasePresenter $presenter */ 111: $presenter = $this->getPresenter(); 112: return $presenter->getSettings($system); 113: }); 114: 115: $this->template->products = $this->getProducts(); 116: 117: $this->template->render(); 118: } 119: 120: 121: /**
49: /** {snippetArea products} on line 5 */ 50: public function blockProducts(array $ʟ_args): void 51: { 52: extract($this->params); 53: extract($ʟ_args); 54: unset($ʟ_args); 55: $this->global->snippetDriver->enter('products', 'area'); 56: try { 57: /* line 6 */ $_tmp = $this->global->uiControl->getComponent("products"); 58: if ($_tmp instanceof Nette\Application\UI\Renderable) $_tmp->redrawControl(null, false); 59: $_tmp->render(); 60: } finally { 61: $this->global->snippetDriver->leave(); 62: } 63:
1: {block content} 2: 3: {control breadcrumbs} 4: 5: {snippetArea products} 6: {control products} 7: {/snippetArea} 8:
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: );
| $ʟ_args | 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:
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:
| $function | |
|---|---|
| $mod | null
|
| $contentType | 'html'
|
| $name | 'block products'
|
34: public function blockContent(array $ʟ_args): void 35: { 36: extract($this->params); 37: extract($ʟ_args); 38: unset($ʟ_args); 39: echo "\n"; 40: /* line 3 */ $_tmp = $this->global->uiControl->getComponent("breadcrumbs"); 41: if ($_tmp instanceof Nette\Application\UI\Renderable) $_tmp->redrawControl(null, false); 42: $_tmp->render(); 43: echo "\n"; 44: $this->renderBlock('products', [], null, 'snippet') /* line 5 */; 45: echo "\n"; 46: } 47: 48:
1: {block content} 2: 3: {control breadcrumbs} 4: 5: {snippetArea products} 6: {control products} 7: {/snippetArea} 8:
| $name | 'products'
|
|---|---|
| $params | array (0)
|
| $mod | null
|
| $layer | 'snippet'
|
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: );
| $ʟ_args | 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:
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:
| $function | |
|---|---|
| $mod | 'html'
|
| $contentType | 'html'
|
| $name | 'block content'
|
128: $this->renderBlock('sidebarWrapper', [], null, 'snippet') /* line 83 */; 129: echo ' 130: 131: <div class="offcanvas-overlay"></div> 132: 133: '; 134: if ($ʟ_if[2] = ($useBasicTemplateStyle)) /* line 91 */ { 135: echo ' <div id="base-template-style"> 136: '; 137: } 138: $this->renderBlock('content', [], 'html') /* line 92 */; 139: if ($ʟ_if[2]) /* line 91 */ { 140: echo ' </div> 141: '; 142: }
82: 83: {snippetArea sidebarWrapper} 84: {include '__inc/headerMobile/menu.latte'} 85: {include '__inc/cartSidebar.latte'} 86: {include '__inc/searchResultsSidebar.latte'} 87: {/snippetArea} 88: 89: <div class="offcanvas-overlay"></div> 90: 91: <div n:tag-if="$useBasicTemplateStyle" id="base-template-style"> 92: {include #content} 93: </div> 94: 95: 96: {include '__inc/footer/top.latte'}
| $name | 'content'
|
|---|---|
| $params | array (0)
|
| $mod | 'html'
|
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) {
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:
| $block | null
|
|---|
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) {
| $block | null
|
|---|
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: /**
| $block | null
|
|---|
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: /**
| $name | '/var/www/dev.primaobrazy.cz/web/local/app/FrontModule/Products/templates/default.latte'
|
|---|---|
| $params |
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
| $httpRequest | |
|---|---|
| $httpResponse |
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);
| $request |
|---|
10: define('FS_TEMP', FS_DIR.'/temp'); 11: 12: 13: //TODO: Zobrazit blok CATEGORIES. Upravit, aby si mohl zadat své vlastní obrázky, názvy, podnadpisy... http://view.pro-idea.cz/primaobrazy/index.html Making & Crafting 14: 15: 16: 17: \App\Bootstrap::boot() 18: ->createContainer() 19: ->getByType(Nette\Application\Application::class) 20: ->run(); 21:
Note: the last muted error may have nothing to do with the thrown exception.
.../dev.primaobrazy.cz/web/local/app/filters/ImageFilter.php:48
38: if(!$filename && file_exists(FS_DIR.'/universal.png')){ 39: $filename = 'universal.png'; 40: } 41: 42: $pathInfo = pathinfo($filename); 43: if(!isset($pathInfo['extension'])){ 44: return ''; 45: } 46: 47: 48: @[$width, $height, $flag, $quality, $watermark] = explode('-', $this->imagesTypes[$type]); 49: 50: if(strtolower($pathInfo['extension']) == 'svg'){ 51: $dir = '/files/images/'.ImagesService::getImageDir($filename).'/'.$filename; 52: }
| USER | 'www-data'
|
|---|---|
| HOME | '/var/www'
|
| SCRIPT_NAME | '/index.php'
|
| REQUEST_URI | '/cs/fototapety?f=28%3A189%2C329%2C332%2C223%2C192%2C327'
|
| QUERY_STRING | 'f=28%3A189%2C329%2C332%2C223%2C192%2C327'
|
| REQUEST_METHOD | 'GET'
|
| SERVER_PROTOCOL | 'HTTP/1.0'
|
| GATEWAY_INTERFACE | 'CGI/1.1'
|
| REDIRECT_QUERY_STRING | 'f=28%3A189%2C329%2C332%2C223%2C192%2C327'
|
| REDIRECT_URL | '/cs/fototapety'
|
| REMOTE_PORT | '43534'
|
| SCRIPT_FILENAME | '/var/www/dev.primaobrazy.cz/web/local/www/index.php'
|
| SERVER_ADMIN | 'tech@vshosting.cz'
|
| CONTEXT_DOCUMENT_ROOT | '/var/www/dev.primaobrazy.cz/web/local/www'
|
| CONTEXT_PREFIX | ''
|
| REQUEST_SCHEME | 'https'
|
| DOCUMENT_ROOT | '/var/www/dev.primaobrazy.cz/web/local/www'
|
| REMOTE_ADDR | '127.0.0.1'
|
| SERVER_PORT | '443'
|
| SERVER_ADDR | '127.0.0.2'
|
| SERVER_NAME | 'dev.primaobrazy.cz'
|
| SERVER_SOFTWARE | 'Apache/2.4.41 (Ubuntu)'
|
| SERVER_SIGNATURE | |
| PATH | '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin'
|
| HTTP_COOKIE | 'tracy-session=0e26302866; PHPSESSID=4pbt9reg5ous4j7kdi9t3nllpk; _nss=1'
|
| HTTP_ACCEPT_ENCODING | 'gzip, br, zstd, deflate'
|
| HTTP_USER_AGENT | 'Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)'
|
| HTTP_ACCEPT | '*/*'
|
| HTTP_CONNECTION | 'close'
|
| HTTP_X_FORWARDED_PROTO | 'https'
|
| HTTP_X_FORWARDED_FOR | '216.73.216.104'
|
| HTTP_X_REAL_IP | '216.73.216.104'
|
| HTTP_HOST | 'dev.primaobrazy.cz'
|
| proxy-nokeepalive | '1'
|
| SSL_TLS_SNI | 'dev.primaobrazy.cz'
|
| HTTPS | 'on'
|
| REDIRECT_STATUS | '200'
|
| REDIRECT_SSL_TLS_SNI | 'dev.primaobrazy.cz'
|
| REDIRECT_HTTPS | 'on'
|
| FCGI_ROLE | 'RESPONDER'
|
| PHP_SELF | '/index.php'
|
| REQUEST_TIME_FLOAT | 1773781232.759738
|
| REQUEST_TIME | 1773781232
|
| __NF | Nette Session |
|---|
| frontend | |
|---|---|
| newOrder | |
| Contributte\Translation\LocalesResolvers\Session | null
|
| productsControl | null
|
| Nette.Http.UserStorage/frontModule |
| WWW_DIR | '/var/www/dev.primaobrazy.cz/web/local/www'
|
|---|---|
| APP_DIR | '/var/www/dev.primaobrazy.cz/web/local/www/../app'
|
| FS_DIR | '/var/www/dev.primaobrazy.cz/web/local/www/files'
|
| FS_TEMP | '/var/www/dev.primaobrazy.cz/web/local/www/files/temp'
|
| BCMath support | enabled |
| Directive | Local Value | Master Value |
|---|---|---|
| bcmath.scale | 0 | 0 |
| BZip2 Support | Enabled |
| Stream Wrapper support | compress.bzip2:// |
| Stream Filter support | bzip2.decompress, bzip2.compress |
| BZip2 Version | 1.0.8, 13-Jul-2019 |
| Calendar support | enabled |
| php-fpm | active |
| Directive | Local Value | Master Value |
|---|---|---|
| cgi.discard_path | Off | Off |
| cgi.fix_pathinfo | On | On |
| cgi.force_redirect | On | On |
| cgi.nph | Off | Off |
| cgi.redirect_status_env | no value | no value |
| cgi.rfc2616_headers | Off | Off |
| fastcgi.error_header | no value | no value |
| fastcgi.logging | On | On |
| fpm.config | no value | no value |
| PHP Version | 8.1.29 |
| Directive | Local Value | Master Value |
|---|---|---|
| allow_url_fopen | On | On |
| allow_url_include | Off | Off |
| arg_separator.input | & | & |
| arg_separator.output | & | & |
| auto_append_file | no value | no value |
| auto_globals_jit | On | On |
| auto_prepend_file | no value | no value |
| browscap | no value | no value |
| default_charset | UTF-8 | UTF-8 |
| default_mimetype | text/html | text/html |
| disable_classes | no value | no value |
| disable_functions | pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, | pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, |
| display_errors | Off | On |
| display_startup_errors | Off | Off |
| doc_root | no value | no value |
| docref_ext | no value | no value |
| docref_root | no value | no value |
| enable_dl | Off | Off |
| enable_post_data_reading | On | On |
| error_append_string | no value | no value |
| error_log | no value | no value |
| error_prepend_string | no value | no value |
| error_reporting | 32767 | 22527 |
| expose_php | Off | Off |
| extension_dir | /usr/lib/php/20210902 | /usr/lib/php/20210902 |
| fiber.stack_size | no value | no value |
| file_uploads | On | On |
| hard_timeout | 2 | 2 |
| highlight.comment | #998; font-style: italic | #FF8000 |
| highlight.default | #000 | #0000BB |
| highlight.html | #06B | #000000 |
| highlight.keyword | #D24; font-weight: bold | #007700 |
| highlight.string | #080 | #DD0000 |
| html_errors | Off | On |
| ignore_repeated_errors | Off | Off |
| ignore_repeated_source | Off | Off |
| ignore_user_abort | Off | Off |
| implicit_flush | Off | Off |
| include_path | .:/usr/share/php | .:/usr/share/php |
| input_encoding | no value | no value |
| internal_encoding | no value | no value |
| log_errors | Off | On |
| mail.add_x_header | Off | Off |
| mail.force_extra_parameters | no value | no value |
| mail.log | no value | no value |
| max_execution_time | 300 | 300 |
| max_file_uploads | 20 | 20 |
| max_input_nesting_level | 64 | 64 |
| max_input_time | 60 | 60 |
| max_input_vars | 1000 | 1000 |
| max_multipart_body_parts | -1 | -1 |
| memory_limit | 1024M | 128M |
| open_basedir | no value | no value |
| output_buffering | 4096 | 4096 |
| output_encoding | no value | no value |
| output_handler | no value | no value |
| post_max_size | 256M | 256M |
| precision | 14 | 14 |
| realpath_cache_size | 4096K | 4096K |
| realpath_cache_ttl | 120 | 120 |
| register_argc_argv | Off | Off |
| report_memleaks | On | On |
| report_zend_debug | Off | Off |
| request_order | GP | GP |
| sendmail_from | no value | no value |
| sendmail_path | /usr/sbin/sendmail -t -i | /usr/sbin/sendmail -t -i |
| serialize_precision | -1 | -1 |
| short_open_tag | Off | Off |
| SMTP | localhost | localhost |
| smtp_port | 25 | 25 |
| sys_temp_dir | no value | no value |
| syslog.facility | LOG_USER | LOG_USER |
| syslog.filter | no-ctrl | no-ctrl |
| syslog.ident | php | php |
| unserialize_callback_func | no value | no value |
| upload_max_filesize | 256M | 256M |
| upload_tmp_dir | no value | no value |
| user_dir | no value | no value |
| user_ini.cache_ttl | 300 | 300 |
| user_ini.filename | .user.ini | .user.ini |
| variables_order | GPCS | GPCS |
| xmlrpc_error_number | 0 | 0 |
| xmlrpc_errors | Off | Off |
| zend.assertions | -1 | -1 |
| zend.detect_unicode | On | On |
| zend.enable_gc | On | On |
| zend.exception_ignore_args | Off | On |
| zend.exception_string_param_max_len | 0 | 0 |
| zend.multibyte | Off | Off |
| zend.script_encoding | no value | no value |
| zend.signal_check | Off | Off |
| ctype functions | enabled |
| cURL support | enabled |
| cURL Information | 7.68.0 |
| Age | 5 |
| Features | |
| AsynchDNS | Yes |
| CharConv | No |
| Debug | No |
| GSS-Negotiate | No |
| IDN | Yes |
| IPv6 | Yes |
| krb4 | No |
| Largefile | Yes |
| libz | Yes |
| NTLM | Yes |
| NTLMWB | Yes |
| SPNEGO | Yes |
| SSL | Yes |
| SSPI | No |
| TLS-SRP | Yes |
| HTTP2 | Yes |
| GSSAPI | Yes |
| KERBEROS5 | Yes |
| UNIX_SOCKETS | Yes |
| PSL | Yes |
| HTTPS_PROXY | Yes |
| MULTI_SSL | No |
| BROTLI | Yes |
| Protocols | dict, file, ftp, ftps, gopher, http, https, imap, imaps, ldap, ldaps, pop3, pop3s, rtmp, rtsp, scp, sftp, smb, smbs, smtp, smtps, telnet, tftp |
| Host | x86_64-pc-linux-gnu |
| SSL Version | OpenSSL/1.1.1f |
| ZLib Version | 1.2.11 |
| libSSH Version | libssh/0.9.3/openssl/zlib |
| Directive | Local Value | Master Value |
|---|---|---|
| curl.cainfo | no value | no value |
| date/time support | enabled |
| timelib version | 2021.19 |
| "Olson" Timezone Database Version | 0.system |
| Timezone Database | internal |
| Default timezone | Europe/Prague |
| Directive | Local Value | Master Value |
|---|---|---|
| date.default_latitude | 31.7667 | 31.7667 |
| date.default_longitude | 35.2333 | 35.2333 |
| date.sunrise_zenith | 90.833333 | 90.833333 |
| date.sunset_zenith | 90.833333 | 90.833333 |
| date.timezone | Europe/Prague | no value |
| DOM/XML | enabled |
| DOM/XML API Version | 20031129 |
| libxml Version | 2.9.14 |
| HTML Support | enabled |
| XPath Support | enabled |
| XPointer Support | enabled |
| Schema Support | enabled |
| RelaxNG Support | enabled |
| EXIF Support | enabled |
| Supported EXIF Version | 0220 |
| Supported filetypes | JPEG, TIFF |
| Multibyte decoding support using mbstring | enabled |
| Extended EXIF tag formats | Canon, Casio, Fujifilm, Nikon, Olympus, Samsung, Panasonic, DJI, Sony, Pentax, Minolta, Sigma, Foveon, Kyocera, Ricoh, AGFA, Epson |
| Directive | Local Value | Master Value |
|---|---|---|
| exif.decode_jis_intel | JIS | JIS |
| exif.decode_jis_motorola | JIS | JIS |
| exif.decode_unicode_intel | UCS-2LE | UCS-2LE |
| exif.decode_unicode_motorola | UCS-2BE | UCS-2BE |
| exif.encode_jis | no value | no value |
| exif.encode_unicode | ISO-8859-15 | ISO-8859-15 |
| FFI support | enabled |
|---|
| Directive | Local Value | Master Value |
|---|---|---|
| ffi.enable | preload | preload |
| ffi.preload | no value | no value |
| fileinfo support | enabled |
| libmagic | 540 |
| Input Validation and Filtering | enabled |
| Directive | Local Value | Master Value |
|---|---|---|
| filter.default | unsafe_raw | unsafe_raw |
| filter.default_flags | no value | no value |
| FTP support | enabled |
| FTPS support | enabled |
| GD Support | enabled |
| GD headers Version | 2.3.3 |
| GD library Version | 2.3.3 |
| FreeType Support | enabled |
| FreeType Linkage | with freetype |
| GIF Read Support | enabled |
| GIF Create Support | enabled |
| JPEG Support | enabled |
| PNG Support | enabled |
| WBMP Support | enabled |
| XPM Support | enabled |
| XBM Support | enabled |
| WebP Support | enabled |
| BMP Support | enabled |
| AVIF Support | enabled |
| TGA Read Support | enabled |
| Directive | Local Value | Master Value |
|---|---|---|
| gd.jpeg_ignore_warning | 1 | 1 |
| GetText Support | enabled |
| hash support | enabled |
| Hashing Engines | md2 md4 md5 sha1 sha224 sha256 sha384 sha512/224 sha512/256 sha512 sha3-224 sha3-256 sha3-384 sha3-512 ripemd128 ripemd160 ripemd256 ripemd320 whirlpool tiger128,3 tiger160,3 tiger192,3 tiger128,4 tiger160,4 tiger192,4 snefru snefru256 gost gost-crypto adler32 crc32 crc32b crc32c fnv132 fnv1a32 fnv164 fnv1a64 joaat murmur3a murmur3c murmur3f xxh32 xxh64 xxh3 xxh128 haval128,3 haval160,3 haval192,3 haval224,3 haval256,3 haval128,4 haval160,4 haval192,4 haval224,4 haval256,4 haval128,5 haval160,5 haval192,5 haval224,5 haval256,5 |
| MHASH support | Enabled |
| MHASH API Version | Emulated Support |
| iconv support | enabled |
| iconv implementation | glibc |
| iconv library version | 2.31 |
| Directive | Local Value | Master Value |
|---|---|---|
| iconv.input_encoding | no value | no value |
| iconv.internal_encoding | no value | no value |
| iconv.output_encoding | no value | no value |
| IMAP c-Client Version | 2007f |
| SSL Support | enabled |
| Kerberos Support | enabled |
| Directive | Local Value | Master Value |
|---|---|---|
| imap.enable_insecure_rsh | Off | Off |
| Internationalization support | enabled |
|---|---|
| ICU version | 66.1 |
| ICU Data version | 66.1 |
| ICU TZData version | 2025b |
| ICU Unicode version | 13.0 |
| Directive | Local Value | Master Value |
|---|---|---|
| intl.default_locale | no value | no value |
| intl.error_level | 0 | 0 |
| intl.use_exceptions | Off | Off |
| json support | enabled |
| libXML support | active |
| libXML Compiled Version | 2.9.14 |
| libXML Loaded Version | 20910 |
| libXML streams | enabled |
| Multibyte Support | enabled |
| Multibyte string engine | libmbfl |
| HTTP input encoding translation | disabled |
| libmbfl version | 1.3.2 |
| mbstring extension makes use of "streamable kanji code filter and converter", which is distributed under the GNU Lesser General Public License version 2.1. |
|---|
| Multibyte (japanese) regex support | enabled |
| Multibyte regex (oniguruma) version | 6.9.4 |
| Directive | Local Value | Master Value |
|---|---|---|
| mbstring.detect_order | no value | no value |
| mbstring.encoding_translation | Off | Off |
| mbstring.http_input | no value | no value |
| mbstring.http_output | no value | no value |
| mbstring.http_output_conv_mimetypes | ^(text/|application/xhtml\+xml) | ^(text/|application/xhtml\+xml) |
| mbstring.internal_encoding | no value | no value |
| mbstring.language | neutral | neutral |
| mbstring.regex_retry_limit | 1000000 | 1000000 |
| mbstring.regex_stack_limit | 100000 | 100000 |
| mbstring.strict_detection | Off | Off |
| mbstring.substitute_character | no value | no value |
| MysqlI Support | enabled |
|---|---|
| Client API library version | mysqlnd 8.1.29 |
| Active Persistent Links | 0 |
| Inactive Persistent Links | 0 |
| Active Links | 0 |
| Directive | Local Value | Master Value |
|---|---|---|
| mysqli.allow_local_infile | Off | Off |
| mysqli.allow_persistent | On | On |
| mysqli.default_host | no value | no value |
| mysqli.default_port | 3306 | 3306 |
| mysqli.default_pw | no value | no value |
| mysqli.default_socket | /var/run/mysqld/mysqld.sock | /var/run/mysqld/mysqld.sock |
| mysqli.default_user | no value | no value |
| mysqli.local_infile_directory | no value | no value |
| mysqli.max_links | Unlimited | Unlimited |
| mysqli.max_persistent | Unlimited | Unlimited |
| mysqli.reconnect | Off | Off |
| mysqli.rollback_on_cached_plink | Off | Off |
| mysqlnd | enabled |
|---|---|
| Version | mysqlnd 8.1.29 |
| Compression | supported |
| core SSL | supported |
| extended SSL | supported |
| Command buffer size | 4096 |
| Read buffer size | 32768 |
| Read timeout | 86400 |
| Collecting statistics | Yes |
| Collecting memory statistics | No |
| Tracing | n/a |
| Loaded plugins | mysqlnd,debug_trace,auth_plugin_mysql_native_password,auth_plugin_mysql_clear_password,auth_plugin_caching_sha2_password,auth_plugin_sha256_password |
| API Extensions | mysqli,pdo_mysql |
| OpenSSL support | enabled |
| OpenSSL Library Version | OpenSSL 1.1.1f 31 Mar 2020 |
| OpenSSL Header Version | OpenSSL 1.1.1f 31 Mar 2020 |
| Openssl default config | /usr/lib/ssl/openssl.cnf |
| Directive | Local Value | Master Value |
|---|---|---|
| openssl.cafile | no value | no value |
| openssl.capath | no value | no value |
| PCRE (Perl Compatible Regular Expressions) Support | enabled |
| PCRE Library Version | 10.39 2021-10-29 |
| PCRE Unicode Version | 14.0.0 |
| PCRE JIT Support | enabled |
| PCRE JIT Target | x86 64bit (little endian + unaligned) |
| Directive | Local Value | Master Value |
|---|---|---|
| pcre.backtrack_limit | 1000000 | 1000000 |
| pcre.jit | 1 | 1 |
| pcre.recursion_limit | 100000 | 100000 |
| PDO support | enabled |
|---|---|
| PDO drivers | mysql, sqlite |
| PDO Driver for MySQL | enabled |
|---|---|
| Client API version | mysqlnd 8.1.29 |
| Directive | Local Value | Master Value |
|---|---|---|
| pdo_mysql.default_socket | /var/run/mysqld/mysqld.sock | /var/run/mysqld/mysqld.sock |
| PDO Driver for SQLite 3.x | enabled |
|---|---|
| SQLite Library | 3.31.1 |
| Phar: PHP Archive support | enabled |
|---|---|
| Phar API version | 1.1.1 |
| Phar-based phar archives | enabled |
| Tar-based phar archives | enabled |
| ZIP-based phar archives | enabled |
| gzip compression | enabled |
| bzip2 compression | enabled |
| Native OpenSSL support | enabled |
|
Phar based on pear/PHP_Archive, original concept by Davey Shafik. Phar fully realized by Gregory Beaver and Marcus Boerger. Portions of tar implementation Copyright (c) 2003-2009 Tim Kientzle. |
| Directive | Local Value | Master Value |
|---|---|---|
| phar.cache_list | no value | no value |
| phar.readonly | On | On |
| phar.require_hash | On | On |
| POSIX support | enabled |
| PSpell Support | enabled |
| Readline Support | enabled |
|---|---|
| Readline library | EditLine wrapper |
| Directive | Local Value | Master Value |
|---|---|---|
| cli.pager | no value | no value |
| cli.prompt | \b \> | \b \> |
| Reflection | enabled |
| Session Support | enabled |
| Registered save handlers | files user |
| Registered serializer handlers | php_serialize php php_binary |
| Directive | Local Value | Master Value |
|---|---|---|
| session.auto_start | Off | Off |
| session.cache_expire | 180 | 180 |
| session.cache_limiter | nocache | nocache |
| session.cookie_domain | no value | no value |
| session.cookie_httponly | 1 | no value |
| session.cookie_lifetime | 1206000 | 0 |
| session.cookie_path | / | / |
| session.cookie_samesite | Lax | no value |
| session.cookie_secure | 1 | 0 |
| session.gc_divisor | 1000 | 1000 |
| session.gc_maxlifetime | 1206000 | 1440 |
| session.gc_probability | 0 | 0 |
| session.lazy_write | On | On |
| session.name | PHPSESSID | PHPSESSID |
| session.referer_check | no value | no value |
| session.save_handler | files | files |
| session.save_path | /var/lib/php/sessions | /var/lib/php/sessions |
| session.serialize_handler | php | php |
| session.sid_bits_per_character | 5 | 5 |
| session.sid_length | 26 | 26 |
| session.upload_progress.cleanup | On | On |
| session.upload_progress.enabled | On | On |
| session.upload_progress.freq | 1% | 1% |
| session.upload_progress.min_freq | 1 | 1 |
| session.upload_progress.name | PHP_SESSION_UPLOAD_PROGRESS | PHP_SESSION_UPLOAD_PROGRESS |
| session.upload_progress.prefix | upload_progress_ | upload_progress_ |
| session.use_cookies | 1 | 1 |
| session.use_only_cookies | 1 | 1 |
| session.use_strict_mode | 1 | 0 |
| session.use_trans_sid | 0 | 0 |
| shmop support | enabled |
| SimpleXML support | enabled |
| Schema support | enabled |
| Soap Client | enabled |
| Soap Server | enabled |
| Directive | Local Value | Master Value |
|---|---|---|
| soap.wsdl_cache | 1 | 1 |
| soap.wsdl_cache_dir | /tmp | /tmp |
| soap.wsdl_cache_enabled | On | On |
| soap.wsdl_cache_limit | 5 | 5 |
| soap.wsdl_cache_ttl | 86400 | 86400 |
| Sockets Support | enabled |
| sodium support | enabled |
|---|---|
| libsodium headers version | 1.0.18 |
| libsodium library version | 1.0.18 |
| SPL support | enabled |
|---|---|
| Interfaces | OuterIterator, RecursiveIterator, SeekableIterator, SplObserver, SplSubject |
| Classes | AppendIterator, ArrayIterator, ArrayObject, BadFunctionCallException, BadMethodCallException, CachingIterator, CallbackFilterIterator, DirectoryIterator, DomainException, EmptyIterator, FilesystemIterator, FilterIterator, GlobIterator, InfiniteIterator, InvalidArgumentException, IteratorIterator, LengthException, LimitIterator, LogicException, MultipleIterator, NoRewindIterator, OutOfBoundsException, OutOfRangeException, OverflowException, ParentIterator, RangeException, RecursiveArrayIterator, RecursiveCachingIterator, RecursiveCallbackFilterIterator, RecursiveDirectoryIterator, RecursiveFilterIterator, RecursiveIteratorIterator, RecursiveRegexIterator, RecursiveTreeIterator, RegexIterator, RuntimeException, SplDoublyLinkedList, SplFileInfo, SplFileObject, SplFixedArray, SplHeap, SplMinHeap, SplMaxHeap, SplObjectStorage, SplPriorityQueue, SplQueue, SplStack, SplTempFileObject, UnderflowException, UnexpectedValueException |
| SQLite3 support | enabled |
|---|---|
| SQLite Library | 3.31.1 |
| Directive | Local Value | Master Value |
|---|---|---|
| sqlite3.defensive | On | On |
| sqlite3.extension_dir | no value | no value |
| Dynamic Library Support | enabled |
| Path to sendmail | /usr/sbin/sendmail -t -i |
| Directive | Local Value | Master Value |
|---|---|---|
| assert.active | On | On |
| assert.bail | Off | Off |
| assert.callback | no value | no value |
| assert.exception | On | On |
| assert.warning | On | On |
| auto_detect_line_endings | Off | Off |
| default_socket_timeout | 60 | 60 |
| from | no value | no value |
| session.trans_sid_hosts | no value | no value |
| session.trans_sid_tags | a=href,area=href,frame=src,form= | a=href,area=href,frame=src,form= |
| unserialize_max_depth | 4096 | 4096 |
| url_rewriter.hosts | no value | no value |
| url_rewriter.tags | form= | form= |
| user_agent | no value | no value |
| sysvmsg support | enabled |
| sysvsem support | enabled |
| sysvshm support | enabled |
| Tidy support | enabled |
| libTidy Version | 5.6.0 |
| libTidy Release | 2017/11/25 |
| Directive | Local Value | Master Value |
|---|---|---|
| tidy.clean_output | no value | no value |
| tidy.default_config | no value | no value |
| Tokenizer Support | enabled |
| XML Support | active |
| XML Namespace Support | active |
| libxml2 Version | 2.9.14 |
| XMLReader | enabled |
| XMLWriter | enabled |
| XSL | enabled |
| libxslt Version | 1.1.34 |
| libxslt compiled against libxml Version | 2.9.10 |
| EXSLT | enabled |
| libexslt Version | 1.1.34 |
| Opcode Caching | Up and Running |
| Optimization | Enabled |
| SHM Cache | Enabled |
| File Cache | Disabled |
| JIT | Disabled |
| Startup | OK |
| Shared memory model | mmap |
| Cache hits | 407811451 |
| Cache misses | 2954 |
| Used memory | 70758624 |
| Free memory | 63459104 |
| Wasted memory | 0 |
| Interned Strings Used memory | 8388592 |
| Interned Strings Free memory | 16 |
| Cached scripts | 2937 |
| Cached keys | 4851 |
| Max keys | 16229 |
| OOM restarts | 0 |
| Hash keys restarts | 0 |
| Manual restarts | 0 |
| Directive | Local Value | Master Value |
|---|---|---|
| opcache.blacklist_filename | no value | no value |
| opcache.consistency_checks | 0 | 0 |
| opcache.dups_fix | Off | Off |
| opcache.enable | On | On |
| opcache.enable_cli | Off | Off |
| opcache.enable_file_override | Off | Off |
| opcache.error_log | no value | no value |
| opcache.file_cache | no value | no value |
| opcache.file_cache_consistency_checks | On | On |
| opcache.file_cache_only | Off | Off |
| opcache.file_update_protection | 2 | 2 |
| opcache.force_restart_timeout | 180 | 180 |
| opcache.huge_code_pages | Off | Off |
| opcache.interned_strings_buffer | 8 | 8 |
| opcache.jit | tracing | tracing |
| opcache.jit_bisect_limit | 0 | 0 |
| opcache.jit_blacklist_root_trace | 16 | 16 |
| opcache.jit_blacklist_side_trace | 8 | 8 |
| opcache.jit_buffer_size | 0 | 0 |
| opcache.jit_debug | 0 | 0 |
| opcache.jit_hot_func | 127 | 127 |
| opcache.jit_hot_loop | 64 | 64 |
| opcache.jit_hot_return | 8 | 8 |
| opcache.jit_hot_side_exit | 8 | 8 |
| opcache.jit_max_exit_counters | 8192 | 8192 |
| opcache.jit_max_loop_unrolls | 8 | 8 |
| opcache.jit_max_polymorphic_calls | 2 | 2 |
| opcache.jit_max_recursive_calls | 2 | 2 |
| opcache.jit_max_recursive_returns | 2 | 2 |
| opcache.jit_max_root_traces | 1024 | 1024 |
| opcache.jit_max_side_traces | 128 | 128 |
| opcache.jit_prof_threshold | 0.005 | 0.005 |
| opcache.lockfile_path | /tmp | /tmp |
| opcache.log_verbosity_level | 1 | 1 |
| opcache.max_accelerated_files | 10000 | 10000 |
| opcache.max_file_size | 0 | 0 |
| opcache.max_wasted_percentage | 5 | 5 |
| opcache.memory_consumption | 128 | 128 |
| opcache.opt_debug_level | 0 | 0 |
| opcache.optimization_level | 0x7FFEBFFF | 0x7FFEBFFF |
| opcache.preferred_memory_model | no value | no value |
| opcache.preload | no value | no value |
| opcache.preload_user | no value | no value |
| opcache.protect_memory | Off | Off |
| opcache.record_warnings | Off | Off |
| opcache.restrict_api | no value | no value |
| opcache.revalidate_freq | 2 | 2 |
| opcache.revalidate_path | Off | Off |
| opcache.save_comments | On | On |
| opcache.use_cwd | On | On |
| opcache.validate_permission | Off | Off |
| opcache.validate_root | Off | Off |
| opcache.validate_timestamps | On | On |
| Zip | enabled |
| Zip version | 1.19.5 |
| Libzip version | 1.7.3 |
| BZIP2 compression | Yes |
| XZ compression | No |
| ZSTD compression | No |
| AES-128 encryption | Yes |
| AES-192 encryption | Yes |
| AES-256 encryption | Yes |
| ZLib Support | enabled |
|---|---|
| Stream Wrapper | compress.zlib:// |
| Stream Filter | zlib.inflate, zlib.deflate |
| Compiled Version | 1.2.11 |
| Linked Version | 1.2.11 |
| Directive | Local Value | Master Value |
|---|---|---|
| zlib.output_compression | Off | Off |
| zlib.output_compression_level | -1 | -1 |
| zlib.output_handler | no value | no value |
| Module Name |
|---|
array (1)0 => array (7)| 'name' => 'default output handler' | 'type' => 0 | 'flags' => 20592 | 'level' => 0 | 'chunk_size' => 4096 | 'buffer_size' => 8192 | 'buffer_used' => 2660
| Cookie | 'tracy-session=0e26302866; PHPSESSID=4pbt9reg5ous4j7kdi9t3nllpk; _nss=1'
|
|---|---|
| Accept-Encoding | 'gzip, br, zstd, deflate'
|
| User-Agent | 'Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)'
|
| Accept | '*/*'
|
| Connection | 'close'
|
| X-Forwarded-Proto | 'https'
|
| X-Forwarded-For | '216.73.216.104'
|
| X-Real-Ip | '216.73.216.104'
|
| Host | 'dev.primaobrazy.cz'
|
| f | '28:189,329,332,223,192,327'
|
|---|
empty
| tracy-session | '0e26302866'
|
|---|---|
| PHPSESSID | '4pbt9reg5ous4j7kdi9t3nllpk'
|
| _nss | '1'
|
| X-Powered-By | 'Nette Framework 3'
|
|---|---|
| Content-Type | 'text/html; charset=utf-8'
|
| X-Frame-Options | 'SAMEORIGIN'
|
| Set-Cookie | '_nss=1; path=/; secure; HttpOnly; SameSite=Strict'
|
| Set-Cookie | 'PHPSESSID=4pbt9reg5ous4j7kdi9t3nllpk; expires=Tue, 31-Mar-2026 20:00:34 GMT; Max-Age=1206000; path=/; secure; HttpOnly; SameSite=Lax'
|
| Expires | 'Thu, 19 Nov 1981 08:52:00 GMT'
|
| Cache-Control | 'no-store, no-cache, must-revalidate'
|
| Pragma | 'no-cache'
|
| Vary | 'X-Requested-With'
|
Headers have been sent, output started at .../FrontModule-__inc-topBarInfo.latte--418aa0318f.php:25 source
15: $topBarText = ($this->global->fn->content)('topBarInfo', 'text') /* line 4 */; 16: echo "\n"; 17: if ($topBarIsActive && $topBarText) /* line 6 */ { 18: echo ' <style> 19: :root { 20: --top-box-info-background-color: '; 21: echo $topBarBackgroundColor /* line 9 */; 22: echo '; 23: --top-box-info-text: '; 24: echo $topBarTextColor /* line 10 */; 25: echo '; 26: } 27: </style> 28: <div class="top_box_info"> 29: <div class="container">