Plug-in Zalomení zabrání rozdělení formátovaných čísel

Po nějaké době používání svého plug-inu Zalomení pro publikační systém WordPress jsem objevil několik slabých míst a také nějakou další funkcionalitu, kterou bych tam chtěl mít. A tak logicky vznikla nová verze 1.1, která toto řeší. Konkrétně se jedná o následující změny:

  • Plug-in nyní umí nahrazovat mezery za pevné, pokud se mezera nachází mezi dvěma číslicemi. Mezera mezi číslicemi se totiž používá při formátování čísel — oddělování tisíců, milionů apod., případně při zápise telefonních čísel. V takovém případě mohlo dojít k rozdělení čísla zlomem řádku, což není žádoucí. Můžete si tedy zapnout (resp. ve výchozím stavu je zapnuto), že tyto mezery jsou nahrazeny za pevné a k rozdělení nedojde. Např. telefonní číslo 800 123 456.
  • Plug-in neuměl nahradit obyčejnou mezeru za pevnou, pokud se předložka (nebo jiné slovo) nacházelo jako první za nějakou html značkou — např. <em>v Olomouci</em>, tedy v Olomouci. Nyní to již umí.
  • Plug-in neuměl nahradit obyčejnou mezeru za pevnou, pokud se předložka (nebo jiné slovo) nacházelo jako první za otevírací závorkou — např. (v Olomouci). Nyní to již umí.
  • Rozšířil jsem seznam výchozích zkratek (ze čtyř na dvacet čtyři), za něž se má vkládat pevná mezera.
  • No a poslední věc, která už není tolik zajímavá z uživatelského hlediska, ale nedá mi to, abych ji nezmínil. První verze pluginu využívala pro svou funkčnost již stávající filtr wp_posterize(), který se nachází ve WordPressu již ve výchozí instalaci. Abych mohl zrealizovat první dvě z výše uvedených změn, nebylo již možné tento stávající filtr jednoduše využít, takže jsem si napsal vlastní. Tedy uvnitř pod kapotou mého pluginu je změn o něco více.

Takže tradičně, pokud již máte nainstalovanou první verzi mého plug-inu, tak tato nová se Vám nabídne sama pomocí příjemného „one-click upgrade“, které WordPress umí. No a pokud jste ještě tento plug-in nevyzkoušeli a Váš web běží právě na WordPressu, tak si ho stáhněte a dejte mu šanci.

Poznámka: Soubor ke stažení byl vložen do příspěvku, pokud jej chcete stáhnout, musíte příspěvek otevřít.

dm4extensions: aktualizace stahování podle wordpress.org

Mé dva první pluginy visí již několik měsíců na webu WordPress.org a pár stovek lidí si je stáhlo, což samozřejmě hřeje mé malé ego. Také jsem odkazy na jejich stažení umístil přímo na svoje stránky a zjistil jsem, že skutečně jisté (nezanedbatelné) množství lidí si tyto pluginy našlo a stáhlo přes moje stránky. Taky super. Brzy jsem si ale všiml jedné věci: na mých stránkách je počítadlo stažení a také na stránkách WordPresu je počítadlo stažení. Moje počítadlo zaznamenávalo pouze ta stažení, které provedli návštěvníci mých stránek. Na WordPressu pak pochopitelně počítadlo uvádělo úplně všechna stažení (včetně těch z odkazů na mojich stránkách, protože vedou na web WordPressu). Logicky číslo na mých stránkách bylo výrazně nižší, než na stránkách WordPressu, jelikož více lidí přišlo na mé pluginy odjinud než z mého webu.

Protože jsem ješitný chlap, tak chci mít na svých stránkách u svých pluginů uvedený celkový počet stažení. Tedy, aby se počet stažení, který je uveden na stránkách WordPressu přenášel i do počítadla na mých stránkách. No a protože to lze zautomatizovat, tak to byl námět na další plug-in do WordPressu. Výsledek je na světě a pokud pro něj máte také použití, tak je volně k dispozici.

