Ivo Lukačovič před 6 dny psal, že toolbar nazvaný Seznam Lištička (mimochodem to nemá Seznam co s těma penězma dělat, že si pro každou svou službu kupuje doménu 2. řádu? :-)) je nyní konečně i ve verzi pro Firefox. Portálové lištičky skutečně nesnáším. Zužují mi okno prohlížeče a jediná užitečná věc, kterou obsahují, je vyhledávací okénko, které je ve Firefoxu rovnou zabudované. Zkusit si to nainstalovat mě přesvědčil Lukačovičův spot o tom, jak se kvůli jedné z funkcí Lištičky na čas zase vrátil k IE, dokud Lištička pro Firefox neexistovala.
A skutečně. Seznam mě příjemně překvapil a jeho Lištička patří mezi nejužitečnější rozšíření, která ve svém prohlížeči mám nainstalovaná. K dokonalosti mu bohužel ještě mnohé chybí, ale co se dá dělat, je to zatím pouze betaverze, třeba se časem dočkáme dalších vylepšení.
Až na onu jednu skvělou funkci není Lištička ničím zajímavá. Klasika – logo Seznamu, vedle formulář pro vyhledávání, zvýrazňování textu, jakási nepříliš použitelná kontrola pravopisu, obdoba PageRanku – S-Rank a odkazy na nějaké služby Seznamu. Nic po čem bych skutečně toužil, klasický toolbar. „Zabijákem“ je až slovník, respektive podoba jeho implementace.
Poměrně často brouzdám na nějakém anglickém, méně často i francouzském webu. Protože mé znalosti těchto jazyků nejsou zdaleka dokonalé (pokud jde o francouzštinu, tak ani zdaleka podprůměrné), často v textu narazím na slovíčko, které neznám a je přitom klíčové pro pochopení celé věty. Na druhou stranu jsem extrémně líný, nejsem ochoten jít na slovnik.seznam.cz (používal jsem Centrum, ale zjistil jsem, že Seznam má daleko lepší databázi frází a různých tvarů slov, přestože i to má své „mouchy“), napsat do něj ono slovo, nastavit si z jakého je to jazyka a čekat, až mi něco vyplivne. Obvykle jsem proto neznámé slovo ignoroval a doufal, že význam článku pochopím z ostatních částí.
V Lištičce si můžete zapnout geniální funkci. Navíc funguje i pokud si celý pruh Lištičky schováte, takže ji můžete využívat, aniž byste přítomnost Seznamu jakkoliv jinak pocítili. Tak tedy o co konečně jde? Pokud najedete myší kurzorem nad nějaké slovo, automaticky je Seznamu odeslán požadavek na přeložení a velmi rychle se nad ním objeví bublina s překladem. Nejjednodušší bude ukázat, jak to vypadá v praxi:


Myslím, že není třeba více rozebírat, jak úžasné to je. Zkuste si to sami. Napsal bych raději co mě trošku vadí a obtěžuje. Zásadní je vypínání této funkce. Seznam se snaží domýšlet, co by tak uživatel tím kterým slovem mohl myslet. Kvůli tomu se často pokouší překládat i české slovo do češtiny. Vypadá to například takto:


Ve verzi Lištičky, kterou jsem měl staženu, šel překlad vypnout až v nastavení, takže to byla skutečně otrava a dělat to několikrát denně by mi za to nestálo. Dnes to již, na přání uživatelů, jde udělat o poznání jednodušeji. Zapínání/vypínání má své zvláštní tlačítko přímo na Lištičce, takže to je otázka jednoho kliknutí. Jenže – ani to není dokonalé. Lištičku totiž ve svém prohlížeči nechci, žádnou jinou funkci nevyužiji. Abych měl pístup k tomuto jednomu tlačítku, musel bych obětovat celý jeden řádek.
Můžete si říct, že to je zkrátka daň za to, že ten slovník chci. Na co by Seznamu byla lištička, kterou si člověk schová a používá jen na jeden jediný účel, ze kterého Seznam nemá žádný prospěch? To však není tak docela pravda. Vstřícný přístup k uživateli se nakonec vždy vyplatí, jak ukazuje Google. Právě Google Toolbar je ukázkou toho, jak lze využít flexibility Firefoxu. Jednotlivé jeho funkce si můžete doslova rozebrat a rozmístit v prohlížeči na nejrůznější místa. Do zvláštní lišty, do statusové lišty, vedle menu… Navíc můžete používat jen některé z nich. Někoho například zajímá pouze PagaRank. Výborně – přetáhne si někam tuto funkci a zbytek schová. Geniálně jednoduché a maximálně užitečné. Nemohl by Seznam udělat něco podobného? Stačí mi tlačítko pro vypínání slovníku a zbytek – adieu.

Druhá výhrada není tak vážná. Když si čtete anglický článek, nepotřebujete překlad každou vteřinu. Seznam se však i pokud textu rozumíte snaží překládat cokoliv, nad co se dostane Váš kurzor. To je mimořádně otravné, při čtení jsem měl ve zvyku text postupně označovat a „držet si tak prst“. Teď abych se snažil kurzor schovat někam co nejvíc mimo web. Tohle se částečně dá vyřešit tím, že si nastavím delší odezvu (slovník se zapne po dešlí chvíli). Jenže to zas také není řešení, když chci znát nějaké slovo, chci ho znát hned, ne za 2 vteřiny. Nebylo by možné, aby se překlad aktivoval až po nějaké akci? Nejlépe kliknutí na nějaké slovo, nebo i označení či cokoliv podobně rychlého.
Poslední věcí je databáze slovníku. Seznam například není schopen přeložit sloveso ve třetí osobě. To je logické, takto ho asi do klasického slovníku nikdo nenapíše. Jenže na webu se objevují slovesa i v tomto tvaru a co s tím potom? Již zmíněný problém je s tím, že se Seznam pokouší být chytřejší než uživatel a domýšlet si, co asi tak zamýšlel. Jenže i to je na webu problém, některé překlady jsou pak úplně uhozené. Například:

Přes všechny výhrady však musím říct, že tohle je přesně ta funkce, která mi chyběla ke štěstí a jsem moc rád, že se na českém internetu také občas objeví něco skutečně unikátního. Nevím o žádném jiném toolbaru, který by nabízel podobnou věc podobně snadně a to ani z jiných jazyků. Díky Sezname!
P.S.: Ale vyřizovat si účty s konkurencí takhle nízkých způsobem bys nemusel. :-)

