Plugin Zalomení aktualizován pro nový WordPress 2.9

Vyšel nový WordPress 2.9. Na internetu je o této skutečnosti spousta článků, takže nebudu zbytečně psát o tom, co se lépe dozvíte jinde. Nová verze WordPressu ovšem změnila některé své interní funkce a já jsem zjistil, že v ní nefunguje můj plug-in Zalomení. Takže na světě je rychlý fix, plugin Zalomení verze 1.2, který s novým WordPressem funguje (a funguje správně i se staršími verzemi, pozná si, nad jakou verzí WP běží a použije správné funkce dle verze).

Moje stávající oprava je spíše rychlým hackem. Totiž funkce, kterou jsem ve svém pluginu používal, byla ve starším WordPressu součástí API, od verze 2.9 se ovšem jedná o funkci privátní, kterou pluginy nemají používat. A já teď volám tu privátní funkci. To znamená, že můj plugin sice v této chvíli funguje, ale takto by to být nemělo. Jak odhalil jeden z uživatelů, např. plugin WP-Security-Check na toto upozorní, že to není v pořádku. Ovšem v těchto dnech jsem neměl dostatek prostoru řešit korektní verzi, měl jsem ale pocit, že musím rychle udělat opravu, protože lidé budou své WordPressy upgradovat.

Proto v brzké budoucnosti očekávejte verzi další, která nejen že bude fungovat, ale také bude korektní vzhledem k API systému WordPress. Akorát to třeba spojím ještě s nějakým rozšířením funkcionality pluginu Zalomení, aby to mělo pro uživatele i ještě nějaký další přínos.

Note: There is a file embedded within this post, please visit this post to download the file.

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.

Note: There is a file embedded within this post, please visit this post to download the file.

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.

Note: There is a file embedded within this post, please visit this post to download the file.

Zalomení: plugin do WordPressu pro předložky k, s, v, z

Začnu citací z webových stránek Ústavu pro jazyk český, Akademie věd České Republiky:

Upravujeme-li písemný dokument, radí nám Pravidla českého pravopisu nepsat neslabičné předložky v, s, z, k na konec řádku, ale psát je na stejný řádek se slovem, které nese přízvuk (např. ve spojení k mostu, s bratrem, v Plzni, z nádraží). Typografické normy jsou ještě přísnější: podle některých je nepatřičné ponechat na konci řádku jakékoli jednopísmenné slovo, tedy také předložky a spojky a, i, o, u;. Někteří pisatelé dokonce nechtějí z estetických důvodů ponechávat na konci řádků jakékoli jednoslabičné výrazy (např. ve, ke, ku, že, na, do, od, pod).

Takže jednoduše, předložky k, s, vz by neměly zůstat trčet osamocené na konci řádku jako poslední slovo, ale měly by být dohromady na jednom řádku se slovem, kterému předcházejí, tedy měly by se přesunout na další řádek. Velice dobře si vzpomínám, jak jsme se toto pravidlo učili ve škole v češtině a jak byla tato chyba při diktátech a slohových prací zakroužkována červenou propiskou a známka byla hned horší. Ale ono to má svůj smysl, aby tomu tak bylo, text je totiž lépe čitelný.

Tato záležitost samozřejmě nedělá problém jen školákům, ale také (nebo spíš především) počítačovým programům. Pamatuji se, jaká sláva to byla, když MS Word začal toto reflektovat a za uvedené předložky začal automaticky vkládat tvrdou mezeru. Jedná se ovšem o výjimku a většina systémů toto neumí. Samozřejmě je vhodné, aby toto uměl právě počítačový program a neřešil to uživatel. Je skutečně zapotřebí dát tvrdou mezeru za každou tuto předložku, nejen za ty, které zůstaly trčet na koncích řádků (důvodem je, že dopsáním další věty doprostřed odstavce nebo změnou šířky sloupce se celý text přeformátuje a muselo by se to dělat znova). A to po uživateli nelze chtít.

Řekněme si na rovinu, že z typografického hlediska není tvrdá mezera vůbec vhodným řešením. Tvrdá mezera je totiž definována jako nedělitelná mezera o šířce písmene ‚n‘. Proto pokud si ve Wordu nastavíte zarovnání odstavce k oběma okrajům, můžete si všimnout, jak se běžné mezery mezi jednotlivými slovy natáhly, ale pozor, tvrdé mezery po neslabičných předložkách zůstaly stále stejně široké jako písmena. Vypadá to hloupě, ale bohužel Word jiné řešení neumí. Skutečné sazečské programy umožňují označit kus textu a nastavit, že ten nesmí být rozdělen řádkováním, a potom se mezera roztáhne na správnou šířku, ale text není rozdělen do dvou řádků. Takové je ideální řešení, ale u běžných programů na něj musíme bohužel zapomenout.