Konkrétně tedy, aby mohl můj nový plugin dm4extensions fungovat, je zapotřebí splnit následující:

  • máte vlastní web běžící na publikačním systému WordPress
  • na svém webu kromě článečků a fotek vystavujete i jiné soubory pro stažení a proto na něm máte jako plugin jeden z následujících download managerů: WP-DownloadManager (ten běží na mém webu) nebo WordPress Download Monitor (ten je sice úspěšnější než WP-DownloadManager, ale mě se líbí méně). V těchto download managerech je možné registrovat soubory pro stažení (jak interní tak externí), řadit je do kategorií, počítat stažení apod.
  • naprogramovali jste vlastní plugin nebo téma pro WordPress a umístili jste ho ke stažení na wordpress.org/extend
  • odkaz na stažení tohoto pluginu nebo tématu jste zařadili na Vašem webu do svého download manageru. Musí se jednat o odkaz přímo na stažení souboru ze stránek wordpress.org, nikoliv o lokální kopii souboru. Jednoduše ta URL, která se skrývá na stránkách WordPressu u Vašeho pluginu (nebo tématu) pod tlačítkem „Download“, tak stejnou URL jste zadali do svého download manageru.

Pokud tomu tak je a dm4extensions do svého WordPressu zařadíte, pak ten Vaše downloady projde, odkazy vedoucí na pluginy a témata hostovaná u wordpress.org pozná, ze stránek WordPressu si zjistí jejich statistiku stahování a tu pak zapíše do Vašich stránek jako počet stažení. Toto samozřejmě bude provádět automaticky pravidelně, a díky tomu, jak má WordPress vymyšlený cron, bude se tak dít plně na pozadí, tzn. uživatelské načítání stránek tím nebude nijak zpomaleno.

Na mých stránkách je samozřejmě tento plugin jednak vystavený a jednak aktivní, takže zde máme zajímavou situaci, že zde dm4extensions hlídá počet stahování sebe samotného. Co říci víc? Je mi jasné, že popularita tohoto pluginu bude poněkud nižší, přece jen vývojářů pluginů tolik není, ale třeba se zrovna Vám bude hodit.

Poznámka: Soubor ke stažení byl vložen do příspěvku, pokud jej chcete stáhnout, musíte příspěvek otevřít.

Jak na české formátování čísel ve WordPressu

WordPress je výborný publikační systém, a to nemám na mysli jen systém samotný, ale i češtinu, která je pro WordPress k dispozici. Bohužel zde máme jednu maličkost, která k dokonalosti chybí. A tou je formátování čísel, které i při použití češtiny odpovídá anglickým konvencím, tedy desetinná místa odděluje tečka a tisíce odděluje čárka. V češtině to ale má být jinak, desetinným oddělovačem má být čárka, kdežto oddělovačem tisíců má být mezera. (pro hnidopichy, moc dobře vím, že oddělovačem tisíců by neměla být normální, ale tenká mezera, to se ovšem na webu realizuje ještě hůře než normální mezera)

Ono se to snadno napíše, krásná teorie, pokud si ale myslíte, že jen tak vlezete do zdrojáků češtiny pro WordPress a položky si opravíte, okamžitě se vystavíte problému. Totiž webové stránky (stejně jako drtivá většina aplikací pracujících s textem) odstavce zalamují do jednotlivých řádků podle mezer. Což je v pořádku právě do té doby, než Vám mezery začnou oddělovat tisíce v číslech. Protože řádek uprostřed čísla zalomit nechcete. Číslo potřebujete držet pohromadě. Řešení se nazývá tvrdá mezera a tím se řítíme do největších hlubin trapné chyby, se kterou se musíme poprat. (doplnění informace o tenké mezeře z předchozího odstavce: tenká mezera reperezentovaná entitou &thinsp; je totiž v HTML zlomitelná přes řádek, tak proto ji nemůžeme použít pro formátování čísel)

Ne, chyba se nenachází v češtině pro WordPress. Nenachází se ani ve WordPressu samotném. Je skryta ještě níže, přímo v samotném PHP. Totiž, WordPress naprosto správně pro formátování čísel používá nativní funkci PHP, která se jmenuje number_format(). Potíž je v tom, že tato funkce neumí pracovat s tvrdými mezerami, a to ani s řetězcem &nbsp; ani s pevnou mezerou zapsanou jako ASCII znak o hodnotě 160. Pokud ji předhodíte, že má použít pro oddělení tisíců tvrdou mezeru, ve výsledku místo ní dostanete čtvereček. To je naprosto nepoužitelné.

A naprosto trapné na celé situaci je, že problém s touto funkcí je reportovaný do PHP již mnoho let (viz velmi dlouhý log u popisu této funkce), netrápí jenom Čechy, ale i mnohé početnější národy používající stejné formátování, jmenujem třeba Francii nebo Rusko. A nikdo s tím nic nedělá.