no, ja slovnim resim ve FF pres klicova slova vyhledavani - zmacknu ctrl+t, do adresoveho radku napisu treba "s english_word" a po enteru se mi rovnou dane slovo vyhleda. samozrejme mam takhle definovane i dalsi jazyky.
diky tomuhle reseni nemusim zbytecne sahat na mys, protoze normalne scrolluju mezernikem
V reakci na prispevek na Lupe jsem si nainstaloval ono supr rozsireni do anglicke verze FF a to bylo naposledy kdy jsem ji videl s timhle rozsirenim videl FF bezet. Po restartu FF process FF bezel, ale okno nikde. Zabralo manualni smazani rozsireni od seznamu ;-((
Je mi lito ale takovy SW nestoji za nic ... jeste ze je to jen Beta ..
I když nejsem do Seznamu zrovna zamilovaný, je třeba říct, že jejich slovníky jsou opravdu dobré. Když se člověk bude shánět po něčem podobném v zahraničí, tak aby pohledal... Třeba dobrý anglicko - portugalský slovník on-line snad neexistuje. Navíc, když jsem Lukačovičovi psal tip na jedno drobné, ale užitečné vylepšení, do 14 dnů bylo implementováno, wow, všechna čest. Navíc ty zvukové záznamy některých slov taky občas přijdou vhod.
Tahle funkce ve FF ale není úplně originální - už jsem nějaký takový slovník viděl jako samostatné rozšíření, samozřejmě anglicko - anglický výkladový - fungovalo to na stejném principu jak bys chtěl - označil jsi text, a v kontextovém menu klikl na vyhledat a bublina se objevila. Ale já jsem to moc nevyužíval, tak jsem to zas odinstaloval...
Výstižná recenze!
Ten slovník mě taky láká, ale panel mu neobětuju. Tak aspoň přemýšlím, jak funkcionalitu vyřešit přes nějaký automaticky načítaný JavaScript a AJAX.
ps. Stáhněte si Lištičku: http://www.dgx.cz/trine/item/stahnete-si-listicku
[1] Pořád ještě na mě příliš složité, musíš otevírat nový panel, tím ztratíš kontextem a musíš přepínat mezi 2 stránkama.
[2] Tak to se omlouvám. :-) Možná stačilo jen ukončit firefox.exe a spustit to znovu (?)
[3] To rozšíření znám, ale není to ono. Kombinuje to označení (1), pravé kliknutí (2) a levé kliknutí na jeden z řady kontextových odkazů (3). Ty tři kroky jsou příliš, stačilo by to zjednodušit na něco jednoduššího, třeba:
[5] přesně tak.
[6] Ten panel lze schovat a slovník se přitom nevypne. Jen pak nejde ovládat jeho vypínání. :-(
Perfektní věc! Lištičku jsem vypnul a používám jen slovník. Díky Seznamu a tobě, žes na to upozornil:)
Mám teď sice trochu výčitky, že nevyužívám vpodstatě žádnou seznamáckou službu a jenom tak parazituju (mám holt google, gmail, personalized homepage.. :) ). No, asi jim občas přijdu kliknout na nějakou tu reklamu.
ziskas to takhle:
http://slovnik.seznam.cz/dict.py?word={slovo}&lgfrom=en&lgto=cz
Autor píše: "Nevím o žádném jiném toolbaru, který by nabízel podobnou věc podobně snadně a to ani z jiných jazyků."
Skutečnost je přesně opačná, ve světě nabízí podobnou funkci každý lepší slovník, často i v podobě, která není omezena jen na internetový prohlížeč. V Česku znám minimálně tři slovníky, které to umějí: Easylex, Lexie a Eurotran.
Osobně používám pro překlad aplikaci Lingea Lexicon, která je namapovaná přímo na schránku. Když je spuštěná a neminimalizovaná, tak se všechno, co dám do schránky (a není to třeba e-mailová adresa), automaticky přeloží. Díky tomu lze použít ze všech aplikací, nejen z prohlížeče. Má vynikající ohýbání slov a automatické rozpoznání jazyka. To je věc, která mi na slovníku Seznamu dost chybí.
Rozpoznání jazyka ve slovníku Lištičky se přitom samo nabízí, použitý jazyk může být uveden v atributu lang nebo xml:lang, případně se dá částečně orientovat i podle domény nebo širšího kontextu. Mají zkrátka mnohem lepší podmínky a přitom nejsou využity.
Překlad pouhým najetím myši je pohodlnější než označení a vložení do schránky, ale zase to má zde popsané nevýhody.
Pokud nekomu jde jen o ten slovnik, a nechce kvuli tomu instalovat celou listu seznamu, tak muze zkusit upravene rozsireni DictionaryTip:
http://www.fi.muni.cz/~xhamala/quicktrans/files/dictionarytip.xpi
Neni to tak hezke -- funguje na dvojklik na slove. Vyuziva slovnik Seznamu. Jen je dobre po instalaci zmenit implicitni vysku vyskakovaciho okna.
Nyní bloguji na jilm.cz.
Přečteno 70 040×
Přečteno 69 251×
Přečteno 58 734×
Přečteno 58 439×
Přečteno 57 047×
Warning
File: .../stable/php-libs/appShare/libs/Blogs/BlogsSelection.php:147
137: ->where("opinions.status = %s", "active") 138: ->orderBy("opinions.insert_date DESC") 139: ->limit($count); 140: $data = $query->fetchAll(); 141: foreach ($data as $row) { 142: $row->user_deleted = null; 143: if ($row->user_id) { 144: $user = dibi::getConnection('usersys') 145: ->query('SELECT * FROM users WHERE user_id = %i', $row->user_id) 146: ->fetch(); 147: $row->user_deleted = $user->deleted; 148: } 149: } 150: // ulozeni do CACHE 151: $cache->save($cacheKey, $data, array(
22: protected $commentsCount = 5; 23: 24: public function __construct($blogId = 0) { 25: $this->blogId = $blogId; 26: } 27: 28: public function render() { 29: if (!$this->blogId) return; 30: 31: // [future] Zrefaktorovat komponentu tak, aby se jí daly předávat závislosti 32: $this->getTemplate()->opinions = BlogsSelection::getLastOpinionsForBlog($this->blogId, $this->commentsCount, $this->getPresenter()->getContext()->getByType(CacheFactory::class), $this->getPresenter()->getContext()->getByType(Shared_Blogs_Helper::class)); 33: // render sablony zajisti predek 34: parent::render(); 35: } 36:
| $blogId | 8
 | 
|---|---|
| $count | 5
 | 
| $cacheFactory | |
| $blogsHelper | 
90: $control->setExtraParameters($parameters[\Shared_BaseComponent::EXTRA_PARAM_NAME]); 91: unset($parameters[\Shared_BaseComponent::EXTRA_PARAM_NAME]); 92: } else { 93: $control->clearExtraParameters(); 94: } 95: } 96: 97: if ($isDebug) { 98: // call method this way is much faster 99: // see http://grokbase.com/t/php/php-internals/115qyp1bjk/call-user-func-performance-and-dynamic-code 100: if (!$parameters) $control->$method(); 101: else call_user_func_array([$control, $method], array_values($parameters)); 102: return; 103: } 104:
87: ob_end_clean(); 88: } else { 89: echo ob_get_clean(); 90: } 91: } 92: ob_start(function () {}); 93: try { 94: echo '<div class="section section--sidebar-in">'; 95: ob_start(); 96: try { 97: IInfo\LatteMacros::renderControl("lastBlogComments", "render", [], $this->global->uiControl); 98: } finally { 99: $ʟ_ifc[3] = rtrim(ob_get_flush()) === ''; 100: } 101: echo '</div>
1: {extends '../@default.latte'} 2: 3: 4: {block sidebarMain-aboveWrapper} 5: {control footerInfo} 6: {/block} 7: 8: 9: {block sidebarMain-content} 10: <div class="page-block--actualities page-block design-box"> 11: {control blogAuthorInfo} 12: <div class="section section--sidebar-in" n:ifcontent>{control htmlBadges}</div> 13: <div class="section section--sidebar-in" n:ifcontent>{control mostReadBlogArticles}</div> 14: <div class="section section--sidebar-in" n:ifcontent>{control lastBlogComments}</div> 15: <div class="section section--sidebar-in" n:ifcontent>{control blogsLabelsTagcloud}</div>
| $control | |
|---|---|
| $method | 'render'
 | 
| $parameters | array (0)
 | 
| $container | 
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 sidebarMain-content'
 | 
89: public function blockSidebarMain_adverts_sticky_1(array $ʟ_args): void 90: { 91: extract($this->params); 92: extract($ʟ_args); 93: unset($ʟ_args); 94: echo '<div class="page-block--ad_square1 page-block design-box"> 95: '; 96: IInfo\LatteMacros::renderControl("ad", "render", ['sidebar-sticky-1'], $this->global->uiControl); 97: $this->renderBlock('sidebarMain-adverts--sticky-1-aditional-content', get_defined_vars()) /* line 13 */; 98: echo "\n"; 99: $this->renderBlock('sidebarMain-content', get_defined_vars()) /* line 14 */; 100: echo ' 101: </div> 102: '; 103: }
4: 5: {block content}{* [future] possibly remove this block completely since the layout (DOM structure) of all pages should be the same. difference(s) should be present in CSS if needed *} 6: <div id="sidebar" class="js-sticker-wrapper sidebar layout-columns__item--sidebar layout-columns__item design-sidebar design-tile--version-2 design-tile"> 7: 8: {block sidebarMain-adSidebarPartner} 9: {control ad 'sidebar-partner'} 10: {/block} 11: 12: {block sidebarMain-aboveContent}{/block} 13: 14: <div class="js-sticker-wrapper__items"> 15: {block sidebarMain-adverts--sticky-1} 16: <div class="page-block--ad_square1 page-block design-box"> 17: {control ad 'sidebar-sticky-1'} 18:
| $name | 'sidebarMain-content'
 | 
|---|---|
| $params | 
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 sidebarMain-adverts--sticky-1'
 | 
47: extract($ʟ_args); 48: unset($ʟ_args); 49: echo '<div id="sidebar" class="js-sticker-wrapper sidebar layout-columns__item--sidebar layout-columns__item design-sidebar design-tile--version-2 design-tile"> 50: '; 51: $this->renderBlock('sidebarMain-adSidebarPartner', get_defined_vars()) /* line 5 */; 52: echo "\n"; 53: $this->renderBlock('sidebarMain-aboveContent', get_defined_vars()) /* line 8 */; 54: echo ' 55: <div class="js-sticker-wrapper__items"> 56: '; 57: $this->renderBlock('sidebarMain-adverts--sticky-1', get_defined_vars()) /* line 10 */; 58: echo "\n"; 59: $this->renderBlock('sidebarMain-adverts--sticky-2', get_defined_vars()) /* line 28 */; 60: echo "\n"; 61: $this->renderBlock('sidebarMain-adverts--sticky-3', get_defined_vars()) /* line 36 */;
1: {block sidebar__default--columnMainAdditionalContent}{/block} 2: </div> {* for "layout-columns" and related to $isLayoutPageColumnsClosed in "@footer--RootLike.latte" *} 3: 4: 5: {block content}{* [future] possibly remove this block completely since the layout (DOM structure) of all pages should be the same. difference(s) should be present in CSS if needed *} 6: <div id="sidebar" class="js-sticker-wrapper sidebar layout-columns__item--sidebar layout-columns__item design-sidebar design-tile--version-2 design-tile"> 7: 8: {block sidebarMain-adSidebarPartner} 9: {control ad 'sidebar-partner'} 10: {/block} 11: 12: {block sidebarMain-aboveContent}{/block} 13: 14: <div class="js-sticker-wrapper__items"> 15: {block sidebarMain-adverts--sticky-1}
| $name | 'sidebarMain-adverts--sticky-1'
 | 
|---|---|
| $params | 
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 content'
 | 
13: public function main(): array 14: { 15: extract($this->params); 16: if ($this->getParentName()) { 17: return get_defined_vars(); 18: } 19: $this->renderBlock('sidebar__default--columnMainAdditionalContent', get_defined_vars()) /* line 1 */; 20: echo ' 21: </div> 22: '; 23: $this->renderBlock('content', get_defined_vars()) /* line 3 */; 24: return get_defined_vars(); 25: } 26: 27:
1: {block sidebar__default--columnMainAdditionalContent}{/block} 2: </div> {* for "layout-columns" and related to $isLayoutPageColumnsClosed in "@footer--RootLike.latte" *} 3: 4: 5: {block content}{* [future] possibly remove this block completely since the layout (DOM structure) of all pages should be the same. difference(s) should be present in CSS if needed *} 6: <div id="sidebar" class="js-sticker-wrapper sidebar layout-columns__item--sidebar layout-columns__item design-sidebar design-tile--version-2 design-tile"> 7: 8: {block sidebarMain-adSidebarPartner} 9: {control ad 'sidebar-partner'} 10: {/block} 11: 12: {block sidebarMain-aboveContent}{/block} 13: 14: <div class="js-sticker-wrapper__items"> 15: {block sidebarMain-adverts--sticky-1}
| $name | 'content'
 | 
|---|---|
| $params | 
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
 | 
|---|
53: $this->createTemplate(IInfo\LatteMacros::getTemplateDestination('sidebar/ArchiveModule/actualities.latte', $this->getName(), false), ['isErrorPage' => $isErrorPage] + $this->getParameters(), "includeX")->render(); 54: } elseif ($isSidebarTypeArchiveLabelDetail) /* line 45 */ { 55: $this->createTemplate(IInfo\LatteMacros::getTemplateDestination('sidebar/ArchiveModule/detail.latte', $this->getName(), false), ['isErrorPage' => $isErrorPage] + $this->getParameters(), "includeX")->render(); 56: } elseif ($isSidebarTypeArticle) /* line 47 */ { 57: $this->createTemplate(IInfo\LatteMacros::getTemplateDestination('sidebar/TextModule/article.latte', $this->getName(), false), ['isErrorPage' => $isErrorPage] + $this->getParameters(), "includeX")->render(); 58: } elseif ($isSidebarTypeGeneralText) /* line 49 */ { 59: $this->createTemplate(IInfo\LatteMacros::getTemplateDestination('sidebar/TextModule/generalText.latte', $this->getName(), false), ['isErrorPage' => $isErrorPage] + $this->getParameters(), "includeX")->render(); 60: } elseif ($isSidebarTypeBlogs) /* line 51 */ { 61: $this->createTemplate(IInfo\LatteMacros::getTemplateDestination('sidebar/BlogsModule/shared.latte', $this->getName(), false), ['isErrorPage' => $isErrorPage] + $this->getParameters(), "includeX")->render(); 62: } elseif ($isSidebarTypeBlogsDetail) /* line 53 */ { 63: $this->createTemplate(IInfo\LatteMacros::getTemplateDestination('sidebar/BlogsModule/detail.latte', $this->getName(), false), ['isErrorPage' => $isErrorPage] + $this->getParameters(), "includeX")->render(); 64: } elseif ($isSidebarTypeBlogsIndex) /* line 55 */ { 65: $this->createTemplate(IInfo\LatteMacros::getTemplateDestination('sidebar/BlogsModule/index.latte', $this->getName(), false), ['isErrorPage' => $isErrorPage] + $this->getParameters(), "includeX")->render(); 66: } elseif ($isSidebarTypeDatabaseCatalog) /* line 57 */ { 67: $this->createTemplate(IInfo\LatteMacros::getTemplateDestination('sidebar/DatabaseNew/catalog.latte', $this->getName(), false), ['isErrorPage' => $isErrorPage] + $this->getParameters(), "includeX")->render();
1: {default $isSidebarTypeActuality = false} 2: {default $isSidebarTypeAnniversaryComics = false} 3: {default $isSidebarTypeArchiveActualities = false} 4: {default $isSidebarTypeArchiveLabelDetail = false} 5: {default $isSidebarTypeArticle = false} 6: {default $isSidebarTypeAwards = false} 7: {default $isSidebarTypeBlogs = false} 8: {default $isSidebarTypeBlogsDetail = false} 9: {default $isSidebarTypeBlogsIndex = false} 10: {default $isSidebarTypeConsultingDetail = false} 11: {default $isSidebarTypeConsultingQuestions = false} 12: {default $isSidebarTypeDatabaseCatalog = false} 13: {default $isSidebarTypeDatabaseView = false} 14: {default $isSidebarTypeDiscussionDetail = false} 15: {default $isSidebarTypeIndex = false}
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
 | 
|---|
110: '; 111: IInfo\LatteMacros::renderControl("similarArticles", "render", [], $this->global->uiControl); 112: echo '</div> 113: '; 114: if (isset($opinionsListing) && $opinionsListing) /* line 80 */ { 115: $_HT_macro_arg = $opinionsListing /* line 81 */; 116: IInfo\LatteMacros::renderLazyControl($this->global->uiPresenter, $_HT_macro_arg, []); 117: } 118: echo '</div> 119: '; 120: $this->createTemplate(IInfo\LatteMacros::getTemplateDestination('../../../footer.latte', $this->getName(), false), ['isSidebarTypeBlogsDetail' => true] + $this->getParameters(), "includeX")->render(); 121: return get_defined_vars(); 122: } 123: 124:
1: {includeX '../../../header.latte'} 2: 3: 4: {includeShared '/common/additionalCssResolver.inc.latte', 5: isPageWithFancyBox => true, 6: } 7: {includeShared '/common/additionalJsResolver.inc.latte', 8: isPageWithEasing => true, 9: isPageWithMouseWheel => true, 10: isPageWithFancyBox => true, 11: } 12: 13: 14: <div class="design-tile--version-1 design-tile"> 15:
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
 | 
|---|
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: if (\cfg::$debug['tmplDump']) { 47: $filePath = strstr($file ? : $this->file, "templates/"); 48: echo '<pre class="nette-dump"><span class="nette-dump-object">' . get_class($this->control) . ": $filePath" . '</span></pre>'; 49: } 50: $this->latte->render($file ?: $this->file, $this); 51: } 52: 53: 54: /**
| $name | '/www/virtual/martin/stable/lupa/app/templates/BlogsModule/ArticleModule/Article/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 | 
|---|
13: !empty($_SERVER["HTTPS"]), 14: 'http://forum.lupa.cz/', 15: trim(AppConfig::$modulesUrl['blogs'], '/'), 16: true 17: ); 18: $redirector->injectDibiConnections($bootstrap->getContext()->getService('dibiConnections')); 19: $redirector->redirectUrl(); 20: unset($redirector); 21: 22: $bootstrap->setupRouting(); 23: $bootstrap->getApplication()->run(); 24:
| HTTPS | 'on'
 | 
|---|---|
| SCRIPT_URL | '/jilm/skvela-seznam-listicka/'
 | 
| SCRIPT_URI | 'http://blog-lupa-martin.imho.cz/jilm/skvela-seznam-listicka/'
 | 
| TZ | 'Europe/Prague'
 | 
| HTTP_HOST | 'blog-lupa-martin.imho.cz'
 | 
| HTTP_ACCESS_CONTROL_ALLOW_ORIGIN | '*'
 | 
| HTTP_REFERRER_POLICY | 'no-referrer-when-downgrade'
 | 
| HTTP_X_REAL_IP | '216.73.216.123'
 | 
| HTTP_CONNECTION | 'close'
 | 
| HTTP_ACCEPT | '*/*'
 | 
