1<!doctype html> 2<html lang="cs"> 3<head> 4 <meta charset="utf-8"> 5 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 6 <title>EcnStudio.cz</title> 7 8 <link rel="icon" sizes="16x16" href="/favicon.ico"> 9 <link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png"> 10 <link rel="icon" type="image/png" sizes="48x48" href="/favicon-48x48.png"> 11 <link rel="apple-touch-icon" href="/apple-touch-icon.png"> 12 13 14<!--AA-Generated-HEAD start--> 15<link rel="stylesheet" href="/aaa/cdn/npm/[email protected]/css/lightgallery-bundle.min.css" media="print" onload="this.media='all'"> 16<link rel="stylesheet" href="https://webservis.ecn.cz/static/responsive-flex/responsive-1.1.css"> 17<link rel="stylesheet" href="/css/ecnstudio.css?ver=1"> 18<!--/AA-Generated-HEAD end--> 19 20 21 22 23 <meta name="keywords" content="Ecn studio, webstudio, webhosting, toolkit, emailhosting"> 24 <meta name="description" content=""> 25 26<!-- Matomo -->
27<script> 28 var _paq = window._paq = window._paq || []; 29 /* tracker methods like "setCustomDimension" should be called before "trackPageView" */ 30 _paq.push(["setCookieDomain", "*.ecnstudio.cz"]); 31 _paq.push(["disableCookies"]); 32 _paq.push(['trackPageView']); 33 _paq.push(['enableLinkTracking']); 34 (function() { 35 var u="//webstats.ecn.cz/m/"; 36 _paq.push(['setTrackerUrl', u+'matomo.php']); 37 _paq.push(['setSiteId', '2']); 38 var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; 39 g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s); 40 })(); 41</script>
41 42<noscript><p><img src="//webstats.ecn.cz/m/matomo.php?idsite=2&rec=1" style="border:0;" alt="" /></p></noscript> 43<!-- End Matomo Code --> 44 45</head> 46 47<body class="novinky _#PAGE_BG_ cz"> 48 49<div class="mobilmenu white-menu no-screen noprint"> 50 <i class="ico-menu" onclick="document.querySelectorAll('.mobilmenu').forEach(function(el) { el.classList.toggle('active');});"></i> 51 52 <nav> 53 54<ul> 55 <li id="menu-645a79873fea6c1fc4cc4ab540cd5a7a" class=""><a href="https://ecn.cz/cz/sluzby">Služby</a><i class=aa-ico-expand onclick="this.closest('li').classList.toggle('inpath');"></i> 56<ul> 57 <li id="menu-1a07e5610b8bb556560254118b7d6435" class=""><a href="https://ecn.cz/cz/sluzby/webdesign">Webdesign</a></li> 58 <li id="menu-24c9fe52c2d716d38bac58a405e9b3eb" class=""><a href="https://ecn.cz/cz/sluzby/webhosting">Webhosting</a></li> 59 <li id="menu-34aa22fd2edc2ae4df354f7124308473" class=""><a href="https://ecn.cz/cz/sluzby/ecn-ucet">Ecn úÄet</a></li> 60 <li id="menu-c62cf025ee18605f5421663e0d303def" class=""><a href="https://ecn.cz/cz/sluzby/site-a-podpora">SÃtÄ a podpora</a></li> 61 <li id="menu-a89ec2571622512269f0ba4a339ca383" class=""><a href="https://ecn.cz/cz/sluzby/online-nastroje">Online nástroje</a></li> 62 <li id="menu-4529053302458524ba984ce1311f4d1f" class=""><a href="https://ecn.cz/cz/sluzby/faq">FAQ</a></li> 63 <li id="menu-f99e3a4cf5fb3dcebdb597c5d55a8176" class=""><a href="https://ecn.cz/cz/sluzby/cenik">Cenik</a></li> 64</ul> 65</li> 66 <li id="menu-23cd0820e38d12563218df8fd2d92918" class=""><a href="https://ecn.cz/cz/reference">Reference</a></li> 67 <li id="menu-4e4669c545c78db96f13bc57544b418d" class=""><a href="https://ecn.cz/cz/kontakt">Kontakt</a></li> 68</ul> 69 70 <div class="mt-3 pt-2 mb-1" style="margin-left: 3em;">PÅIHLÃSIT SE?</div> 71 <ul> 72 <li><a href="https://mujkoutek.ecn.cz/">Můj koutek</a></li> 73 <li><a href="https://webmail.ecn.cz/">Webmail</a></li> 74 <li><a href="https://cloud.ecn.cz/">Ecn cloud</a></li> 75 <li><a href="https://trezor.ecn.cz/">Ecn Trezor</a></li> 76 <li><a href="https://mujkoutek.ecn.cz/lostpwd.php">Zapomenuté heslo?</a></li> 77 </ul> 78 </nav> 79</div> 80 81 82 83 84 85<header> 86 <div class="flex f-middle f-between"> 87 <a href="https://ecnstudio.cz/cz/" title="ECN Studio" class="logo"><img src="https://ecnstudio.cz/img/ecn-logo-horizontal.svg" alt="ECN Studio"></a> 88 <div class="menu flex f-between no-mobile"> 89 <ul class="menu-items top-menu"> 90 <li ><a href="https://ecn.cz/cz/sluzby">Služby</a> 91 92<ul> 93 <li id="menu-1a07e5610b8bb556560254118b7d6435"><a href="https://ecn.cz/cz/sluzby/webdesign">Webdesign</a></li> 94 <li id="menu-24c9fe52c2d716d38bac58a405e9b3eb"><a href="https://ecn.cz/cz/sluzby/webhosting">Webhosting</a></li> 95 <li id="menu-34aa22fd2edc2ae4df354f7124308473"><a href="https://ecn.cz/cz/sluzby/ecn-ucet">Ecn úÄet</a></li> 96 <li id="menu-c62cf025ee18605f5421663e0d303def"><a href="https://ecn.cz/cz/sluzby/site-a-podpora">SÃtÄ a podpora</a></li> 97 <li id="menu-a89ec2571622512269f0ba4a339ca383"><a href="https://ecn.cz/cz/sluzby/online-nastroje">Online nástroje</a></li> 98 <li id="menu-4529053302458524ba984ce1311f4d1f"><a href="https://ecn.cz/cz/sluzby/faq">FAQ</a></li> 99 <li id="menu-f99e3a4cf5fb3dcebdb597c5d55a8176"><a href="https://ecn.cz/cz/sluzby/cenik">Cenik</a></li> 100</ul> 101 102</li><li ><a href="https://ecn.cz/cz/reference">Reference</a> 103 104</li><li ><a href="https://ecn.cz/cz/kontakt">Kontakt</a> 105 106</li> 107 </ul> 108 <ul class="menu-items user-menu mr-2"> 109 <li><span class="like-a">PÅihlásit</span> 110 <ul> 111 <li><a href="https://mujkoutek.ecn.cz/">Můj koutek</a></li> 112 <li><a href="https://webmail.ecn.cz/">Webmail</a></li> 113 <li><a href="https://cloud.ecn.cz/">Ecn cloud</a></li> 114 <li><a href="https://trezor.ecn.cz/">Ecn Trezor</a></li> 115 <li><a href="https://mujkoutek.ecn.cz/lostpwd.php">Zapomenuté heslo?</a></li> 116 </ul> 117 </li> 118 </ul> 119 <a class="lang" href="/en/">en</a> 120 </div> 121 </div> 122</header> 123 124<div class="page"> 125 <div class="crumbs right sz-xxs fnt-uppercase pr-2"> / <a href="https://ecn.cz/cz/novinky" class="active">Novinky</a> / Nová verze publikaÄnÃho systému ActionApps Toolkit 2026.9</div> 126 <div class="main-text"> 127 <div class="text-headline"> 128 <div class="headline-block p-2 pt-0 pb-0"> 129 <h1>Nová verze publikaÄnÃho systému ActionApps Toolkit 2026.9</h1> 130 <p class="serif clr-text-gold">21.9.2026</p> 131 </div> 132 </div> 133 <div class="text"> 134 <div class="fnt-bold pt-0 pt-3-scr mb-2">Rychlejšà weby dÃky chytÅejšà cache a obrázkům servÃrovaným pÅÃmo webovým serverem, nová stránka State Check, která sama hlÃdá zdravà instalace, pÅehled o tom, jak se web zrychluje, a celá Åada bezpeÄnostnÃch oprav. Verze 2026.9 je hlavnÄ o rychlosti, spolehlivosti a bezpeÄÃ.</div> 135 <div><p>Na server jsme nasadili <strong>ActionApps Toolkit 2026.9</strong>. Od Äervnové verze 2026.6 pÅibylo pÅes 180 zmÄn. ZatÃmco minule jsme se vÄnovali hlav
135nÄ pohodlà autorů, tentokrát jsme se podÃvali pod kapotu: weby jsou <strong>rychlejÅ¡Ã</strong>, systém si <strong>sám hlÃdá svůj stav</strong> a je zase o kus <strong>bezpeÄnÄjÅ¡Ã</strong>. VybÃráme to podstatné.</p> 136 137<h2>Pro autory</h2> 138 139<p><strong>SpolehlivÄjšà tlaÄÃtko PÅeložit.</strong> Automatický pÅeklad si novÄ poradà i s dlouhými texty. Když se pÅeklad nepovede, administrace to Åekne a původnà obsah polÃÄka zůstane nedotÄený â už se nestane, že by neúspÄÅ¡ný pÅeklad polÃÄko vymazal.</p> 140 141<p><strong>PohodlnÄjšà výbÄr souvisejÃcÃch Älánků.</strong> Vyhledávánà v polÃÄku pro souvisejÃcà položky reaguje klidnÄji: nepÅeskakuje bÄhem psanÃ, pÅi Äekánà ponechá pÅedchozà výsledky a jasnÄ Åekne, když nic nenaÅ¡lo.</p> 142 143<p><strong>Drobnosti, které potÄÅ¡Ã.</strong> Å ablony e-mailů se upravujà v pohodlném vizuálnÃm editoru. A nový vzhled administrace, který jsme pÅedstavili minule, jsme dál vyladili â pokud k nÄmu máte pÅipomÃnky, piÅ¡te nám pÅes pole ZpÄtná vazba.</p> 144 145<h2>Pro editory a správce</h2> 146 147<p><strong>State Check â systém, který si hlÃdá sám sebe.</strong> Nová stránka State Check (kontrola stavu, v menu AA pro superadminy) projde logy, databázi i nastavenà a na jednom mÃstÄ ukáže, co je v nepoÅádku: od nejzávažnÄjÅ¡Ãho problému po drobnosti, vždy s důkazem a návodem, co s tÃm. Åadu vÄcà umà rovnou opravit jednÃm tlaÄÃtkem. HlÃdá napÅÃklad plánované úlohy, frontu úkolů, chyby PHP, cache obrázků nebo kolize adres Älánků.</p> 148 149<p><img src="https://toolkit.ecn.cz/img_upload/2026.9-01-kontrola-stavu.png" alt="Stránka State Check s pÅehledem nálezů" style="max-width:100%;height:auto;border:1px solid #ddd;"></p> 150 151<p><strong>VidÃte, jestli se web zrychluje.</strong> Statistiky AA majà nový pohled Version progress (vývoj podle verzÃ): den po dni ukazuje rychlost odezvy a úspÄÅ¡nost cache a zvýraznà okamžiky, kdy se mÄnila verze AA, PHP nebo nastavenà serveru. Hned je vidÄt, co které aktualizaci web dala â nebo vzala.</p> 152 153<p><img src="https://toolkit.ecn.cz/img_upload/2026.9-02-statistiky-verze.png" alt="Statistiky AA â vývoj rychlosti a cache napÅÃÄ verzemi" style="max-width:100%;height:auto;border:1px solid #ddd;"></p> 154 155<p><strong>Dohledatelné e-maily.</strong> Každý odeslaný e-mail se novÄ zapisuje do logu, vÄetnÄ odpovÄdi poÅ¡tovnÃho serveru. Na otázku âodeÅ¡lo to vůbec?" tak koneÄnÄ existuje jasná odpovÄÄ. Opravili jsme i situaci, kdy upozornÄnà (Alerts) mohlo výjimeÄnÄ odejÃt dvakrát.</p> 156 157<p><strong>Jedna fronta pro vÅ¡echny pravidelné úlohy.</strong> RozesÃlánà upozornÄnÃ, stahovánà obsahu z jiných webů, kontrola odkazů i údržba databáze teÄ bÄžà jako Naplánované úlohy v jediné frontÄ. Ãloha se nespustà dvakrát a vÅ¡e je na jednom mÃstÄ vidÄt i v logu.</p> 158 159<h2>Pro vývojáÅe a pokroÄilé uživatele</h2> 160 161<ul> 162 <li><strong>Obrázky ze statické cache, bez nastavovánÃ</strong> â zmenÅ¡eniny vytváÅené pÅÃkazem img se vygenerujà jednou a pak je servÃruje pÅÃmo webový server, bez PHP. Stránka s dvaceti náhledy už neznamená dvacet požadavků na PHP. Funguje samo od sebe, a kde fungovat nemůže, vrátà se k původnà cestÄ.</li> 163 <li><strong>Cache stránek na 12 hodin</strong> â protože zveÅejnÄnà a vyprÅ¡enà Älánků novÄ hlÃdá samostatná úloha, mohli jsme výchozà dobu cache výraznÄ prodloužit. VÃc stránek se obsloužà z cache, server má ménÄ práce.</li> 164 <li><strong>Rychlejšà a bezpeÄnÄjšà ukládánÃ</strong> â Älánky se ukládajà v databázových transakcÃch a hromadnými zápisy. Rychlejšà je i Ätenà objektů z databáze, skládánà menu a dotazy na velké seznamy Älánků, které navÃc spotÅebujà ménÄ pamÄti.</li> 165 <li><strong>Nový editor kódu</strong> â Å¡ablony se novÄ upravujà v editoru CodeMirror 6.</li> 166 <li><strong>BezpeÄnost</strong> â proÅ¡li jsme kód bezpeÄnostnÃm auditem a opravili nÄkolik možných útoků typu SQL injection a XSS. DefinitivnÄ zmizela i emulace register_globals, pozůstatek z dávných dob PHP.</li> 167 <li><strong>Lepšà diagnostika</strong> â volba AA_LOG_PHP_FATALS zapisuje fatálnà chyby PHP do logu AA, logy jsou ÄitelnÄjÅ¡Ã. ChybÄjÃcà modul nebo soubor webu už neskonÄà bÃlou stránkou, ale srozumitelnou hláškou.</li> 168 <li><strong>
168PÅechod z LDAP na SQL oprávnÄnÃ</strong> â SQL backend pÅijme hesla ve formátu LDAP a pÅi prvnÃm pÅihlášenà je pÅevede na bcrypt.</li> 169 <li><strong>AVIF ve Firefoxu</strong> â obrázky AVIF se generujà tak, aby se správnÄ zobrazovaly i ve Firefoxu.</li> 170 <li><strong>ActionApps na GitHubu</strong> â vývoj se pÅestÄhoval do gitu. Každou zmÄnu pÅed vydánÃm automaticky provÄÅà testy (dnes jich je tisÃc) a statická analýza; instalace se aktualizujà z gitu, SourceForge zůstává jako zrcadlo pro stávajÃcà instalace pÅes SVN.</li> 171</ul> 172 173<h2>A zase malá poznámka pod Äarou</h2> 174 175<p>V Äervnu jsme psali, že si pÅi vývoji necháváme pomáhat od AI, konkrétnÄ od nástroje <strong>Claude Code</strong>. Tahle verze ukazuje, že nejde jen o rychlost: bezpeÄnostnà audit, tisÃc automatických testů ani stránka State Check by bez takového pomocnÃka vznikaly mnohem déle â pokud vůbec. VÅ¡echno dál kontrolujeme a testujeme my, lidé.</p> 176 177<p>Pokud byste i vy potÅebovali nové funkce na svých webech, nový web nebo webovou aplikaci, <strong>ozvÄte se nám</strong>. Vývoj je teÄ výraznÄ rychlejšà a levnÄjÅ¡Ã, než jste byli zvyklÃ.</p> 178 179<p><em>Kompletnà seznam zmÄn najdete v <a href="https://github.com/apc-aa/ActionApps/commits/main">historii zmÄn na GitHubu</a>.</em></p></div> 180 </div> 181 </div> 182 183 184 185 186 187</div> 188<footer class="bg-clr-dark clr-light pt-3"> 189 <div class="pl-2 pl-3-scr pr-2"><img src="/img/ecn-logo-horizontal-white.svg" class="foot-logo"></div> 190 <div class="main flex f-between pt-2"> 191 <div class="flex f-3-2-2 box-8"> 192 <article class="item">Ecn Studio s.r.o<br>Chodská 2<br>Praha 2, 120 00</article> 193 <article class="item">KanceláÅ:<br>KolÃnská 16<br>Praha 3, 130 02</article> 194 <article class="item">E: <a href="" id="aapmyKfDOGJF0l"></a><!--AA script generated, AA script removed-->
194<script>var el=document.getElementById('aapmyKfDOGJF0l');el.setAttribute('href','mai'+'lto:'+'studio'+'@'+'ecn.cz');el.insertAdjacentHTML('afterbegin','studio'+'@'+'ecn.cz');document.currentScript?.parentNode?.removeChild(document.currentScript);</script>
194<br>T: <a href="tel:+420224319860">224 319 860</a> <br>IÄ: 05647185</article> 195 </div> 196 <div class="f-flex-1 item"> 197 <nav><a href="https://mujkoutek.ecn.cz/">Můj koutek</a><a class="" href="/cz/newsletter">OdbÄr novinek</a><br><a href="/cz/vseobecne-smluvni-podminky">VÅ¡eobecné smluvnà podmÃnky</a><a href="/cz/zasady-zpracovani-osobnich-udaju">Zásady zpracovánà osobnÃch údajů</a></nav> 198 </div> 199 200 </div> 201</footer> 202 203<!--AA-Generated-FOOT start-->
204<script src="/aaa/cdn/npm/[email protected]/lightgallery.min.js"></script>
vendor: 1 bytes, line 204
204
205<script> document.addEventListener('DOMContentLoaded', function() { lightGallery(document.querySelector('body'), { "selector": ".lightgallery" }); }); </script>
205 206<!--/AA-Generated-FOOT end--> 207 208 209
210<script type="application/ld+json" id="ldjson"> 211{ } 212</script>
212 213
214<script type="application/ld+json"> 215 [ 216 { 217 "@context": "http://schema.org", 218 "@type": "WebSite", 219 "name": "Novinky", 220 "alternateName": "Novinky", 221 "url": "https://ecn.cz/" 222 }, 223 { 224 "@context": "http://schema.org", 225 "@type": "Organization", 226 "url": "https://ecnstudio.cz/", 227 "name": "Ecn Studio s.r.o", 228 "contactPoint": { 229 "@type": "ContactPoint", 230 "email": "[email protected]", 231 "contactType": "Ecn Studio" 232 } 233 }] 234</script>
234 235 236</body> 237</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.