AlmaLinux OS byl vydán ve verzích 9.8 s kódovým jménem Olive Jaguar a 10.2 s kódovým jménem Lavender Lion. Podrobnosti v poznámkách k vydání (9.8 a 10.2). Opraveny byly zranitelnosti Copy Fail (CVE-2026-31431), Dirty FRAG, Fragnesia (CVE-2026-46300), nginx Rift (CVE-2026-42945) a SSH Keysign Pwn (CVE-2026-46333).
Seznam.cz vykázal za rok 2025 tržby v celkové hodnotě 6,454 miliardy korun. Oproti roku 2024 nárůst o 3,68 %. Zisk před zdaněním oproti předcházejícímu roku poklesl, a to o 11,21 % na 1,330 miliardy korun. Vlastní velké jazykové modely SeLLMa najdou dnes uživatelé téměř na všech seznamáckých službách. Na všechny obsahové služby byla zavedena technologie text-to-speech, díky níž si mohou uživatelé přehrát články v audio verzi namluvené
… více »Vláda představila strategické digitalizační projekty. Roadmapa zahrnuje celkem 55 projektů napříč státní správou, z toho 22 prioritních projektů vycházejících přímo z programového prohlášení vlády a 33 projektů založených na platné legislativě. Portfolio pokrývá oblasti financí, zdravotnictví, digitální identity, dat, registrů, dopravy, krizového řízení, sociálních agend i kybernetické bezpečnosti.
Vyjádřeni Software Freedom Conservancy (SFC) k porušování licence AGPLv3 společností Bambu Lab v jejich softwaru Bambu Studio pro 3D tisk. Bambu Studio vychází z PrusaSliceru. Ten zase z Slic3ru. Spuštěn byl projekt baltobu, který kombinuje několik strategií pro řešení problému. SFC zastřeší vývoj svobodné náhrady proprietární knihovny libbambu_networking pomocí reverzního inženýrství a reimplementace, forku OrcaSliceru pro Bambu Lab tiskárny od Paweła Jarczaka a forku celého Bambu Studia pod názvem Viscose.
Správce souborů GNOME Commander (Wikipedie) byl přepsán do Rustu a vydán v nové verzi 2.0.0.
Sway (Wikipedie), dlaždicový (tiling) správce oken pro Wayland kompatibilní s i3, byl vydán ve verzi 1.12. Do vývoje se zapojilo 50 vývojářů. Přehled novinek na GitHubu. Sway 1.12 závisí na wlroots 0.20.0.
Papež Lev XIV. ve své první encyklice Magnifica Humanitas (Skvělé lidství), která se věnuje umělé inteligenci (AI), varoval před dezinformacemi, které AI manipulací s obsahem vytváří. Moc mají podle něj sociální sítě ovládané hrstkou soukromníků. Upozornil také roli digitálních platforem v obchodování s lidmi, které podle něj musí být uznáno jako současná forma otroctví. Papež se také poprvé omluvil za roli, kterou Vatikán sehrál při legitimizaci otroctví, a za to, že jej po staletí neodsoudil.
Český telekomunikační úřad zveřejnil Výroční zprávu za rok 2025 (pdf), která shrnuje jeho hlavní aktivity v oblasti regulace elektronických komunikací, poštovních služeb, digitálních služeb a přípravy na dohled nad umělou inteligencí. Součástí zprávy jsou také data o vývoji trhu, včetně pokračujícího růstu spotřeby mobilních dat a rozšiřování sítí nové generace. Celkový objem přenesených mobilních dat dosáhl v roce 2025 přibližně
… více »Tým sdružení CZ.NIC vyvíjející routovacího daemona BIRD oznámil vydání nových verzí 3.3.0 a 2.19.0. Ty přinášejí podporu pro EVPN/VXLAN a automatizaci BGP na základě router advertisementů. Více informací je k dispozici v archivu uživatelského mailing-listu.
Open source software pro úpravu digitálních fotografií LightZone (Wikipedie) byl vydán v nové verzi 5.0.0. LightZone je dnes k dispozici pod licencí BSD. Původně se jednalo o proprietární software vyvíjený společností Light Crafts. Ta v prosinci 2012 souhlasila s uvolněním zdrojových kódů jako open source [Wayback Machine].
Nejprve bych se rád čtenářům omluvil za větší pauzu mezi jednotlivými díly, ale bohužel se mi nedostávalo času. Lepší zprávou, i když ne už moc aktuální, je, že 30. listopadu 2006 vyšla nová verze Smarty 2.6.15 a hned 1. prosince 2006 vyšla verze Smarty 2.6.16, protože ve verzi vydané o den dříve se vyskytla chyba. Changelog popisuje jednotlivé změny oproti předchozím verzím.
Smarty umožňuje v šablonách používat matematické výpočty. Ty lze zapisovat přímo, způsobem obdobným, jak jsme zvyklí z PHP, nebo pomocí prostředí math. Rozhodneme-li se provádět zápis přímo, což je nejjednodušší metoda, pokud nepotřebujeme složité vzorce, úpravu výstupu apod., může použití vypadat následovně:
{* Jednoduche priklady *}
{$promenna + 1}
{$promenna_1 * $promenna_2}
{* Slozitejsi priklady *}
{$promenna_1 - $promenna_2.klic_1 * $promenna_2.klic_2 % $promenna_3}
{assign var="vysledek" value="`$promenna_1 * $promenna_2`"}
Příklad jednoduše znázorňuje, jak použít co nejjednodušeji matematické možnosti ve Smarty. Zajímavým může být poslední řádek, který ukazuje, jakým způsobem lze výsledek výpočtu uložit do proměnné. K uložení slouží funkce assign. Aby byl obsah parametru zpracován a teprve pak uložen do proměnné, musíme matematický zápis uzavřít do zpětných apostrofů (`).
Chceme-li však použít více možnosti matematiky, které Smarty nabízí, je vhodné využít funkce math. Ta umožňuje nejen složitější zápisy, ale také nastavení formátu výsledku, okamžité přiřazení výsledku proměnné, zápis vzorců pomocí přiřazení hodnot jednotlivým proměnným v matematickém výrazu.
Příklad 1 - Obvod obdélníku
{* $sirka = 4, $vyska = 5 *}
{math equation="2 * (x + y)" x=$sirka y=$vyska}
Příklad 2 - Obvod obdélníku s konfiguračním souborem
{* #sirka# = 4, #vyska# = 5 *}
{math equation="2 * (x + y)" x=#sirka# y=#vyska#}
Příklad 3 - Obvod obdélníku s uložením výsledku do proměnné
{* $sirka = 4, $vyska = 5 *}
{math equation="2 * (x + y)" x=$sirka y=$vyska assign="obvod"}
Příklad 4 - Obvod obdélníku s definicí formátu výsledku
{math equation="2 * (x + y)" x=8.9895 y=1.2549 format="%.2f" assign="obvod"}
Pro určení formátu výsledku lze použít formátovací řetězce známé pro funkci printf jazyka PHP.
Smarty umožňuje na jednotlivé proměnné aplikovat tzv. modifikátory. Ty se používají k úpravě obsahu proměnných na úrovni šablon. Syntaze použití modifikátorů na proměnné je následující: $promenna|modifikator:parametry. Důležitou poznámkou, než se začneme přímo zabývat použitím modifikátorů, je, že modifikátor je aplikován na proměnnou, resp. její obsah. Pokud ale použijeme modifikátor na pole, bude aplikován na každý jeho prvek. Chceme-li použít modifikátor na pole jako celek, použijeme před názvem modifikátoru symbol @ (zavináč). Jednoduchým příkladem může být následující výpis:
{* Vypise pocet prvku v poli *}
{$array|@count}
Modifikátor capitalize změní první písmeno každého slova v řetězci na velké. Ve výchozím nastavení nedochází k úpravě prvního písmene. Je-li následováno číslicí a použijeme-li parametr true, bude k úpravě docházet. Efekt parametru a použití modifikátoru je patrný z následujícího výpisu. Funkce modifikátoru je shodná s PHP funkcí
ucfirst().
{* Promenna $foo obsahuje retezec "toto je test v3" *}
{$foo|capitalize}
{* Vystup: Toto Je Test v3 *}
{$foo|capitalize:true}
{* Vystup: Toto Je Test V3 *}
Modifikátor cat slouží ke konkatenaci (spojení) dvou řetězců. Nemá žádné parametry umožňující upravit jeho chování, jediným parametrem je řetězec, který má být připojen.
{* Promenna $foo obsahuje retezec "toto je test" *}
{$foo|cat:' - snad posledni
'}
{* Vystup: toto je test - snad posledni
*}
Modifikátor count_ existuje ve Smarty v několika variantách,
prvním je count_characters, druhým count_words,
třetím count_sentences a posledním count_paragraphs. Již z názvu by mohlo být patrné k čemu jednotlivé modifikátory slouží. Postupně tedy - počet znaků v proměnné, počet slov v proměnné, počet vět v proměnné a nakonec počet odstavců v proměnné. Pouze count_characters umožňuje použití parametru ovlivňující funkci modifikátoru. Výchozí nastavení je na false, což znamená, že bílé znaky nebudou započítávány do výsledného počtu znaků. Chceme-li, aby tomu bylo naopak, bílé znaky byly započítávány, nastavíme parametr na true.
{* Promenna $foo obsahuje retezec "toto je test" *}
{$foo|count_characters}
{* Vystup: 10 *}
{$foo|count_characters:true}
{* Vystup: 12 *}
{$foo|count_words}
{* Vystup: 3 *}
{* Promenna $foo obsahuje retezec "Toto je test. Mam rad Linux." *}
{$foo|count_sentences}
{* Vystup: 2 *}
{* Promenna $foo obsahuje retezec "Toto je test.\n Mam rad Linux." *}
{$foo|count_paragraphs}
{* Vystup: 2 *}
Tento modifikátor slouží pro formátování výstupního data a času dle zadaných kritérií. Pro formátování data a času slouží zástupné znaky, které se používají pro PHP funkci strftime().
{$smarty.now|date_format:"%d.%m.%Y"}
{* Vystup: 19.01.2007 - vystup samozrejme zavisi na dni pouziti sablony
*}
Modifikátor kontrolující, zda-li byla proměnné přiřazena nějaká hodnota, tedy jestli není prázdná. Pokud je proměnná prázdná, je jí přiřazena hodnota, která byla předána modifikátoru jako jeho parametr.
{* Promenna $foo obsahuje retezec "toto je test" *}
{$foo|default:'hodnota'}
{* Vystup: toto je test *}
{* Promenna $foo_2 nebyla inicializovana *}
{$foo_2|default:'hodnota'}
{* Vystup: hodnota *}
Modifikátor slouží k úpravě proměnné dle zadaných pravidel. Převádí "nevhodné" znaky, jakými mohou být např. apostrofy, na entity, upravuje tvar e-mailové adresy, aby zamezil zpracování roboty (jmeno@domena.cz převede na jmeno[AT]domena[DOT]cz) apod. Parametry použití tohoto modifikátoru jsou dostupné z dokumentace.
{* Promenna $foo obsahuje retezec "jmeno@domena.cz" *}
{$foo|escape:'mail'}
{* Vystup: jmeno[AT]domena[DOT]cz *}
Modifikátor sloužící k odsazení textu o určitý počet (ve výchozím nastavení 4) znaků (výchozí je mezera, lze upravit). Tento modifikátor má tedy dva parametry, jejichž pořadí je potřeba dodržet.
{* Promenna $foo obsahuje retezec "Radek 1\nRadek 2\Radek 3" *}
{$foo|indent:5:"\t"}
{* Vystup: kazdy radek bude odsazet o pet tabelatoru *}
Modifikátor převadí obsah proměnné na malá písmena.
{* Promenna $foo obsahuje retezec "Toto Je TEST" *}
{$foo|lower}
{* Vystup: toto je test *}
Modifikátor převadí všechny znaky nového řádku \n
na HTML ekvivalent <br />.
{* Promenna $foo obsahuje retezec "Radek 1\nRadek 2\nRadek 3" *}
{$foo|nl2br}
{* Vystup: Radek 1<br />Radek 2<br />Radek 3 *}
Modifikátor funguje podobně jako PHP funkce preg_replace(), a používá stejné zástupné znaky v regulárních výrazech. Nahrazení textu dle regulárního výrazu.
{* Promenna $foo obsahuje retezec "Radek\t1\nRadek\t2\nRadek\t3" *}
{$foo|regex_replace:"/[\r\t\n]/":" "}
{* Vystup: Radek 1 Radek 2 Radek 3 *}
Modifikátor má obdobnou funkci jako regex_replace s tím rozdílem, že neumožňuje použití regulárních výrazů. Dochází tedy pouze k náhradě hledaného řetězce za jiný.
{* Promenna $foo obsahuje retezec "toto je test" *}
{$foo|replace:'je':'neni'}
{* Vystup: toto neni test *}
Modifikátor umožňuje vložit libovolný znak (výchozí je mezera) mezi znaky v proměnné.
{* Promenna $foo obsahuje retezec "toto je test" *}
{$foo|spacify}
{* Vystup: t o t o j e t e s t *}
{$foo|spacify:"!"}
{* Vystup: t!o!t!o! !j!e! !t!e!s!t! *}
Modifikátor slouží k formátování řetězce dle formátovacích znaků, které jsou shodné jako u funkce sprintf().
{* Promenna $foo obsahuje retezec "3.1415" *}
{$foo|string_format:"%d"}
{* Vystup: 3 *}
{$foo|string_format:"%.2f"}
{* Vystup: 3.14 *}
Modifikátor slouží k nahrazení opakujících se mezer, nových řádků a tabelátorů jednou mezerou (výchozí nastavení), případně libovolným řetězcem, definovaným parametrem.
{* Promenna $foo obsahuje retezec "Toto \t je\n test" *}
{$foo|strip}
{* Vystup: Toto je test *}
{$foo|strip:"-"}
{* Vystup: Toto-je-test *}
Modifikátor slouží k odstranění všech HTML tagů v proměnné a jejich nahrazení jednou mezerou. Pokud chceme, aby došlo k nahrazení bez mezery, použijeme parametr false - jako výchozí je definováno true.
{* Promenna $foo obsahuje retezec "Toto je <b>test</b>" *}
{$foo|strip_tags}
{* Vystup: Toto je test *}
{$foo|strip_tags:false}
{* Vystup: Toto je test *}
Modifikátor slouží k "oříznutí" řetězce. K upřesnění funkce slouží čtyři parametry. První udává počet znaků, na které má být řetězec zkrácen (výchozí nastavení 80 znaků), druhý parametr udává, jakým řetězcem má být oříznutý text následován (výchozí ...), třetí parametr určuje, zda je povoleno oříznutí řetězce v půlce slova, nebo zda-li se má provést odříznutí před tímto slovem (ve výchozím nastavení na false - nedělit slova). Poslední parametr určuje, že bude vypsáno poslední slovo řetězce a podle toho se přizpůsobí oříznutí. Vysvětlování se může zdát složité, nejlepší je vyzkoušet si funkci modifikátoru v praxi, nebo se podívat na výpis kódu.
{* Promenna $foo obsahuje retezec "Toto je delsi retezec k testovani *}
{$foo|truncate:10}
{* Vystup: Toto je... *}
{$foo|truncate:10:"!"}
{* Vystup: Toto je! *}
{$foo|truncate:10:"-":true}
{* Vystup: Toto je de- *}
{$foo|truncate:15:"-":false:true}
{* Vystup: Toto je... testovani*}
Modifikátor převádí obsah proměnné na velká písmena.
{* Promenna $foo obsahuje retezec "Toto je test" *}
{$foo|upper}
{* Vystup: TOTO JE TEST *}
Modifikátor pracující na podobném principu jako truncate s tím rozdílem, že text neořezává, ale řeší jeho zalamování. První parametr udává, po kolika znacích (výchozí 80) má dojít k zalomení textu, druhý parametr udává, jaký znak se má pro zalomení použít (výchozí \n).
{* Promenna $foo obsahuje retezec "Toto je delsi retezec k testovani *}
{$foo|wordwrap:15}
{* Vystup: Toto je delsi\nretezec k\ntestovani *}
{$foo|wordwrap:15:"<br />}
{* Vystup: Toto je delsi<br />retezec k<br />testovani *}
Veškeré výše popsané modifikátory lze libovolně vhodně kombinovat. Následuje několik takových ukázek, z kterých by mělo být zřejmé, jak kombinaci modifikátorů zapisovat. Z výpisu je i vidět, že závisí na pořadí zápisu modifikátorů (modifikátory jsou aplikovány směrem od proměnné).
{* Promenna $foo obsahuje retezec "Toto je retezec k testu *}
{$foo|upper|spacify}
{* Vystup: T O T O J E R E T E Z E C K T E S T U *}
{$foo|upper|spacify|truncate:15}
{* Vystup: T O T O J E... *}
{* Nejprve byl retezec zvetsen, pote vlozeny mezery a pak oriznut *}
{* Pocet mezer se tedy promitl do poctu znaku k oriznuti *}
{$foo|upper|truncate:15|spacify}
{* Vystup: T O T O J E R E T E Z E C . . . *}
{* Nejprve byl retezec zvetsen, pote oriznut a pak vlozeny mezery *}
{* Vlozeni mezer se tedy promitlo na ... vlozenych modifikatorem truncate *}
V příštím díle se seznámíme s vestavěnými funkcemi šablonovacího systému Smarty. Abych alespoň předběžně nastínil, tak prozradím, že mezi tyto funkce patří např. podmínky a různé cykly. Více ale až v příštím díle seriálu.
Nástroje: Tisk bez diskuse
Tiskni
Sdílej:
strftime() lze použít %e tak, aby byl vypisován den v měsíci bez předchozí nuly. Čísla 1 - 9 budou předsazena mezerou, zbývající čísla nebudou nijak ovlivněna. Něco podobného pro měsíc jsem nikde neviděl a nenašel, ale určitě by se to dalo vyřešit na úrovni vlastního pluginu. Téma vlastních pluginů bude v tomto seriálu také probráno a váš problém by mohl vyústit v jeden z ukázkových příkladů
{$var|unserialize|var_export:True|string_format:"<?php\n%s\n?>"|highlight_string}
ma to sice jeden mensi bug, ale jako ukazka to staci.
Tohle vrací den. měsíc. rok, ale s nulou před číslem měsíce.{$myDate|date_format:"%e. %m. %Y"}
Tohle nulu odstraní:{$myDate|date_format:"%e. %#m. %Y"}
Jestli to chcete mít funky, tak na to můžete jít i takhle:{assign var="myDateTimestamp" value=$myDate|strtotime}
{"j. n. Y"|date:$myDateTimestamp}
(převzato odsud)