| HTTP_USER_AGENT | 'Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)'
 | 
| HTTP_ACCEPT_ENCODING | 'gzip, br, zstd, deflate'
 | 
| HTTP_COOKIE | 'opinionsOrdering=insert; tracy-session=953fcae91a; _nss=1'
 | 
| HTTP_X_HTTPS | '1'
 | 
| PATH | '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin'
 | 
| LD_LIBRARY_PATH | '/opt/mozjpeg/lib64'
 | 
| SERVER_SIGNATURE | |
| SERVER_SOFTWARE | 'Apache/2.4.38 (Debian)'
 | 
| SERVER_NAME | 'blog-lupa-martin.imho.cz'
 | 
| SERVER_ADDR | '127.0.0.1'
 | 
| SERVER_PORT | '80'
 | 
| REMOTE_ADDR | '216.73.216.123'
 | 
| DOCUMENT_ROOT | '/www/virtual/martin/stable/lupa/document_root/'
 | 
| REQUEST_SCHEME | 'http'
 | 
| CONTEXT_PREFIX | ''
 | 
| CONTEXT_DOCUMENT_ROOT | '/www/virtual/martin/stable/lupa/document_root/'
 | 
| SERVER_ADMIN | '[no address given]'
 | 
| SCRIPT_FILENAME | '/www/virtual/martin/stable/lupa/document_root/index.php'
 | 
