Category Archives

25 Articles

Google Analytics: Asynchronous Tracking a AJAX

by Zdeněk Večeřa 1 Comment

Google před časem přidal další možnost, jak sledovat návštěvnost pomocí Google Analytics. Tentokrát se jedná o tzv. Asynchronous Tracking.

Tento nový asynchronní měřící kód přináší oproti dřívějším verzím (urchin.js a ga.js) několik výhod:

  • rychlejší načítání stránek
  • více údajů o návštěvnících během krátkých návštěv stránek
  • odstranění nepatřičných sekvenčních operací mezi sledováním uživatelských kliknutí a načtením měřicího kódu

Google doporučuje tento nový způsob sledování nasadit, dřívější verze ovšem budou nadále podporovány. Rozhodně byste ale neměli na jedné stránce používat více druhů měření.

Kód se liší především v umístění na stránce. Dřívější se dával na konec stránky, před uzavírací tag </body>. Tento nový se umísťuje před uzavírací tag </head>.

Jak použít Google Analytics a AJAX?

by Zdeněk Večeřa 0 Comments

U běžných stránek (bez AJAXu) není problém. Stačí vygenerovaný Google Analytics kód vložit na každou jednotlivou stránku. Při každém zobrazení stránky se JavaScriptový kód zavolá a zaznamená návštěvu.

Problém nastane, pokud máte web postavený na technice AJAX. Protože se mění pouze určité části stránky, Google Analytics se nezavolá a vy tím přicházíte o zaznamenávání návštěvnosti – drasticky se znehodnocuje statistika.

Komprese JavaScriptu: YUI Compressor, Closure Compiler

by Zdeněk Večeřa 0 Comments

Komprese JavaScriptových zdrojových kódů má tři hlavní výhody:

  • soubor se zmenší, čímž se sníží traffic (ušetříte na trafficu)
  • zrychlí se načítání stránek u klienta (uživatelé budou spokojenější)
  • zrychlí se zpravování JS kódu u klienta (uživatelé budou ještě víc spokojenější)

Nástrojů pro kompresi existuje mnoho, řekněme si ale alespoň o dvou nejznámějších:

Postřehy: snažím se přejít z Eclipse PDT na NetBeans (PHP), jsou ale problémy

by Zdeněk Večeřa 5 Comments

Přibližně rok a půl pro vývoj PHP aplikací používám IDE prostředí Eclipse PDT. Výhody IDE nástrojů oproti aplikacím PSPad nebo Intype nebudu zmiňovat (možná příště).

V Eclipse PDT si založíte nový projekt, do kterého přiřadíte soubory. Práce s většími PHP soubory, řekněme okolo 100 kB (cca 3 300 řádků) je ale (aspoň v mém případě) problematická. Eclipse PDT nestíhá. Úpravy textu (zdrojového kódu) jsou pomalé, Eclipse PDT reaguje se zpožděním.

Větší soubory v Eclipse dělají IntelliSense nepoužitelné

IntelliSense (našeptávač – doplňování kódu) taktéž reaguje se zpožděním. Zobrazení IntelliSense v takovém souboru netrvá pár milisekund, ale 2-3 vteřiny, což je pro práci zcela nepoužitelné.

Záchranou je NetBeans?

NetBeans je v tomto naštěstí jiný – „takový lepší“. Hlavně tedy rychlejší. IntelliSense je svižné, stejně tak práce se soubory, úpravy, ukládání aj.

Rok a půl používání Eclipse PDT ve mně ale zanechalo i návyky, kvůli kterým je přechod ke konkurenci složitější. Upravil jsem si barevné zobrazení syntaxe (dle Eclipse PDT), prošel klávesové zkratky, stále mi ale u NetBeans několik vlastností vadí.

V čem je lepší Eclipse oproti NetBeans?