Příklad

No a protože WordPress je v tomto směru pole neorané, byl zde prostor pro to, abych vytvořil svůj druhý plugin do tohoto publikačního systému. A tak je zde a Vy si jej můžete stáhnout. Stačí ho nahrát do Vašeho WordPressu, aktivovat a voilà! Mezera za dotyčnými předložkami bude nahrazena tvrdou mezerou a nestane se, že by předložka zůstala trčet na konci řádku. Tedy texty můžete úplně normálně psát a používat klávesu mezera a plugin zajistí, že při zobrazení WordPressem bude ošetřeno případné zalomení v nežádoucím místě.

Plugin má i jednoduchou konfiguraci, kde si můžete zaškrtnout tři skupiny slov (předložky, spojky a zkratky), pro které má dojít k uvedenému zásahu a případně i specifikovat, o jaké konkrétní předložky, spojky a zkratky se jedná.

Realizace je provedena doplněním této funkcionality do již stávající funkce wp_posterize(). Proto je nahrazování prováděno jen na textech, které WordPress zpracovává touto funkcí – např. články. Texty, které nejsou touto funkcí zpracovány (např. texty ve widgetech) zůstanou tak jak jsou.

Konfigurace pluginu Zalomení

Konfigurace pluginu Zalomení

Vím, že v této chvíli plugin řeší pouze 3 z mnoha případů, kdy by bylo zapotřebí slova nerozdělit. Objemově se ovšem jedná o 99% potřebných případů — ostatní případy již nejsou tak časté. Proto nebudu slibovat, jestli některé další případy do pluginu postupně doplněním. Vyloučené to není, ale nespoléhejte na to. (Pokud by se chtěl nějaký programátor připojit a ty další případy do pluginu doplnit, ať se mi ozve mailem).

Note: There is a file embedded within this post, please visit this post to download the file.

Plugin TopList.cz umí odfiltrovat administrátory webu

Před časem jsem vyrobil plugin TopList.cz pro systém WordPress, díky němuž lze snadno integrovat tuto populární českou statistickou službu do blogu založeného právě na známém blogovacím systému. Když ale člověk obecně zařadí takovou službu na své stránky, zjistí nemilou záležitost: do statistik se mu začnou započítávat i jeho vlastní návštěvy: když publikujete článeček a chcete se podívat na náhled, jak bude vypadat, šup, a už je tam započítaný hit. Ale to není dobré, mě vůbec nezajímá, jak na své stránky chodím já. Chci vědět, jak na ně chodí jiní.

TopList.cz neumí žádné filtrování na straně statistického serveru (např. na základě IP adresy), to ale nevadí, protože stejně je nejlepší zajistit filtrování na straně publikačního systému. Zjednodušeně tak, že pokud je přihlášen uživatel s dostatenčnými oprávněními, tak se prostě kód pro statistickou službu vůbec negeneruje. A přesně toto jsem pro svůj plugin TopList.cz doprogramoval, což znamená, že na světě je nová verze pluginu, a to s číslem 3.1.

Volba se nazývá Protokolování administrátorů a zcela záměrně je ve výchozím stavu povolena, to znamená že i návštěvy administrátorů jsou stále započítávány do statistiky TopListu — takto je nastavení shodné v rámci zpětné kompatibility (např. aktualizací pluginu ze starší verze se nezmění jeho chování). Protokolování ale můžete zakázat a potom každý uživatel s úrovní vyšší, než je specifikovaná, bude odfiltrován: pokud je k webu přihlášen, pak se kód pro statistickou službu negeneruje a tudíž jeho pohyb po webových stránkách není do statistiky započítán. Pokud byste chtěli vědět, jakou úroveň má který typ uživatele, podrobný popis najdete na webových stránkách WordPressu (anglicky).

Administrace pluginu TopList.cz včetně filtrace administrátorů

Administrace pluginu TopList.cz včetně filtrace administrátorů