| REMOTE_PORT | '54008'
 | 
| GATEWAY_INTERFACE | 'CGI/1.1'
 | 
| SERVER_PROTOCOL | 'HTTP/1.0'
 | 
| REQUEST_METHOD | 'GET'
 | 
| QUERY_STRING | |
| REQUEST_URI | |
| SCRIPT_NAME | '/jilm/skvela-seznam-listicka/'
 | 
| PHP_SELF | '/jilm/skvela-seznam-listicka/'
 | 
| REQUEST_TIME_FLOAT | 1762252941.901839
 | 
| REQUEST_TIME | 1762252941
 | 
| __NF | Nette Session | 
|---|
| Nette.Http.UserStorage/ | null
 | 
|---|
| APP_DIR | '/www/virtual/martin/stable/lupa/app'
 | 
|---|---|
| APP_LIB_DIR | '/www/virtual/martin/stable/lupa/app/libs'
 | 
| LIB_DIR | '/www/virtual/martin/stable/php-libs'
 | 
| APP_SHARED_DIR | '/www/virtual/martin/stable/php-libs/appShare'
 | 
| APP_SHARED_LIB_DIR | '/www/virtual/martin/stable/php-libs/appShare/libs'
 | 
| APP_TEMPLATE_DIR | '/www/virtual/martin/stable/lupa/app/templates'
 | 
| APP_SHARED_TEMPLATE_DIR | '/www/virtual/martin/stable/php-libs/appShare/templates'
 | 
| WWW_DIR | '/www/virtual/martin/stable/lupa/document_root'
 | 
| RAMDISK | '/mnt/ramdisk'
 | 
| WORK_DIR | '/www/virtual/martin/stable/lupa/work'
 | 
| CACHE_DIR | '/www/virtual/martin/stable/lupa/work/cache'
 | 
| NETTE_CACHE_DIR | '/www/virtual/martin/stable/lupa/work/cache.nette'
 | 
| LOCAL_CACHE_DIR | '/www/virtual/martin/stable/lupa/work/cache.local'
 | 
| CHARSET | 'utf-8'
 | 
| DB_CHARSET | 'utf8'
 | 
| DB_ERROR_DUPLICATE_ENTRY | 1062
 | 
| MYSQLI_REFRESH_REPLICA | 64
 | 
| HTMLPURIFIER_PREFIX | '/www/virtual/martin/stable/lupa/vendor/ezyang/htmlpurifier/library'
 | 
| GEOIP_COUNTRY_BEGIN | 16776960
 | 
| GEOIP_STATE_BEGIN_REV0 | 16700000
 | 
| GEOIP_STATE_BEGIN_REV1 | 16000000
 | 
| GEOIP_STANDARD | 0
 | 
| GEOIP_MEMORY_CACHE | 1
 | 
| GEOIP_SHARED_MEMORY | 2
 | 
| STRUCTURE_INFO_MAX_SIZE | 20
 | 
| DATABASE_INFO_MAX_SIZE | 100
 | 
| GEOIP_COUNTRY_EDITION | 1
 | 
| GEOIP_PROXY_EDITION | 8
 | 
| GEOIP_ASNUM_EDITION | 9
 | 
| GEOIP_NETSPEED_EDITION | 10
 | 
| GEOIP_REGION_EDITION_REV0 | 7
 | 
| GEOIP_REGION_EDITION_REV1 | 3
 | 
| GEOIP_CITY_EDITION_REV0 | 6
 | 
| GEOIP_CITY_EDITION_REV1 | 2
 | 
| GEOIP_ORG_EDITION | 5
 | 