Následující chování NetBeans mi docela vadí:

  1. Vlevo se nachází strom se soubory a projekty. Pokud v Eclipse vyberu soubor „index.php“ a udělám ctrl+c a ctrl+v, nakopíruje se jako kopie s názvem „Copy of index.php“. V NetBeans to bohužel nefunguje. Kopírování funguje, akorát je třeba při vkládání klepnout na složku, do které chci provést vložení (u Eclipse stačí mít označený libovolný soubor z dané složky).
  2. K levému stromu souboru ještě jednou. Eclipse jsem si nastavil tak, že stačí jednou klepnout na soubor a hned se vpravo zobrazí jeho obsah. Divné, ale u NetBeans tato možnost asi není (nenašel jsem).
  3. V Eclipse označím text a klávesovou zkratkou ctrl+k ihned dojde k nalezení dalšího výskytu řetězce v souboru. Nemusím tedy otevírat vyhledávací dialog. NetBeans to neumí.
  4. Pokud mám v Eclipse otevřený odkaz, span, div: <div>text, tak mi za slovem „text“ IntelliSense nabídne uzavření tagu. NetBeans bohužel hloupě nenabídne nic.
  5. Další věc se týká nahrazování. Chci provést nahrazení textu v souborech, vyhledávám pomocí regulárních výrazů. Uvedu tedy regulární výraz a text, kterým se má nahradit. Potud v pohodě. Jenže, před provedením se chci ujistit, jestli bude výsledek OK. Eclipse mi nabídne náhled, jak budou úpravy vypadat. NetBeans nikoli.
  6. Když v komentáři zdrojového kódu uvedu „TODO:“, oba nástroje jej pochopí jako úkol ke splnění. Eclipse ale navíc u čísla řádku zobrazí malou ikonku; na první pohled je vidět, že se musí něco dodělat. NetBeans nezobrazí nic.
  7. Mám proměnnou $test = 5;. Když na ni v Eclipse klepnu kurzorem následovaným klávesovou zkratkou ctrl+shift+j, vytvoří se nad ní komentář, kde k ní uvedu, co potřebuji. NetBeans to asi neumí (jen ve třídě po zahájení psaní komentáře /** a enteru).
  8. V NetBeans mi nefunguje posun horizontálního posuvníku při naklonění kolečka myši doleva/doprava.
  9. Když v Eclipse PDT napíši: <?, tak automaticky dopní php ?>. NetBeans bohužel nedoplní nic.

Napadá váš řešení? Pokud NetBeans výše uvedené chování zvládá, dejte, prosím, vědět do komentářů pod článkem.

Otevření okna pomocí JavaScriptu a úprava obsahu rodičovského okna

by Zdeněk Večeřa 0 Comments

Někdy můžete chtít otevřit nové okno (potomka) a na jeho základě upravit obsah v rodičovském okně – to, které vyvolalo otevření potomka. Docílíte toho kouskem kódu v JavaScriptu, který můžete zavolat například v události onclick (provede se po klepnutí).

Otevření nového okna pomocí JavaScriptu

Okno JavaScriptem můžete otevřít následovně:

<a href="#" onClick=
"window.open('nejaky_soubor.php', 'mywindow',
'width=970, height=700')">
Otevřít nové okno</a>

Snadno můžete nastavovat i parametry otevřeného okna. Nemá smysl zde všechny možnosti vypisovat; rovnou vás odkážu na pageresource.com.

Vydán CKEditor 3.0: Nová generace wysiwyg editoru FCKeditor je tu

CKEditor, FCKEditor

Oblíbil jsem si kvalitní FCKeditor, se kterým je psaní a úprava textů v administraci hračka. Přestože bych mu několik drobností vytknul, tak největší problém vidím v jeho rychlosti. Ano, je rychlý, ale jeho načtení a zobrazení by mohlo být rychlejší.

FCKeditor a jeho 6 let úspěchu

Ani se to nezdá, ale FCKeditor je vyvíjen už šest let a za tu dobu si získal velkou oblibu nejen mezi uživateli, ale i vývojáři. Troufám si tvrdit, že spolu s TinyMCE patří mezi nejoblíbenější a nejznámější open-source editory.

CKEditor 3.0: Nová generace přichází

Šest let stáří FCKeditoru je mírně znát, proto vývojáři poslední téměř dva roky pilně pracovali na další verzi, která získala nové jméno: CKeditor.

Prakticky vzato, CKeditor je pokračování FCKeditoru, takže se nenechte zmást, že by zde byl další produkt.

Proč došlo k přejmenování?

Vývojáři se pro změnu názvu rozhodli kvůli jeho problémové výslovnosti v anglicky mluvících zemích.

Jak na to: SQL injection, magic_quotes_gpc, addslashes() a stripslashes()

V názvu článku jsem vyjmenoval slova, která jsou strašákem nejednoho PHP programátora. Strašák to je ale pouze uměle vytvořený, vycházející z neznalosti problematiky.

Dost často se ve spojení s SQL injection (typ útoku hackera) zmiňuje PHP konstanta magic_quotes_gpc. Prý, že pokud je zapnutá, tak se dá SQL injection předejít. A víte, že od PHP 5.3 bude standardně magic_quotes_gpc vypnutá?

Znamená to, že poté budou SQL dotazy napadnutelné pomocí SQL injection? Ale vůbec ne.

Konstanta magic_quotes_gpc totiž s ochranou SQL injection nemá v podstatě nic společného. Pouze zde existuje průsečík v možnosti jejího využití. Proto ji neznalí programátoři začali přisuzovat větší váhu, než má. Váha magic_quotes_gpc je samozřejmě nulová, zvláštně, když od PHP 5.3 bude vypnutá a v PHP 6 zanikne úplně.

Vysvětleme si tedy, oč jde. SQL injection je vážný problém.

mPDF: Snadný export HTML stránek do PDF

by Zdeněk Večeřa 7 Comments

FDFDoposud jsem neznal nějaký snadný a efektivní způsob exportu HTML stránek do PDF formátu, za pomocí PHP. Ano, existuje PHP třída FPDF, ale něco v ní vytvořit mi zrovna jako efektivní nepřijde. Viz kus kódu. Pokud byste FPDF přece jen použili, mrkněte k Zaachimu na blog. Radí tam, jak na české znaky.

Nad touto třídou existuje nástavba, troufám si říct „naštěstí“. Jmenuje se mPDF a nabízí přímý export z HTML stránek do PDF za podpory UTF-8 kódování, tedy s bezproblémovou interpretací českých znaků.