Byla vydána nová stabilní verze 8.2 webového prohlížeče Vivaldi (Wikipedie). Postavena je na Chromiu 152. Přehled novinek i s náhledy v příspěvku na blogu.
Byla vydána nová stabilní verze 4.0 svobodného multiplatformního softwaru pro editování a nahrávání zvukových souborů Audacity (Wikipedie). S rozhraním přepsaným do Qt. Přehled novinek také na YouTube. Ke stažení je oficiální AppImage. Zatím starší verze Audacity lze instalovat také z Flathubu a Snapcraftu.
NVIDIA kupuje Hugging Face za 12,93 miliardy dolarů.
Předobjednat si lze nový jednodeskový počítač Arduino VENTUNO Q s předinstalovaným Ubuntu. S 16 GB LPDDR5 a 64 GB eMMC. Pro lokální LLM, agentní AI, počítačové vidění, robotiku…
Hexpair není nejlepší HEX editor na světě a ani se o to nesnaží. Zato je k dispozici kdykoliv a kdekoliv – všude tam, kde máte svůj Vim. Vznikl jako hobby projekt před pár měsíci a dospěl do stavu, kdy by mohl být užitečný širší komunitě. Přepnout do HEX režimu se dá i uprostřed rozdělané práce: Soubor, který už máte otevřený běžným vim file.md, jedním příkazem přepnete do HEX editoru a dalším příkazem ho můžete vrátit zpět do textu. Kurzor přitom
CERN dlouhodobě používal vlastní sestavení RHEL, ze kterého přešel na CentOS Stream. Federico Vaga a Nikos Tsipinakis ale nyní v přednášce na MiniDebConf Winterthur 2026 popisují plán probíhajícího přechodu na Debian pro řízení akcelerátorů. Důvodem k opuštění CentOS Stream jsou zachování zpětné kompatibility se starším hardwarem, kterou Red Hat narušuje, když tlačí sestavení balíčků pro novější verze architektury (x86-64), a nedostatečné nástroje pro sestavování vlastních balíčků a repozitářů.
UZDoom (Wikipedie), tj. fork GZDoom, byl vydán ve verzi 5.0.0. Videopředstavení na YouTube. Podrobný přehled novinek v Changelogu.
Příručka Linux From Scratch pro sestavení základního linuxového systému byla aktualizována v pravidelném půlročním termínu. Vydání 13.1 shrnuje přes 40 nových verzí balíčků a několik patchů. Navazující příručka Beyond Linux From Scratch s recepty pro sestavení dalších knihoven a aplikací zatím vydána nebyla, ačkoliv vývojová verze stále dostává aktualizace. Lze je číst online nebo stáhnout v HTML či PDF.
Národní bezpečnostní tým CSIRT.CZ koordinovaný sdružením CZ.NIC přichází se službou Strážci internetu, která má sjednotit způsob hlášení doménových jmen zneužívaných k páchání trestné činnosti. Službu mohou uživatelé využívat také prostřednictvím rozšíření do prohlížeče. Nový nástroj podporuje jak hlášení vyžadující autorizaci, tak anonymní reporting, u kterého však nebude možné zapojit takovou míru automatizace jako u
… více »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)