| GEOIP_ISP_EDITION | 4
 | 
| SEGMENT_RECORD_LENGTH | 3
 | 
| STANDARD_RECORD_LENGTH | 3
 | 
| ORG_RECORD_LENGTH | 4
 | 
| MAX_RECORD_LENGTH | 4
 | 
| MAX_ORG_RECORD_LENGTH | 300
 | 
| GEOIP_SHM_KEY | 1329681409
 | 
| US_OFFSET | 1
 | 
| CANADA_OFFSET | 677
 | 
| WORLD_OFFSET | 1353
 | 
| FIPS_RANGE | 360
 | 
| GEOIP_UNKNOWN_SPEED | 0
 | 
| GEOIP_DIALUP_SPEED | 1
 | 
| GEOIP_CABLEDSL_SPEED | 2
 | 
| GEOIP_CORPORATE_SPEED | 3
 | 
| GEOIP_DOMAIN_EDITION | 11
 | 
| GEOIP_COUNTRY_EDITION_V6 | 12
 | 
| GEOIP_LOCATIONA_EDITION | 13
 | 
| GEOIP_ACCURACYRADIUS_EDITION | 14
 | 
| GEOIP_CITYCOMBINED_EDITION | 15
 | 
| GEOIP_CITY_EDITION_REV1_V6 | 30
 | 
| GEOIP_CITY_EDITION_REV0_V6 | 31
 | 
| GEOIP_NETSPEED_EDITION_REV1 | 32
 | 
| GEOIP_NETSPEED_EDITION_REV1_V6 | 33
 | 
| GEOIP_USERTYPE_EDITION | 28
 | 
| GEOIP_USERTYPE_EDITION_V6 | 29
 | 
| GEOIP_ASNUM_EDITION_V6 | 21
 | 
| GEOIP_ISP_EDITION_V6 | 22
 | 
| GEOIP_ORG_EDITION_V6 | 23
 | 
| GEOIP_DOMAIN_EDITION_V6 | 24
 | 
| CITYCOMBINED_FIXED_RECORD | 7
 | 
| FULL_RECORD_LENGTH | 50
 | 
| TEXY_ALL | true
 | 
| TEXY_NONE | false
 | 
| TEXY_CONTENT_MARKUP | |
| TEXY_CONTENT_REPLACED | |
| TEXY_CONTENT_TEXTUAL | |
| TEXY_CONTENT_BLOCK | |
| TEXY_VERSION | '2.9.3'
 | 
| TEXY_HEADING_DYNAMIC | 1
 | 
| TEXY_HEADING_FIXED | 2
 | 
| TEXY_CHAR | 'A-Za-z\x{C0}-\x{2FF}\x{370}-\x{1EFF}'
 | 
| TEXY_MARK | '\x14-\x1F'
 | 
| TEXY_MODIFIER | |
| TEXY_MODIFIER_H | |
| TEXY_MODIFIER_HV | |
| TEXY_IMAGE | |
| TEXY_LINK_URL | |
| TEXY_LINK | |
| TEXY_LINK_N | |
| TEXY_EMAIL | |
| TEXY_URLSCHEME | '[a-z][a-z0-9+.-]{0,20}:'
 | 