Rozhodl jsem se, že se se situací nesmířím. Na svém webu chci mít čísla naformátovaná správně česky. Asi bych uměl najít zmíněnou funkci ve zdrojácích PHP a zkompilovat si vlastní modifikaci, bohužel PHP u svého web-hostera nevyměním, takže situaci musím vyřešit o úroveň výše, ve WordPressu. Nejedná se však o situaci, kterou by šlo vyřešit plug-inem, ale musel jsem sáhnout napřímo do střev samotného WordPressu. To ve výsledku znamená, že s každým upgradem WordPressu, byť tím nejmenším, to musím udělat znova.

Vlevo u seznamu souborů ke stažení vidíte, že to vše funguje správně. Velikost souborů má desetinnou část oddělenou čárkou a u počtu stažení je vždy oddělovačem tisíců nedělitelná mezera, takže se nestane, že by se číslo rozdělilo na více řádků. Tak to má být.

Pokud chcete, aby i na Vašem webu byla čísla správně česky naformátována, můžete si stáhnout následující archiv. V něm najdete tři soubory, které nahrajte (do příslušných adresářů) Vaší instalace WordPressu přes ty původní. Pozor: soubory v tomto archivu jsou v této chvíli pro WordPress verze 2.9.2 a pokud máte jinou verzi WordPressu, tak to nedělejte, WordPress by mohl přestat fungovat. Modifikace je určena jen pro verzi 2.9.2, pro žádnou jinou.

Poznámka: Soubor ke stažení byl vložen do příspěvku, pokud jej chcete stáhnout, musíte příspěvek otevřít.

Dobrá zpráva na závěr: tento problém jsem již před časem nahlásil vývojovému týmu WordPressu a lze předpokládat, že nějakým způsobem se s ní popasují a v budoucnu bude možné, aby oficiální čeština měla korektní formátování čísel tak, jak má být. Zatím se řeší, jakým způsobem toto zařídit, jestli tak, jak jsem to udělal já, nebo nějakým filtrem, ale to je méně podstatné; nyní je milestone nastavený na verzi 3.0, tzn. vývojový tým by to chtěl mít v této verzi již vyřešené (ale na druhé straně si můžete v logu všimnout, že už se oprava plánovala pro verzi 2.9 a pak se to zrušilo). Tak držme palce, že řešení popsané a nabídnuté ke stažení v tomto článku je pouze dočasným workaroundem.

Seznam uživatelů nabízejících placenou podporu pro WordPress

Vzhledem k tomu, že se velmi často v různých fórech objevuje poptávka po službách ohledně WordPress, která překračuje možnosti běžné podpory zde na fóru, rozhodl jsem se vytvořit seznam lidí, kteří nabízí své služby za úplatu. Za takové služby se dá považovat: překlady šablon, grafické návrhy a tvorba theme, správa webů, instalace a pokročilá konfigurace […]

Galerie NextGEN

Pokud jste bloger, fotograf, grafik neb neco jiného, používáte WordPress a hledáte pořádnou galerii s mnoha funkcemi na svém webu, tak jste narazili na ten správný plugin. Na galerii NexGEN, která má ohromné množství funkcí.

Jak přesunout WordPress na jiný hosting

V poslední době narážím často na nešťastné uživatele, kteří by rádi přesunuli svůj fungující WordPress na jiný hosting a neví jak na to. Vzhledem k tomu, že nyní přesouvám hned několik webů, ulehčím vám trošku práce.
Pří přesouvání WordPressu mohou nastat dvě varianty:

Přesouváte WordPress z hostingu na jiný hosting a zachováváte si svojí doménu,
tzn. z www.domena.cz […]

WassUp – monitorování návštěv v reálném čase

WassUp je plugin zaměřen hlavně na to co návštěvníci dělají i s jejich umístěním na mapě, má i  jednoduché statistiky, pozorování kdo je online, detaily návštěvníka a mnoho dalšího. Plugin je v češtině, kterou jsem obstaral.
Oficiální web: www.wpwp.org
Plugin na WordPress.org
WassUp ukazuje údaje o návštěvě:

ip / hostname
odkazovač
pavouky
vyhledávače
klíčové slova
SERP (search engine result page – stránka výsledků vyhledávače)
opepační […]

Integrace TopList.cz do WordPressu

Člověk rád sleduje statistiky, jak mu chodí na stránky uživatelé. Jedním z nejoblíbenějších služeb pro tento monitoring u nás je server toplist.cz. Nejedná se sice o super detailní službu poskytující milión dvě stě tisíc parametrů, jen pár základních, ale je to zdarma, a to je samozřejmě příjemná cena. Také jsem se rozhodl začít měřit statistiky pomocí této služby.