To, že se negeneruje statistický kód ovšem znamená také to, že pokud jste si na své stránky umístili viditelnou ikonu TopListu, pak ta se vůbec nezobrazí. Bohužel to tak je, TopList neumožňuje zobrazit ikonu aniž by byla započítána statistická data. Takže na to upozorňuji, pokud volbu Protokolování administrátorů zakážete, pak se adminům nebude ikona zobrazovat. Všem ostatním se zobrazovat bude — jak anonymním návštěvníkům Vašeho webu, tak registrovaným uživatelů, kteří mají úroveň nižší než určenou.

Aktualizace pluginu se Vám sama nabídne v administraci WordPressu, tedy pochopitelně pokud používáte WordPress ve verzi alespoň 2.8, jelikož plugin již ve starších verzích tohoto publikačního systému nefunguje. Případně si jej můžete stáhnout přes prolink z mých stránek.

Note: There is a file embedded within this post, please visit this post to download the file.

Plug-in TopList.cz aktualizován pro WordPress 2.8

Nová verze publikačního systému WordPress 2.8 přinesla úplně nový přístup k tzv. widgetům, tedy malým aplikacím pro blogy, které se typicky umisťují do postranních panelů. Systém je sice zpětně kompatibilní s předchozími verzemi (takže předchozí verze widgetů nadále fungují), nový návrh je ale čistší, objektově orientovaný atd.

Takže jsem samozřejmě svůj plug-in TopList.cz pro integraci této populární české (a slovenské) statistiky přeprogramoval pro novou verzi WordPressu. Na první pohled si asi žádné změny nevšimnete (možná akorát, že v konfiguraci widgetů se u TopList.cz začalo zobrazovat i Vaše ID pro tento statistický server), ale vniřnosti jsou úplně nové.

Nová verze plug-inu se Vám nabídne automaticky k aktualizaci, tedy pokud používáte nový WordPress 2.8. Jestliže naopak setrváváte u starší verze WordPressu, pak zůstanete i u starší verze mého plug-inu, tuto novou verzi Vám publikační systém zatají, dokud neprovedete upgrade celého WordPressu.

TopList.cz

Můj plug-in TopList.cz za tři měsíce překonal 303 stažení, čímž přestal být poslední mezi nabízenými soubory (tuto neslavnou pozici zaujaly propozice pro Mordheimový turnaj z května roku 2003, což chápu, že takový soubor se už asi moc nestahuje). Uvidíme, jak bude dál stoupat pořadím. Akorát furt nerozumím té popularitě mého jiného downloadu, počasí pro Google Desktop, okolo 7 000 stažení každý měsíc, nějak se mi nechce věřit, že by to fakt bylo tak populární, ovšem jak počítadlo stažení tak statistika webu u mého providera takové číslo reportuje, tak asi jo…

Note: There is a file embedded within this post, please visit this post to download the file.

Podporujeme i bratov Slovákov

Na základě připomínek v komentářích jsem vytvořil novou verzi pluginu TopList.cz (i když teď už to asi není .cz, viz dále) pro blogovací systém WordPress, která obsahuje dvě nové funkce:

  • Je možné zvolit server, výchozí je toplist.cz, ale je také možné použít toplist.sk, takže bratři Slováci již také mohou vesele toplistovat skrze tento plug-in.
  • Je k dispozici volba, jestli má ikona s odkazem vést na domovskou stránku toplistu, a nebo na detailní statistiky o příslušném blogu, který ikonu zobrazuje.

Mimo to jsem v readme souboru připojil návod, jak zajistit centrování ikony v sidebaru, totiž:

  • Plugin zajistí zobrazení ikony TopListu, ale (záměrně) nezajistí jeho formátování (zarovnání vlevo/vpravo, případně vycentrování).  Pokud chcete mít obrázek v sidebaru vycentrovaný, přidejte do své šablony vzhledu – do souboru CSS s kaskádovým stylem:
    .widget_toplist_cz {text-align:center}

Tak, to je vše. Pokud máte plug-in již nainstalován (v předchozí verzi), tak se Vám automaticky nabídne jeho aktualizace v administraci Vašeho webu, jedním klikem upgradujete na novou verzi. Pokud ještě plug-in nemáte, samozřejmě si ho můžete stáhnout a instalovat podle postupu uvedeného v minulém článku.

Note: There is a file embedded within this post, please visit this post to download the file.

Rozšířená konfigurace widgetu TopList

Rozšířená konfigurace widgetu TopList