| Apache Version | Apache/2.4.38 (Debian) | 
| Apache API Version | 20120211 | 
| Server Administrator | [no address given] | 
| Hostname:Port | lupa-martin.imho.cz:0 | 
| User/Group | www-data(33)/33 | 
| Max Requests | Per Child: 0 - Keep Alive: on - Max Per Connection: 100 | 
| Timeouts | Connection: 300 - Keep-Alive: 5 | 
| Virtual Server | Yes | 
| Server Root | /etc/apache2 | 
| Loaded Modules | core mod_so mod_watchdog http_core mod_log_config mod_logio mod_version mod_unixd mod_access_compat mod_alias mod_auth_basic mod_authn_core mod_authn_file mod_authz_core mod_authz_groupfile mod_authz_host mod_authz_user mod_autoindex mod_cache mod_cgi mod_deflate mod_dir mod_env mod_expires mod_fcgid mod_file_cache mod_filter mod_headers mod_include mod_mime prefork mod_negotiation mod_php mod_proxy mod_proxy_connect mod_proxy_fcgi mod_proxy_http mod_remoteip mod_reqtimeout mod_rewrite mod_setenvif mod_slotmem_shm mod_socache_shmcb mod_ssl mod_status mod_userdir | 
| Directive | Local Value | Master Value | 
|---|---|---|
| engine | On | On | 
| last_modified | Off | Off | 
| xbithack | Off | Off | 
| Variable | Value | 
|---|---|
| HTTPS | on | 
| SCRIPT_URL | /jilm/skvela-seznam-listicka/ | 
| SCRIPT_URI | http://blog-lupa-martin.imho.cz/jilm/skvela-seznam-listicka/ | 
| TZ | Europe/Prague | 
| HTTP_HOST | blog-lupa-martin.imho.cz | 
| HTTP_ACCESS_CONTROL_ALLOW_ORIGIN | * | 
| HTTP_REFERRER_POLICY | no-referrer-when-downgrade | 
| HTTP_X_REAL_IP | 216.73.216.123 | 
| HTTP_CONNECTION | close | 
| HTTP_ACCEPT | */* | 
| HTTP_USER_AGENT | Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com) | 
| HTTP_ACCEPT_ENCODING | gzip, br, zstd, deflate | 
| HTTP_COOKIE | opinionsOrdering=insert; tracy-session=953fcae91a; _nss=1 | 
| HTTP_X_HTTPS | 1 | 
| PATH | /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin | 
| LD_LIBRARY_PATH | /opt/mozjpeg/lib64 | 
| SERVER_SIGNATURE | <address>Apache/2.4.38 (Debian) Server at blog-lupa-martin.imho.cz Port 80</address> | 
| SERVER_SOFTWARE | Apache/2.4.38 (Debian) | 
| SERVER_NAME | blog-lupa-martin.imho.cz | 
| SERVER_ADDR | 127.0.0.1 | 
| SERVER_PORT | 80 | 
| REMOTE_ADDR | 216.73.216.123 | 
| DOCUMENT_ROOT | /www/virtual/martin/stable/lupa/document_root/ | 
| REQUEST_SCHEME | http | 
| CONTEXT_PREFIX | no value | 
| CONTEXT_DOCUMENT_ROOT | /www/virtual/martin/stable/lupa/document_root/ | 
| SERVER_ADMIN | [no address given] | 
| SCRIPT_FILENAME | /www/virtual/martin/stable/lupa/document_root/index.php | 
| REMOTE_PORT | 54008 | 
| GATEWAY_INTERFACE | CGI/1.1 | 
| SERVER_PROTOCOL | HTTP/1.0 | 
| REQUEST_METHOD | GET | 
| QUERY_STRING | do=opinionsListing-reorder&opinionsListing-order=insert_flat | 
| REQUEST_URI | /jilm/skvela-seznam-listicka/?do=opinionsListing-reorder&opinionsListing-order=insert_flat | 
| SCRIPT_NAME | /jilm/skvela-seznam-listicka/ | 
| HTTP Request Headers | |
|---|---|
| HTTP Request | GET /jilm/skvela-seznam-listicka/?do=opinionsListing-reorder&opinionsListing-order=insert_flat HTTP/1.0 | 
| Host | blog-lupa-martin.imho.cz | 
| HTTP_X_FORWARDED_PROTO | https | 
| Access-Control-Allow-Origin | * | 
| Referrer-Policy | no-referrer-when-downgrade | 
| X-Real-IP | 216.73.216.123 | 
| Connection | close | 
| accept | */* | 
| user-agent | Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com) | 
| accept-encoding | gzip, br, zstd, deflate | 
| cookie | opinionsOrdering=insert; tracy-session=953fcae91a; _nss=1 | 
| X-HTTPS | 1 | 
| HTTP Response Headers | |
| X-Powered-By | Nette Framework 3 | 
| X-Frame-Options | SAMEORIGIN | 
| Set-Cookie | _nss=1; path=/; secure; HttpOnly; SameSite=Strict | 
| Vary | X-Requested-With,Accept-Encoding | 
| Set-Cookie | opinionsOrdering=insert_flat; expires=Thu, 04-Dec-2025 10:42:21 GMT; Max-Age=2592000; path=/; secure; HttpOnly; SameSite=Lax | 
| Content-Security-Policy | upgrade-insecure-requests | 
| Content-Encoding | gzip | 
| Referrer-Policy | no-referrer-when-downgrade | 
| Access-Control-Allow-Origin | * | 
| Access-Control-Allow-Headers | * | 
| Connection | close | 
| Content-Type | text/html; charset=utf-8 | 
| 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.6, 6-Sept-2010 | 
| Calendar support | enabled | 
| PHP Version | 8.0.30 | 
| 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 | On | Off | 
| 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/20200930 | /usr/lib/php/20200930 | 
| 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:/www/virtual/martin/stable/php-libs:/www/virtual/martin/stable/lupa/app/libs:/www/virtual/martin/stable/php-libs/appShare/libs | .:/usr/share/php | 
| input_encoding | no value | no value | 
| internal_encoding | no value | no value | 
| log_errors | Off | On | 
| log_errors_max_len | 1024 | 1024 | 
| mail.add_x_header | Off | Off | 
| mail.force_extra_parameters | no value | no value | 
| mail.log | no value | no value | 
| max_execution_time | 3600 | 3600 | 
| 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 | 256M | 256M | 
| 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 | 128M | 128M | 
| 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 | 128M | 128M | 
| 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.64.0 | 
| Age | 4 | 
| 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 | No | 
| 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.1d | 
| ZLib Version | 1.2.11 | 
| libSSH Version | libssh2/1.8.0 | 
| Directive | Local Value | Master Value | 
|---|---|---|
| curl.cainfo | no value | no value | 
| date/time support | enabled | 
| timelib version | 2020.03 | 
| "Olson" Timezone Database Version | 0.system | 
| Timezone Database | internal | 
| Default timezone | Europe/Berlin | 
| 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 | no value | 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 | 539 | 
| 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.2.5 | 
| 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 | 
| TGA Read Support | enabled | 
| Directive | Local Value | Master Value | 
|---|---|---|
| gd.jpeg_ignore_warning | 1 | 1 | 
| GetText Support | enabled | 
| gmp support | enabled | 
| GMP version | 6.1.2 | 
| 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 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.28 | 
| 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 | 
| igbinary support | enabled | 
| igbinary version | 3.2.13 | 
| igbinary APCu serializer ABI | 0 | 
| igbinary session support | yes | 
| Directive | Local Value | Master Value | 
|---|---|---|
| igbinary.compact_strings | On | On | 
| imagick module | enabled | 
|---|---|
| imagick module version | 3.6.0 | 
| imagick classes | Imagick, ImagickDraw, ImagickPixel, ImagickPixelIterator, ImagickKernel | 
| Imagick compiled with ImageMagick version | ImageMagick 6.9.10-23 Q16 x86_64 20190101 https://imagemagick.org | 
| Imagick using ImageMagick library version | ImageMagick 6.9.10-23 Q16 x86_64 20190101 https://imagemagick.org | 
| ImageMagick copyright | © 1999-2019 ImageMagick Studio LLC | 
| ImageMagick release date | 20190101 | 
| ImageMagick number of supported formats: | 242 | 
| ImageMagick supported formats | 3FR, 3G2, 3GP, AAI, AI, ART, ARW, AVI, AVS, BGR, BGRA, BGRO, BIE, BMP, BMP2, BMP3, BRF, CAL, CALS, CANVAS, CAPTION, CIN, CIP, CLIP, CMYK, CMYKA, CR2, CRW, CUR, CUT, DATA, DCM, DCR, DCX, DDS, DFONT, DJVU, DNG, DOT, DPX, DXT1, DXT5, EPDF, EPI, EPS, EPS2, EPS3, EPSF, EPSI, EPT, EPT2, EPT3, ERF, EXR, FAX, FILE, FITS, FRACTAL, FTP, FTS, G3, G4, GIF, GIF87, GRADIENT, GRAY, GRAYA, GROUP4, GV, H, HALD, HDR, HEIC, HISTOGRAM, HRZ, HTM, HTML, HTTP, HTTPS, ICB, ICO, ICON, IIQ, INFO, INLINE, IPL, ISOBRL, ISOBRL6, J2C, J2K, JBG, JBIG, JNG, JNX, JP2, JPC, JPE, JPEG, JPG, JPM, JPS, JPT, JSON, K25, KDC, LABEL, M2V, M4V, MAC, MAGICK, MAP, MASK, MAT, MATTE, MEF, MIFF, MKV, MNG, MONO, MOV, MP4, MPC, MPEG, MPG, MRW, MSL, MSVG, MTV, MVG, NEF, NRW, NULL, ORF, OTB, OTF, PAL, PALM, PAM, PANGO, PATTERN, PBM, PCD, PCDS, PCL, PCT, PCX, PDB, PDF, PDFA, PEF, PES, PFA, PFB, PFM, PGM, PGX, PICON, PICT, PIX, PJPEG, PLASMA, PNG, PNG00, PNG24, PNG32, PNG48, PNG64, PNG8, PNM, PPM, PREVIEW, PS, PS2, PS3, PSB, PSD, PTIF, PWP, RADIAL-GRADIENT, RAF, RAS, RAW, RGB, RGBA, RGBO, RGF, RLA, RLE, RMF, RW2, SCR, SCT, SFW, SGI, SHTML, SIX, SIXEL, SPARSE-COLOR, SR2, SRF, STEGANO, SUN, SVG, SVGZ, TEXT, TGA, THUMBNAIL, TIFF, TIFF64, TILE, TIM, TTC, TTF, TXT, UBRL, UBRL6, UIL, UYVY, VDA, VICAR, VID, VIFF, VIPS, VST, WBMP, WEBP, WMF, WMV, WMZ, WPG, X, X3F, XBM, XC, XCF, XPM, XPS, XV, XWD, YCbCr, YCbCrA, YUV | 
| Directive | Local Value | Master Value | 
|---|---|---|
| imagick.allow_zero_dimension_images | 0 | 0 | 
| imagick.locale_fix | 0 | 0 | 
| imagick.progress_monitor | 0 | 0 | 
| imagick.set_single_thread | 1 | 1 | 
| imagick.shutdown_sleep_count | 10 | 10 | 
| imagick.skip_version_check | 1 | 1 | 
| 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 | 65.1 | 
| ICU Data version | 65.1 | 
| ICU Unicode version | 12.1 | 
| Directive | Local Value | Master Value | 
|---|---|---|
| intl.default_locale | cs-CZ | no value | 
| intl.error_level | 0 | 0 | 
| intl.use_exceptions | Off | Off | 
| json support | enabled | 
| LDAP Support | enabled | 
| Total Links | 0/unlimited | 
| API Version | 3001 | 
| Vendor Name | OpenLDAP | 
| Vendor Version | 20447 | 
| SASL Support | Enabled | 
| Directive | Local Value | Master Value | 
|---|---|---|
| ldap.max_links | Unlimited | Unlimited | 
| libXML support | active | 
| libXML Compiled Version | 2.9.14 | 
| libXML Loaded Version | 20912 | 
| 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.1 | 
| 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.0.30 | 
| Active Persistent Links | 0 | 
| Inactive Persistent Links | 0 | 
| Active Links | 3 | 
| 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.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.0.30 | 
| 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 | 
| ODBC Support | enabled | 
|---|---|
| Active Persistent Links | 0 | 
| Active Links | 0 | 
| ODBC library | unixODBC | 
| ODBCVER | 0x0380 | 
| ODBC_CFLAGS | -I/usr/include | 
| ODBC_LFLAGS | -L/usr/lib | 
| ODBC_LIBS | -lodbc | 
| Directive | Local Value | Master Value | 
|---|---|---|
| odbc.allow_persistent | On | On | 
| odbc.check_persistent | On | On | 
| odbc.default_cursortype | Static cursor | Static cursor | 
| odbc.default_db | no value | no value | 
| odbc.default_pw | no value | no value | 
| odbc.default_user | no value | no value | 
| odbc.defaultbinmode | return as is | return as is | 
| odbc.defaultlrl | return up to 4096 bytes | return up to 4096 bytes | 
| odbc.max_links | Unlimited | Unlimited | 
| odbc.max_persistent | Unlimited | Unlimited | 
| OpenSSL support | enabled | 
| OpenSSL Library Version | OpenSSL 1.1.1d 10 Sep 2019 | 
| OpenSSL Header Version | OpenSSL 1.1.1n 15 Mar 2022 | 
| 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 | firebird, mysql, odbc, sqlite, sqlsrv | 
| PDO Driver for Firebird | enabled | 
|---|---|
| Client Library Version | LI-V6.3.5.33100 Firebird 3.0 | 
| PDO Driver for MySQL | enabled | 
|---|---|
| Client API version | mysqlnd 8.0.30 | 
| Directive | Local Value | Master Value | 
|---|---|---|
| pdo_mysql.default_socket | /var/run/mysqld/mysqld.sock | /var/run/mysqld/mysqld.sock | 
| PDO Driver for ODBC (unixODBC) | enabled | 
|---|---|
| ODBC Connection Pooling | Enabled, strict matching | 
| PDO Driver for SQLite 3.x | enabled | 
|---|---|
| SQLite Library | 3.27.2 | 
| pdo_sqlsrv support | enabled | 
|---|---|
| ExtensionVer | 5.11.0 | 
| Directive | Local Value | Master Value | 
|---|---|---|
| pdo_sqlsrv.client_buffer_max_kb_size | 10240 | 10240 | 
| pdo_sqlsrv.log_severity | 0 | 0 | 
| pdo_sqlsrv.report_additional_errors | 1 | 1 | 
| pdo_sqlsrv.set_locale_info | 2 | 2 | 
| 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 igbinary | 
| 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 | no value | no value | 
| session.cookie_lifetime | 0 | 0 | 
| session.cookie_path | / | / | 
| session.cookie_samesite | no value | no value | 
| session.cookie_secure | 0 | 0 | 
| session.gc_divisor | 1000 | 1000 | 
| session.gc_maxlifetime | 1440 | 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 | 0 | 0 | 
| session.use_trans_sid | 0 | 0 | 
| shmop support | enabled | 
| SimpleXML support | enabled | 
| Schema support | enabled | 
| NET-SNMP Support | enabled | 
| NET-SNMP Version | 5.7.3 | 
| 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.27.2 | 
| Directive | Local Value | Master Value | 
|---|---|---|
| sqlite3.defensive | On | On | 
| sqlite3.extension_dir | no value | no value | 
| sqlsrv support | enabled | 
|---|---|
| ExtensionVer | 5.11.0 | 
| Directive | Local Value | Master Value | 
|---|---|---|
| sqlsrv.ClientBufferMaxKBSize | 10240 | 10240 | 
| sqlsrv.LogSeverity | 0 | 0 | 
| sqlsrv.LogSubsystems | 0 | 0 | 
| sqlsrv.SetLocaleInfo | 2 | 2 | 
| sqlsrv.WarningsReturnAsErrors | On | On | 
| 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 | 
| Version | 3.2.1 | 
| Support Xdebug on Patreon, GitHub, or as a business | |
| Enabled Features (through 'xdebug.mode' setting)  | ||
|---|---|---|
| Feature | Enabled/Disabled | Docs | 
| Development Helpers | ✘ disabled | ⊕ | 
| Coverage | ✘ disabled | ⊕ | 
| GC Stats | ✘ disabled | ⊕ | 
| Profiler | ✘ disabled | ⊕ | 
| Step Debugger | ✔ enabled | ⊕ | 
| Tracing | ✘ disabled | ⊕ | 
| Optional Features | |
|---|---|
| Compressed File Support | no | 
| Clock Source | clock_gettime | 
| 'xdebug://gateway' pseudo-host support | yes | 
| 'xdebug://nameserver' pseudo-host support | yes | 
| Systemd Private Temp Directory | /tmp/systemd-private-3221d60dabd645c689c09873db6cf172-apache2.service-95ACom | 
| Debugger | enabled | 
|---|---|
| IDE Key | no value | 
| Directive | Local Value | Master Value | 
|---|---|---|
| xdebug.auto_trace | (setting renamed in Xdebug 3) | (setting renamed in Xdebug 3) | 
| xdebug.cli_color | 0 | 0 | 
| xdebug.client_discovery_header | HTTP_X_FORWARDED_FOR,REMOTE_ADDR | HTTP_X_FORWARDED_FOR,REMOTE_ADDR | 
| xdebug.client_host | localhost | localhost | 
| xdebug.client_port | 9003 | 9003 | 
| xdebug.cloud_id | no value | no value | 
| xdebug.collect_assignments | Off | Off | 
| xdebug.collect_includes | (setting removed in Xdebug 3) | (setting removed in Xdebug 3) | 
| xdebug.collect_params | (setting removed in Xdebug 3) | (setting removed in Xdebug 3) | 
| xdebug.collect_return | Off | Off | 
| xdebug.collect_vars | (setting removed in Xdebug 3) | (setting removed in Xdebug 3) | 
| xdebug.connect_timeout_ms | 200 | 200 | 
| xdebug.coverage_enable | (setting renamed in Xdebug 3) | (setting renamed in Xdebug 3) | 
| xdebug.default_enable | (setting renamed in Xdebug 3) | (setting renamed in Xdebug 3) | 
| xdebug.discover_client_host | On | On | 
| xdebug.dump.COOKIE | no value | no value | 
| xdebug.dump.ENV | no value | no value | 
| xdebug.dump.FILES | no value | no value | 
| xdebug.dump.GET | no value | no value | 
| xdebug.dump.POST | no value | no value | 
| xdebug.dump.REQUEST | no value | no value | 
| xdebug.dump.SERVER | no value | no value | 
| xdebug.dump.SESSION | no value | no value | 
| xdebug.dump_globals | On | On | 
| xdebug.dump_once | On | On | 
| xdebug.dump_undefined | Off | Off | 
| xdebug.file_link_format | no value | no value | 
| xdebug.filename_format | no value | no value | 
| xdebug.force_display_errors | Off | Off | 
| xdebug.force_error_reporting | 0 | 0 | 
| xdebug.gc_stats_enable | (setting renamed in Xdebug 3) | (setting renamed in Xdebug 3) | 
| xdebug.gc_stats_output_dir | (setting renamed in Xdebug 3) | (setting renamed in Xdebug 3) | 
| xdebug.gc_stats_output_name | gcstats.%p | gcstats.%p | 
| xdebug.halt_level | 0 | 0 | 
| xdebug.idekey | no value | no value | 
| xdebug.log | no value | no value | 
| xdebug.log_level | 7 | 7 | 
| xdebug.max_nesting_level | 256 | 256 | 
| xdebug.max_stack_frames | -1 | -1 | 
| xdebug.mode | debug | debug | 
| xdebug.output_dir | /tmp | /tmp | 
| xdebug.overload_var_dump | (setting removed in Xdebug 3) | (setting removed in Xdebug 3) | 
| xdebug.profiler_append | Off | Off | 
| xdebug.profiler_enable | (setting renamed in Xdebug 3) | (setting renamed in Xdebug 3) | 
| xdebug.profiler_enable_trigger | (setting renamed in Xdebug 3) | (setting renamed in Xdebug 3) | 
| xdebug.profiler_enable_trigger_value | (setting renamed in Xdebug 3) | (setting renamed in Xdebug 3) | 
| xdebug.profiler_output_dir | (setting renamed in Xdebug 3) | (setting renamed in Xdebug 3) | 
| xdebug.profiler_output_name | cachegrind.out.%p | cachegrind.out.%p | 
| xdebug.remote_autostart | (setting renamed in Xdebug 3) | (setting renamed in Xdebug 3) | 
| xdebug.remote_connect_back | (setting renamed in Xdebug 3) | (setting renamed in Xdebug 3) | 
| xdebug.remote_enable | (setting renamed in Xdebug 3) | (setting renamed in Xdebug 3) | 
| xdebug.remote_host | (setting renamed in Xdebug 3) | (setting renamed in Xdebug 3) | 
| xdebug.remote_log | (setting renamed in Xdebug 3) | (setting renamed in Xdebug 3) | 
| xdebug.remote_log_level | (setting renamed in Xdebug 3) | (setting renamed in Xdebug 3) | 
| xdebug.remote_mode | (setting renamed in Xdebug 3) | (setting renamed in Xdebug 3) | 
| xdebug.remote_port | (setting renamed in Xdebug 3) | (setting renamed in Xdebug 3) | 
| xdebug.remote_timeout | (setting renamed in Xdebug 3) | (setting renamed in Xdebug 3) | 
| xdebug.scream | Off | Off | 
| xdebug.show_error_trace | Off | Off | 
| xdebug.show_exception_trace | Off | Off | 
| xdebug.show_local_vars | Off | Off | 
| xdebug.show_mem_delta | (setting removed in Xdebug 3) | (setting removed in Xdebug 3) | 
| xdebug.start_upon_error | default | default | 
| xdebug.start_with_request | default | default | 
| xdebug.trace_enable_trigger | (setting renamed in Xdebug 3) | (setting renamed in Xdebug 3) | 
| xdebug.trace_enable_trigger_value | (setting renamed in Xdebug 3) | (setting renamed in Xdebug 3) | 
| xdebug.trace_format | 0 | 0 | 
| xdebug.trace_options | 0 | 0 | 
| xdebug.trace_output_dir | (setting renamed in Xdebug 3) | (setting renamed in Xdebug 3) | 
| xdebug.trace_output_name | trace.%c | trace.%c | 
| xdebug.trigger_value | no value | no value | 
| xdebug.use_compression | 0 | 0 | 
| xdebug.var_display_max_children | 128 | 128 | 
| xdebug.var_display_max_data | 512 | 512 | 
| xdebug.var_display_max_depth | 3 | 3 | 
| XML Support | active | 
| XML Namespace Support | active | 
| libxml2 Version | 2.9.14 | 
| XMLReader | enabled | 
| XMLRPC extension version | 1.0.0RC3 | 
| core library version | xmlrpc-epi v. 0.54 | 
| author | Dan Libby | 
| homepage | http://xmlrpc-epi.sourceforge.net | 
| open sourced by | Epinions.com | 
| XMLWriter | enabled | 
| XSL | enabled | 
| libxslt Version | 1.1.32 | 
| libxslt compiled against libxml Version | 2.9.4 | 
| EXSLT | enabled | 
| libexslt Version | 1.1.32 | 
| Opcode Caching | Up and Running | 
| Optimization | Disabled | 
| SHM Cache | Enabled | 
| File Cache | Disabled | 
| JIT | Disabled | 
| Startup | OK | 
| Shared memory model | mmap | 
| Cache hits | 34525940 | 
| Cache misses | 33904 | 
| Used memory | 127942848 | 
| Free memory | 35808 | 
| Wasted memory | 6239072 | 
| Interned Strings Used memory | 6290968 | 
| Interned Strings Free memory | 24 | 
| Cached scripts | 4320 | 
| Cached keys | 6204 | 
| 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 | no value | no value | 
| 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 | 0 | 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 (3)0 => array (7)| 'name' => 'default output handler' | 'type' => 0 | 'flags' => 20592 | 'level' => 0 | 'chunk_size' => 4096 | 'buffer_size' => 159744 | 'buffer_used' => 26641 => array (7)| 'name' => 'Closure::__invoke' | 'type' => 1 | 'flags' => 113 | 'level' => 1 | 'chunk_size' => 0 | 'buffer_size' => 16384 | 'buffer_used' => 412 => array (7)| 'name' => 'default output handler' | 'type' => 0 | 'flags' => 112 | 'level' => 2 | 'chunk_size' => 0 | 'buffer_size' => 16384 | 'buffer_used' => 0
| Host | 'blog-lupa-martin.imho.cz'
 | 