Standardně jdete na server TopList a tam si vygenerujete ID pro Váš web a pak také webový kód, který si zařadíte na stránku. Zde se ovšem setkáváme se třemi potenciálními problémy:

  1. Zařadit kód na stránku umí jen pokročilý uživatel. Ale třeba své stránky na WordPressu provozuje i obyčejný člověk, který umí výborně psát články, ale HTML nebo dokonce PHP je pro něj španělská vesnice. Když vygenerovaný kód vloží do článku, tak to nefunguje. A absolutně nemá šajnu o tom, kam jinam kód zařadit. Ale statistiku používat chce. Viz třeba zde.
  2. I když se v HTML vyznám, nabízí se u publikačních systémů (nejen u WordPressu) otázka, kam ten kód zařadit. Nejčastěji se ten kód připojí do šablony vzhledu. Jenže to znamená, že když chceme změnit šablonu, tak si buď vzpomeneme a kód zařadíme i do nové šablony (to je ale práce navíc), a nebo na to zapomeneme, a o monitorování přijdeme.
  3. Nejchytřejší uživatelé si nakopírují kód pro WordPress do widgetu Text, nicméně… Kód pro monitorování má určitou konfiguraci – např. vzhled ikony, která se Vám na webu zobrazuje, ale také které parametry chcete sledovat. Když se po čase rozhodnete tuto konfiguraci změnit, musíte opět jít na server toplist.cz, vygenerovat nový kód, najít ten starý na svém webu, zaměnit. Nebylo by lepší, kdybyste si mohli konfiguraci jen naklikat a žádný kód neřešit?

Jak z toho ven? Jednoduše! Naprogramoval jsem Plugin (zásuvný modul) pro WordPress. Nainstalujete si jej do svého WordPressu, v konfiguraci vyplníte ID pro TopList a hotovo! Nemusíte umět HTML, nemusíte přemýšlet, kam kód zařadit, nemusíte se bát, že se změnou šablony o monitorování přijdete. A konfiguraci provádíte přímo ve WordPressu, pouze nastavíte, co jak chcete, a je to.

Konfigurace TopList.cz pro WordPress

Konfigurace TopList.cz pro WordPress


Takže ještě nyní instalaci podrobně jednou, aby nedošlo k mýlce:

  1. Pokud ještě nemáte svou registraci na serveru toplist.cz, pak je zapotřebí se zaregistrovat a získat ID pro své webové stránky.
  2. Nahrajte kompletní adresář pluginu do wp-content/plugins.
  3. Aktivujte plugin TopList.cz v administraci plug-inů.
  4. Přidejte widget TopList.cz v administraci Vzhled->Widgety.
  5. V konfiguraci widgetu zadejte své ID pro server toplist.cz, případně zvolte další volby. Uložte změny.
  6. Pokud chcete službu používat, ale nechcete widget vůbec zobrazovat (i když zvolíte neviditelnou ikonu, stále si widget na stránce vezme určité místo), přidejte do své šablony vzhledu – do souboru CSS s kaskádovým stylem:
    .widget_toplist_cz {display:none}

Plug-in pak můžete stahovat přímo ze stránek WordPressu, případně zde prolinkem.

Poznámka: Soubor ke stažení byl vložen do příspěvku, pokud jej chcete stáhnout, musíte příspěvek otevřít.

Cookies pro snadnější vkládání komentářů a automatické předvyplnění osobních údajů

Každý autor svého blogu (a to nejen ve WordPressu) má určitě rád, když mu po mnohahodinové práci s napsáním nějakého článku uživatelé zanechají alespoň nějakou zpětnou vazbu, např. v podobě komentáře. Redakční systém WordPress se i v tomto případě snaží, aby takové (zejména opakované) vkládání komentářů čtenářům co nejvíce zjednodušil a neotravoval je např. pokaždé novým zadáváním jména a emailu. Ne vždy je to […]

Pokročilé úpravy zobrazování náhledových obrázků v šabloně

Náhledové obrázky, které se nově objevily ve WordPressu 2.9, toho sice na první pohled moc neumí, ale s pomocí několika drobných zásahů je možné jejich zobrazení v šabloně libovolně upravovat. Nejčastějším způsobem těchto úprav je obvykle zápis dodatečné funkce do souboru functions.php ve vaší šabloně, ale v tomto případě to ani není nutné a vystačíme si s úpravou […]