|---|---|
| HTTP_X_FORWARDED_PROTO | 'https'
 | 
| Access-Control-Allow-Origin | '*'
 | 
| Referrer-Policy | 'no-referrer-when-downgrade'
 | 
| X-Real-IP | '216.73.216.123'
 | 
| Connection | 'close'
 | 
| accept | '*/*'
 | 
| user-agent | 'Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)'
 | 
| accept-encoding | 'gzip, br, zstd, deflate'
 | 
| cookie | 'opinionsOrdering=insert; tracy-session=953fcae91a; _nss=1'
 | 
| X-HTTPS | '1'
 | 
| do | 'opinionsListing-reorder'
 | 
|---|---|
| opinionsListing-order | 'insert_flat'
 | 
empty
| opinionsOrdering | 'insert'
 | 
|---|---|
| tracy-session | '953fcae91a'
 | 
| _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'
 | 
| Vary | 'X-Requested-With'
 | 
| Set-Cookie | 'opinionsOrdering=insert_flat; expires=Thu, 04-Dec-2025 10:42:21 GMT; Max-Age=2592000; path=/; secure; HttpOnly; SameSite=Lax'
 | 
| Content-Security-Policy | 'upgrade-insecure-requests'
 | 
Headers have been sent, output started at .../templates-common-@HtmlDocument--RootLike.inc.latte--3f2affa234.php:95 source
85: $this->createTemplate(IInfo\LatteMacros::getTemplateDestination('../common/socialNetworks/socialNetworks.inc.latte', $this->getName(), true), ['isSocialNetworksFacebook' => $configTemplates['common']['socialNetworks']['facebook']['enabled'], 86: 'isSocialNetworksTwitter' => $configTemplates['common']['socialNetworks']['twitter']['enabled']] + $this->getParameters(), "includeX")->render(); 87: IInfo\LatteMacros::renderControlX($this->global->uiControl, "Shared_Ipn_PaginationLinks", "render", []); 88: IInfo\LatteMacros::renderControlX($this->global->uiControl, "Shared_Favicons", "render", []); 89: $this->renderBlock('common__HtmlDocument--rss', get_defined_vars()) /* line 53 */; 90: echo "\n"; 91: if ($rssFeeds) /* line 54 */ { 92: $iterations = 0; 93: foreach ($rssFeeds as $rssFeed) /* line 55 */ { 94: echo '<link rel="alternate" title="'; 95: echo LR\Filters::escapeHtmlAttr($rssFeed['title']) /* line 56 */; 96: echo '" href="'; 97: echo LR\Filters::escapeHtmlAttr(LR\Filters::safeUrl($rssFeed['url'])) /* line 56 */; 98: echo '" type="application/rss+xml"> 99: ';