<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>IMS Blog - blog o modernom programovaní od Tibor Piňo</title>
	
	<link>http://ims.rockretail.com</link>
	<description>Just another WordPress weblog</description>
	<lastBuildDate>Thu, 18 Feb 2010 10:11:04 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/imsblog" /><feedburner:info uri="imsblog" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>Viacjazyčný web v CakePHP – dynamický obsah</title>
		<link>http://feedproxy.google.com/~r/imsblog/~3/-jNJUD2EFqA/</link>
		<comments>http://ims.rockretail.com/2010/02/06/viacjazycny-web-v-cakephp-dynamicky-obsah/#comments</comments>
		<pubDate>Sat, 06 Feb 2010 15:29:30 +0000</pubDate>
		<dc:creator>Tibor Piňo</dc:creator>
				<category><![CDATA[Tipy a triky]]></category>

		<guid isPermaLink="false">http://ims.rockretail.com/?p=215</guid>
		<description><![CDATA[V dnešnom článku si ukážeme ako jednoducho pomocou CakePHP vytvoriť viacjazyčný web, ktorý okrem prekladu statického obsahu, ako sú rôzne popisky a doplňujúce informácie, dokáže efektívne pracovať aj s prekladom obsahu uloženého v databáze.
Ako prekladať statický obsah v CakePHP sme si ukázali v článku Viacjazyčný web v CakePHP. I keď je už článok pomerne starý [...]]]></description>
			<content:encoded><![CDATA[<p>V dnešnom článku si ukážeme ako jednoducho pomocou CakePHP vytvoriť viacjazyčný web, ktorý okrem prekladu statického obsahu, ako sú rôzne popisky a doplňujúce informácie, dokáže efektívne pracovať aj s prekladom obsahu uloženého v databáze.<span id="more-215"></span></p>
<p>Ako prekladať statický obsah v CakePHP sme si ukázali v článku <a href="/2007/09/24/viacjazycny-web-v-cakephp/">Viacjazyčný web v CakePHP</a>. I keď je už článok pomerne starý a mnohé veci sa zjednodušili, podstata stále ostáva rovnaká a určite vám odporúčam pred ďalším čítaním najprv prečítať tento článok.</p>
<h2>Trieda TranslateBehavior</h2>
<p>Mozgom celej viacjazyčnej podpory v CakePHP je trieda <a href="http://api.cakephp.org/class/translate-behavior">TranslateBehavior</a>, ktorá sa stará u ukladanie, aktualizáciu a získavanie viacjazyčného obsahu z databázy. Poďme si v krátkosti predstaviť celý mechanizmus práce s viacjazyčným obsahom. Skutočná sila tohto riešenie spočíva v tom, že trieda TranslateBehaviour funguje ako <a href="http://book.cakephp.org/view/495/Core-Behaviors">behavior</a>, čiže magicky pridáva funkcionalitu do vašich existujúcich modelov. To okrem iného znamená, že vôbec nemusíte meniť vaše už existujúce databázové tabuľky.</p>
<p>Princíp fungovania je nasledovný. Predstavme si, že chceme prekladať články v našom systéme. Pridáme teda k nášmu modelu <em>Article </em>behavior <em>TranslateBehavior</em> a určíme ktoré atribúty z tabuľky článkov sa majú prekladať. <em>TranslateBehaviour</em> nám bude pri každom uložení článku do databázy ukladať jazykové mutácie atribútov, ktoré sme určili na preklad, do špeciálnej tabuľky. Čiže od tohto momentu budeme mať k našemu článku dostupné aj preložené jednotlivé časti.</p>
<p>Dosť bolo teórie, poďme sa pozrieť na implementáciu celého riešenia pomocou TranslateBehavior.</p>
<h2>Implementácia</h2>
<p>Predstavme si situáciu, že máme fungujúci systém článkov a chceme do tohto systému pridať podporu pre viacjazyčné články. Články máme uložené v tabuľke <em>articles</em> a o dáta z tejto tabuľky sa stará model <em>Articles</em>.</p>
<h3>1. krok &#8211; vytvorenie tabuľky i18n</h3>
<p>Ako sme si už spomenuli vyššie, TranslateBehavior funguje ako nadstavba k už fungujúcim modelom a preto prvým a nevyhnutným krokom je vytvorenie tabuľky <em>i18n</em> v našej databáze, do ktorej sa bude ukladať viacjazyčný obsah. Učiniť tak môžeme spustením skriptu v našej databáze, ktorý nájdeme v adresári <em>app/config/sql/i18n.sql. </em>Po spustení tohto skriptu sa v databáze vytvorí tabuľka, ktorá má nasledovnú štruktúru</p>
<pre><code>
id int(10) NOT NULL auto_increment,
locale varchar(6) NOT NULL,
model varchar(255) NOT NULL,
foreign_key int(10) NOT NULL,
field varchar(255) NOT NULL,
content mediumtext
</code></pre>
<p>Akú úlohu plnia jednotlivé atribúty v tejto tabuľke si vysvetlíme neskôr na konkrétnom príklade.</p>
<h3>2. krok &#8211; pridanie TranslateBehavior k modelu</h3>
<pre><code>&lt;?php
class Article extends AppModel {
	public $actsAs = array(
		'Translate'
	);
}
?&gt;</code></pre>
<p>TranslateBehaviour sa pridáva k modelu ako každá iná behavior funkcionalita a to direktívou <em>$actAs</em>. Po týchto dvoch krokoch máme <em>TranslateBehavior</em> nainštalovaný.</p>
<h3>3. krok &#8211; prekladáme dynamický obsah</h3>
<p>Zatiaľ sme síce určili, že by sme chceli prekladať naše články, ale nikde sme neurčili, ktoré časti nášho článku chceme prekladať. V našom prípade tak urobíme pre časti <em>title</em> a <em>text </em>a to následovne</p>
<pre><code>&lt;?php
class Article extends AppModel {
	public $actsAs = array(
		'Translate' =&gt; array(
			'title' =&gt; 'title', 'text' =&gt; 'text'
		)
	);
}
?&gt;</code></pre>
<p>Nastavenie modelu máme týmto hotové a môžeme sa pustiť do implementácie <em>view</em> časti. Naše súbory pre vkladanie článkov by vyzerali pred použitím <em>TranslateBehavior</em> následovne</p>
<pre><code>&lt;? echo $form-&gt;input('Article.title'); ?&gt;
&lt;? echo $form-&gt;input('Article.text',array('cols' =&gt;'10','rows'=&gt;'10','type'=&gt;'textarea')); ?&gt;</code></pre>
<p>Vyššie uvedený kód je štandardný pre vytvorenie input prvkov a preto ho nie je treba bližšie špecifikovať. Poďme sa pozrieť, ako bude vypadať rovnaký kód, ktorý nám umožní vkladať niekoľko jazykových verzií pre input <em>title</em> ako i pre input <em>text</em></p>
<pre><code>&lt;? echo $form-&gt;input('Article.title.slo'); ?&gt;
&lt;? echo $form-&gt;input('Article.title.eng'); ?&gt;

&lt;? echo $form-&gt;input('Article.text.slo',array('cols' =&gt; '10','rows'=&gt;'10','type'=&gt;'textarea')); ?&gt;
&lt;? echo $form-&gt;input('Article.text.eng', array('cols' =&gt; '10','rows'=&gt;'10','type'=&gt;'textarea')); ?&gt;</code></pre>
<p>Po napísaní článku a jeho viacjazyčných mutácií môžeme článok uložiť obvyklým spôsobom volaním metódy <em>$this-&gt;Article-&gt;sanve()</em> z controlleru <em>ArticlesController</em><em>.</em> To znamená, že v prípade controlleru nie je potrebné pri ukladaní článku vykonávať žiadne zmeny.</p>
<p>Poďme sa pozrieť, ako bude vypadať naša databáza po uložení takéhoto článku a čo sa v nej zmenilo. Predstavme si, že sme odoslali formulár s hodnotami <em>titulok sk, text sk</em> pre slovenskú mutáciu a<em> title en</em> <em>a text en</em> pre anglickú mutáciu. Naše tabuľku budú vypadať následovne</p>
<p><strong>tabuľka articles</strong></p>
<pre><code>+----+-------------+--------------------+--------+---------------------+
| id | title       | text               | user   | created             |
+----+-------------+--------------------+--------+---------------------+
|  1 | titulok sk  | text sk            | Linus  | 2010-02-06          |
+----+-------------+--------------------+--------+---------------------+</code></pre>
<p><strong>tabuľka i18n</strong></p>
<pre><code>+----+--------+-------+---------+-------------+------------+
| id | locale | field | model   | foreign_key | content    |
+----+--------+-------+---------+-------------+------------+
|  1 | slo    | title | Article |           1 | titulok sk |
|  2 | eng    | title | Article |           1 | title en   |
|  3 | slo    | text  | Article |           1 | text sk    |
|  4 | eng    | text  | Article |           1 | text en    |
+----+--------+-------+---------+-------------+------------+</code></pre>
<p>Ako môžeme vidieť <em>TranslateBehavior</em> funguje podľa očakávania a ako bolo povedané, k nášmu článku udržuje v špeciálnej tabuľke <em>i18n</em> jazykové mutácie. Čo znamenajú jednotlivé stĺpce tabuľky? Stĺpec <em>locale</em> ukladá označenie jazykovej mutácie daného riadku, hodnoty pochádzajú z triedy <a href="http://api.cakephp.org/class/l10n">l10n</a> z premennej <em>$__l10nMap</em> a rovnako sa používajú aj vo view pre jednotlivé input prvky<em>. </em>Stĺpec <em>field</em> označuje názov  atribútu z pôvodnej tabuľky články. Čiže v našom prípade sa jedná o <em>title</em> a <em>text</em>, ktoré pôvodne nájdeme v tabuľke a<em>rticles</em>. Stĺpec <em>foreign_key</em> predstavuje cudzí kľúč z tabuľky a<em>rticles::id</em>. Stĺpec <em>content</em> obsahuje samotnú jazykovú mutáciu. Myslím si, že viac nie je potrebné vysvetľovať celý mechanizmus a môžeme rovno prejsť na zobrazovanie jednotlivých jazykových mutácií.</p>
<h3>4. krok &#8211; zobrazujeme viacjazyčný obsah</h3>
<p>Prvým krokom pre zobrazenie viacjazyčného obsahu je nastavenie routovacích pravidiel tak, aby sme mohli v našej aplikácii prepínať medzi jednotlivými jazykovými verziami. Pri tomto sa budeme riadiť pravidlom, že zobrazenie jazykovej mutácie obsahu je úplne nezávislé na užívateľových nastaveniach &#8211; čiže aktuálny jazyk aplikácie budeme určovať podľa URL a nie podľa hodnôt uložených buď v cookies alebo v sessions.</p>
<h4>Routovanie</h4>
<p>Rozhodli sme, že jazyk aplikácie bude určovať URL. Formát URL bude nasledovný <em>http://www.tvoja-adresa.sk/jazyk/clanok/id</em></p>
<p>Routavacie pravidlo bude vyzerať následovne</p>
<pre><code>Router::connect('/:lang',array('controller'=&gt;'pages','action'=&gt;'display','home'),array('lang' =&gt; 'sk|en'));
Router::connect('/:lang/clanok/:id',array('controller'=&gt;'articles','action'=&gt;'view'),array('pass'=&gt;array('id'),'lang' =&gt; 'sk|en'));</code></pre>
<h4>Link helper</h4>
<p>Po nastavení routovacieho pravidla budeme potrebovať link helper, ktorý nám ku každému odkazu pridá aktuálny jazyk. Možno sa pýtate, prečo potrebujeme helper a nebude priamo používať metódu <em>$html-&gt;link()</em> následovne</p>
<pre><code>&lt;? $html-&gt;link(__('o nás',true),array('controller'=&gt;'articles','action'=&gt;'view','id'=&gt;'o-nas','lang'=&gt;$language)); ?&gt;</code></pre>
<p>Je to z dôvodu, aby sme nemuseli zakaždým posielať tejto metóde hodnotu aktuálneho jazyka a navyše sa v budúcnosti môže náš kód zmeniť a tým by sme museli ručne upravovať všetky odkazy. Náš helper si teda nazveme <em>LangHelper</em> a uložíme ho do súboru <em>app/view/helpers/lang_helper.php</em></p>
<pre><code>&lt;?
class LangHelper extends AppHelper {
    public $helpers = array('Html');

    public function link( $title, $url = NULL, $htmlAttributes = array ( ), $confirmMessage = false, $escapeTitle = true ) {
        if(@$this-&gt;params['lang']) {
            $url['lang'] = $this-&gt;params['lang'];
        } else {
            $url['lang'] = 'sk';
        }

        return $this-&gt;Html-&gt;link($title,$url,$htmlAttributes,$confirmMessage,$escapeTitle);
    }
}
?&gt;</code></pre>
<p>Následne môžeme vytovoriť odkaz na náš článok</p>
<pre><code>&lt;? echo $lang-&gt;link(__('o nás',true),array('controller'=&gt;'articles','action'=&gt;'view','id'=&gt;'1')); ?&gt;</code></pre>
<p>Vyššie uvedený odkaz nám vygeneruje URL v tvare <em>http://www.tvoja-adresa.sk/sk/clanok/1</em> za predpokladu, že aktuálny jazyk aplikácie je sk. Ako je možné, že sa vygenerovala adresa práve v tomto tvare? Je to z dôvodu, že CakePHP automaticky pozná podľa nastavených routovacích pravidiel, aký odkaz na akú URL chceme vytvoriť.</p>
<h4>Controller a prepínanie jazyka</h4>
<p>Po nastavení routovacích pravidiel sa môžeme pustiť do samotného nastavenia jazyka v našej aplikácii. Jazyk sa nastavuje direktívou <em>Configure::write(&#8216;Config.language&#8217;,$locale)</em> kde premenná <em>$locale </em>predstavuje hodnotu z triedy <em><a href="http://api.cakephp.org/class/l10n">l10n</a></em> a jej premennej <em>$__l10nCatalog</em>. Nastavenie budeme vykonávať v <em>AppController</em> v metóde <em>beforeFilter()</em></p>
<pre><code>&lt;?
class AppController extends Controller {
    public function beforeFilter() {
        $this-&gt;set_language();
    }

    private function set_language() {
        $code = @$this-&gt;params['lang'];
        if(@$code) {
            App::import('l10n');
            $l10n = new L10n();
            $language = $l10n-&gt;catalog($code);
            $locale = $language['locale'];
        } else {
            $locale = 'slo';
        }
        Configure::write('Config.language',$locale);
    }
}
?&gt;</code></pre>
<p>Následne môžeme v našej aplikácii prepínať jazyk pomocou URL <em>http://www.vasa-adresa.sk/sk</em> pre slovenský jazyk alebo <em>http://www.vasa-adresa.sk/en</em> pre anglický jazyk</p>
<h4>Zobrazujeme článok</h4>
<p>Článok môžeme načítať a následne zobraziť štandardným spôsobom, ako ho poznáme z bežného používania. V <em>ArticlesController</em> si načítame článok</p>
<pre><code>
public function view($seo_link = null) {
     $article = $this-&gt;Article-&gt;findBySeo_link($seo_link);
     $this-&gt;set(compact("article"));
}
</code></pre>
<p>A následne ho môžeme zobraziť vo view</p>
<pre><code>&lt;article class="article"&gt;
    &lt;h1&gt;&lt;? echo $article['Article']['title']; ?&gt;&lt;/h1&gt;
    &lt;div&gt;&lt;? echo $article['Article']['text']; ?&gt;&lt;/div&gt;
&lt;/article&gt;
</code></pre>
<p>Ako ste si určite všimli, nikde sme pri zobrazení neurčovali aká jazyková mutácia sa má zobrazovať. CakePHP to robí v tomto prípade automaticky a z databázy vyťahuje jazykovú mutáciu podľa direktívy <em>Configure::write(&#8216;Config.language&#8217;,$locale)</em> a premenná <em>$article</em> má tvar ako v prípade, keď sme <em>TranslateBehavior</em> nepoužívali, avšak s tým rozdielom, že vždy obsahuje jazykovú mutáciu podľa aktuálne nastaveného jazyka.</p>
<h2>Načo si dať pozor</h2>
<p>Narazil som na menšiu komplikáciu pri editácii článku. Keď sa pokúšate vybrať všetky jazykové mutácie prostredníctvom jedného SQL dotazu, CakePHP nám vráti dáta v nasledovnom formáte</p>
<pre><code>Array
(
    [Article] =&gt; Array
        (
            [id] =&gt; 1
            [title] =&gt; titulok sk
            [text] =&gt; text sk
            [locale] =&gt; slo
        )

    [title] =&gt; Array
        (
            [0] =&gt; Array
                (
                    [id] =&gt; 44
                    [locale] =&gt; eng
                    [model] =&gt; Article
                    [foreign_key] =&gt; 12
                    [field] =&gt; title
                    [content] =&gt; title en
                )
            [1] =&gt; Array
                (
                    [id] =&gt; 43
                    [locale] =&gt; slo
                    [model] =&gt; Article
                    [foreign_key] =&gt; 12
                    [field] =&gt; title
                    [content] =&gt; titulok sk
                )
        )
    [text] =&gt; Array
        (
            [0] =&gt; Array
                (
                    [id] =&gt; 47
                    [locale] =&gt; eng
                    [model] =&gt; Article
                    [foreign_key] =&gt; 12
                    [field] =&gt; text
                    [content] =&gt; text en
                )
            [1] =&gt; Array
                (
                    [id] =&gt; 48
                    [locale] =&gt; slo
                    [model] =&gt; Article
                    [foreign_key] =&gt; 12
                    [field] =&gt; text
                    [content] =&gt; text sk
                )

        )
)</code></pre>
<p>To znamená, že jazykové mutácie sa nachádzajú v premenných <em>$article['title']</em> a <em>$</em><em>article['text']</em>, preto ich treba ešte preformátovať do formátu <em>$article['Article']['title']['jazyk']</em>. Môžeme to urobiť následovne</p>
<pre><code>$this-&gt;data = $this-&gt;Article-&gt;findById($id);
$title = array();
$text = array();

foreach ($this-&gt;data['title'] as $item) {
     $title[$item['locale']] = $item['content'];
}
foreach ($this-&gt;data['text'] as $item) {
     $text[$item['locale']] = $item['content'];
}
$this-&gt;data['Article']['title'] = $title;
$this-&gt;data['Article']['text'] = $text;</code></pre>
<p>Našiel som nejaké návody, žeby sa pri editácii mala nastaviť premenná <em>locale</em> ako pole,  ktoré bude obsahovať zoznam všetkých jazykov a to následovne <em>Configure::write(&#8216;Config.language&#8217;,array(&#8217;slo&#8217;,'eng&#8217;))</em> avšak mne tento spôsob nefungoval. Neviem, možno je to len moja neznalosť, možno bol problém niekde inde.</p>
<p>Týmto je náš článok u konca. Myslím si, že CakePHP ponúka elegantný spôsob ako sa vyrovnať s viacjazyčným obsahom a ako v mnohých prípadoch, nám dokáže ušetriť množstvo času a práce. Rád uvítam vaše nápady a pripomienky v diskusii k článku.</p>
<img src="http://feeds.feedburner.com/~r/imsblog/~4/-jNJUD2EFqA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ims.rockretail.com/2010/02/06/viacjazycny-web-v-cakephp-dynamicky-obsah/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://ims.rockretail.com/2010/02/06/viacjazycny-web-v-cakephp-dynamicky-obsah/</feedburner:origLink></item>
		<item>
		<title>www.ie6nomore.com – ako ukončiť používanie Internet Explorer 6</title>
		<link>http://feedproxy.google.com/~r/imsblog/~3/sd4Rz3I3pSI/</link>
		<comments>http://ims.rockretail.com/2010/02/03/www-ie6nomore-com-ako-ukoncit-pouzivanie-internet-explorer-6/#comments</comments>
		<pubDate>Wed, 03 Feb 2010 16:35:06 +0000</pubDate>
		<dc:creator>Tibor Piňo</dc:creator>
				<category><![CDATA[Články]]></category>

		<guid isPermaLink="false">http://ims.rockretail.com/?p=207</guid>
		<description><![CDATA[V poslednej dobe sa opäť začalo veľmi časťo diskutovať na tému podpory zastaralého internetového prehliadača Internet Explorer 6.
Google končí s podporou IE6
Všetko sa to začalo po tom, keď google oznámil v jednom blogovom zápise, že niektoré z jeho hlavných služieb prestanú v blízkej budúcnosti podporovať prehliadač Internet Explorer 6. Niet sa vôbec čomu čudovať, pretože [...]]]></description>
			<content:encoded><![CDATA[<p>V poslednej dobe sa opäť začalo veľmi časťo diskutovať na tému podpory zastaralého internetového prehliadača Internet Explorer 6.<span id="more-207"></span></p>
<h2>Google končí s podporou IE6</h2>
<p>Všetko sa to začalo po tom, keď google <a href="http://googleenterprise.blogspot.com/2010/01/modern-browsers-for-modern-applications.html">oznámil</a> v jednom blogovom zápise, že niektoré z jeho hlavných služieb prestanú v blízkej budúcnosti podporovať prehliadač Internet Explorer 6. Niet sa vôbec čomu čudovať, pretože IE6 je veľmi starý prehliadač, ktorý je zastaralý, nebezpečný, plných chýb a nepodporuje webové štandardy. Skôr ma prekvapuje, že k takémuto kroku sa Google odvážil až teraz a v podstate ho k tomu prinútili nepríjemné okolnosti (údajne nedávne útoky, ktoré boli smerované na služby Google, boli vykonávané práve z IE6 a využívali bezpečnostnú chybu v tomto prehliadači). Je len dobré, že takýto veľký a významný webový hráč sa rozhodol pre ukončenie podpory, a podnietil ostatné firmy a dokonca aj vlády významných štátov uvažovať o podobnom kroku.</p>
<h2>www.ie6nomore.com</h2>
<p>Na podporu tejto myšlienky bola spustená aj webová prezentácia <a href="www.ie6nomore.com">www.ie6nomore.com</a>, ktorej názov jasne hovorí o jej zameraní. Jej hlavným cieľom je podporiť ukončenie používania IE6. Na stránke nájdete niekoľko málo informácií, prečo by sa IE6 nemal vôbec používať, môžete na nej nájsť aj zoznam firiem, ktoré sa pridali k tejto iniciatíve.</p>
<h2>IMS blog a podpora IE6</h2>
<p>Na tomto blogu som sa rozhodol nepodporovať IE6 spolu so spustením novej témy. Bližšie podrobností nájdete <a href="/2009/11/09/redizajn-ims-blogu/">v zápisku o novej téme</a>. O správnosti tohto rozhodnutia svedčia aj štatistiky, kde len veľmi malé percento návštevníkov používa samotný prehliadač Internet Explorer a ešte menej jeho zastaralú verziu IE6.</p>
<p><a href="http://ims.rockretail.com/wp-content/uploads/2010/02/visitors-browser.png"><img class="alignnone size-medium wp-image-209" title="visitors-browser" src="http://ims.rockretail.com/wp-content/uploads/2010/02/visitors-browser-300x101.png" alt="visitors-browser" width="300" height="101" /></a></p>
<h2>Pridajte sa aj vy</h2>
<p>Na stránke www.ie6nomore.com môžete nájsť niekoľko možností, ako sa môžete zapojiť do tejto iniciatívy. Prvý krok predstavuje <a href="http://www.ie6nomore.com/code-samples.html">vloženie kódu ie6nomore</a> na vašu stránku.  Následne ak ste právnícka osoba, môžete poslať email priamo na adresu david+ie6nm@weebly.com s logom vašej firmy a neskôr sa vaše logo objaví v zozname týchto firiem.</p>
<p>Myslím si, že takmer každý webový vývojár sa stretol s množstvom problémov, ktoré musel riešiť len kvôli spätnej podpore IE6. Ja osobne pri externých projektoch pre svojich zákazníkov stále podporujem IE6, ale je to len z dôvodu, že mnohí z nich stále tento prehliadač používajú, aj napriek mojim upozorneniam, a v mnohých prípadoch ju aj vyžadujú. Musím však s ťažkým povzdychom dodať, že táto podpora je čoraz náročnejšia a v mnohých prípadoch je funkcionalita pre IE6 značne obmedzená.</p>
Note: There is a poll embedded within this post, please visit the site to participate in this post's poll.
<p>Čo si vy myslíte o tejto iniciatíve?</p>
<img src="http://feeds.feedburner.com/~r/imsblog/~4/sd4Rz3I3pSI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ims.rockretail.com/2010/02/03/www-ie6nomore-com-ako-ukoncit-pouzivanie-internet-explorer-6/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://ims.rockretail.com/2010/02/03/www-ie6nomore-com-ako-ukoncit-pouzivanie-internet-explorer-6/</feedburner:origLink></item>
		<item>
		<title>CakePHP 1.3 beta</title>
		<link>http://feedproxy.google.com/~r/imsblog/~3/ldvyNKYyuHM/</link>
		<comments>http://ims.rockretail.com/2010/01/21/cakephp-1-3-beta/#comments</comments>
		<pubDate>Thu, 21 Jan 2010 22:00:25 +0000</pubDate>
		<dc:creator>Tibor Piňo</dc:creator>
				<category><![CDATA[Tipy a triky]]></category>

		<guid isPermaLink="false">http://ims.rockretail.com/?p=196</guid>
		<description><![CDATA[CakePHP pomaly kráča k ostrému vydaniu verzie 1.3.Vo verzii 1.3 beta bola uzavretých takmer 43 tiketov a vytvorených viac než 600 commitov, čo svedčí o intenzívnej práci na tejto verzii. Táto verzia prináša množstvo noviniek a vylepšení sa dočkala väčšina základných pilierov CakePHP.
Podrobné zhrnutie nových vlastností nájdete na adrese http://cakephp.lighthouseapp.com/projects/42648/13-new-features
Migračnú príručku nájdete na adrese http://cakephp.lighthouseapp.com/projects/42648/13-migration-guide
]]></description>
			<content:encoded><![CDATA[<p>CakePHP pomaly kráča k ostrému vydaniu verzie 1.3.<span id="more-196"></span>Vo <a href="http://bakery.cakephp.org/articles/view/cakephp-1-3-0-beta-has-landed">verzii 1.3 beta</a> bola uzavretých takmer 43 tiketov a vytvorených viac než 600 commitov, čo svedčí o intenzívnej práci na tejto verzii. Táto verzia prináša množstvo noviniek a vylepšení sa dočkala väčšina základných pilierov CakePHP.</p>
<p>Podrobné zhrnutie nových vlastností nájdete na adrese <a href="http://cakephp.lighthouseapp.com/projects/42648/13-new-features">http://cakephp.lighthouseapp.com/projects/42648/13-new-features</a></p>
<p>Migračnú príručku nájdete na adrese <a href="http://cakephp.lighthouseapp.com/projects/42648/13-migration-guide">http://cakephp.lighthouseapp.com/projects/42648/13-migration-guide</a></p>
<img src="http://feeds.feedburner.com/~r/imsblog/~4/ldvyNKYyuHM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ims.rockretail.com/2010/01/21/cakephp-1-3-beta/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://ims.rockretail.com/2010/01/21/cakephp-1-3-beta/</feedburner:origLink></item>
		<item>
		<title>Fantom CMS 0.5 alfa 1</title>
		<link>http://feedproxy.google.com/~r/imsblog/~3/GNb5WqRuGds/</link>
		<comments>http://ims.rockretail.com/2009/12/01/fantom-cms-0-5-alfa/#comments</comments>
		<pubDate>Tue, 01 Dec 2009 14:59:47 +0000</pubDate>
		<dc:creator>Tibor Piňo</dc:creator>
				<category><![CDATA[Fantom CMS]]></category>
		<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://ims.rockretail.com/?p=186</guid>
		<description><![CDATA[V diskusiách mi bola niekoľkokrát položená otázka ohľadne budúcnosti Fantom CMS a prípadných nových verzií. Rád by som týmto krátkym článkom priblížil aktuálnu situáciu ohľadne vývoja Fantom CMS. V súčasnosti je aktuálna vývojová verzia Fantom CMS 0.5, avšak na oficiálnych stránkach projektu je ako posledná vydaná verzia uvedená Fantom CMS 0.4.1, ktorá bohužiaľ obsahuje chybu, [...]]]></description>
			<content:encoded><![CDATA[<p>V diskusiách mi bola niekoľkokrát položená otázka ohľadne budúcnosti <a href="http://code.google.com/p/fantom/">Fantom CMS</a> a prípadných nových verzií. Rád by som týmto krátkym článkom priblížil aktuálnu situáciu ohľadne vývoja Fantom CMS. <span id="more-186"></span>V súčasnosti je aktuálna vývojová verzia Fantom CMS 0.5, avšak na oficiálnych stránkach projektu je ako posledná vydaná verzia uvedená <a href="http://fantom.googlecode.com/files/fantom_0.4.1.tar.bz2">Fantom CMS 0.4.1</a>, ktorá bohužiaľ obsahuje chybu, kvôli ktorej sa nedá nainštalovať databáza potrebná pre správne fungovanie.</p>
<p>Preto som sa rozhodol vydať vývojovú verziu Fantom CMS 0.5 alfa 1. Táto verzia prináša množstvo zmien, hlavne lepšiu integráciu s vstavanými nástrojmi CakePHP a medzi najväčšie zmeny patrí prepísanie kódu do PHP5. Jedná sa však stále o vývojovú verziu, ktorá môže obsahovať prípadné chyby.</p>
<p>Dúfam, že vám nová verzia Fantom CMS poslúži ako dobrá inšpirácia pri vývoji v CakePHP.</p>
<p><a href="http://fantom.googlecode.com/files/fantom-0-5-alfa1.zip">Fantom CMS 0.5 alfa 1</a></p>
<img src="http://feeds.feedburner.com/~r/imsblog/~4/GNb5WqRuGds" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ims.rockretail.com/2009/12/01/fantom-cms-0-5-alfa/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		<feedburner:origLink>http://ims.rockretail.com/2009/12/01/fantom-cms-0-5-alfa/</feedburner:origLink></item>
		<item>
		<title>Debug Kit – pokročilé debugovanie v CakePHP</title>
		<link>http://feedproxy.google.com/~r/imsblog/~3/TwbUAv6SfXY/</link>
		<comments>http://ims.rockretail.com/2009/11/19/debug-kit-pokrocile-debugovanie-v-cakephp/#comments</comments>
		<pubDate>Thu, 19 Nov 2009 13:26:09 +0000</pubDate>
		<dc:creator>Tibor Piňo</dc:creator>
				<category><![CDATA[Tipy a triky]]></category>
		<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[debug]]></category>
		<category><![CDATA[Debug Kit]]></category>
		<category><![CDATA[firebug]]></category>
		<category><![CDATA[FirePHP]]></category>

		<guid isPermaLink="false">http://ims.rockretail.com/?p=167</guid>
		<description><![CDATA[Debugovacie nástroje a samotné debugovanie sú dôležitou súčasťou každého vývoja. V dnešnom článku si predstavíme pokročilý debugovací nástroj Debug Kit.
Poďme si najprv priblížiť jednotlivé vlastnosti Debug Kit a následne sa pozrieme na jeho inštaláciu a integráciu s CakePHP aplikáciou.
Debug Kit
Debug Kit predstavuje pokročilý debugovací nástroj, ktorý ponúka množstvo informácií o našej aplikácii a jej stave. [...]]]></description>
			<content:encoded><![CDATA[<p>Debugovacie nástroje a samotné debugovanie sú dôležitou súčasťou každého vývoja. V dnešnom článku si predstavíme pokročilý debugovací nástroj Debug Kit.<span id="more-167"></span></p>
<p>Poďme si najprv priblížiť jednotlivé vlastnosti Debug Kit a následne sa pozrieme na jeho inštaláciu a integráciu s CakePHP aplikáciou.</p>
<h2>Debug Kit</h2>
<p><a href="http://thechaw.com/debug_kit" target="_blank">Debug Kit</a> predstavuje pokročilý debugovací nástroj, ktorý ponúka množstvo informácií o našej aplikácii a jej stave. Debug Kit dokáže zobraziť podrobné informácie o session, sql, request, timer, premenných atď. Poďme sa teda bližšie pozrieť na jednotlivé vlastnosti tohto nástroja.</p>
<h2>Panely</h2>
<p>Debug Kit zobrazuje vyššie spomínané debug informácie v paneloch. Na nasledujúcom obrázku môžeme vidieť integráciu Debug Kit do stránky a taktiež základné panely, ktoré ponúka Debug Kit v základnej inštalácii.</p>
<p><a href="http://ims.rockretail.com/wp-content/uploads/2009/11/debug-kit-1.png"></a><a href="http://ims.rockretail.com/wp-content/uploads/2009/11/debug-kit-2.png"><img class="alignnone size-full wp-image-169" title="debug-kit-2" src="http://ims.rockretail.com/wp-content/uploads/2009/11/debug-kit-2.png" alt="debug-kit-2" width="680" height="88" /></a></p>
<p>Medzi základné panely patria: History, Session, Request, Sql Log, Timer, Log, Variables. Poďme si teda bližšie priblížiť jednotlivé možnosti panelov.</p>
<h3>Panel History</h3>
<p>Panel History zobrazuje informácie o posledných requestoch zobrazením url danej stránky.</p>
<p><a href="http://ims.rockretail.com/wp-content/uploads/2009/11/debug-kit-1.png"><img class="alignnone size-full wp-image-168" title="debug-kit-1" src="http://ims.rockretail.com/wp-content/uploads/2009/11/debug-kit-1.png" alt="debug-kit-1" width="680" height="157" /></a></p>
<h3>Panel Session</h3>
<p>Panel Session zobrazuje podrobné informácie o uložených Session našou aplikáciou.</p>
<p><a href="http://ims.rockretail.com/wp-content/uploads/2009/11/debug-kit-3.png"><img class="alignnone size-full wp-image-170" title="debug-kit-3" src="http://ims.rockretail.com/wp-content/uploads/2009/11/debug-kit-3.png" alt="debug-kit-3" width="680" height="120" /></a></p>
<h3>Panel Request</h3>
<p>Panel Request zobrazuje informácie o aktuálnom requeste. Medzi informácie patria GET, POST požiadavky, Cake url parametre (v aplikácii dostupné v poli <em>$this-&gt;params</em>), Cookie informácie a podrobné informácie o použitých routovacích pravidlách.</p>
<p><a href="http://ims.rockretail.com/wp-content/uploads/2009/11/debug-kit-4.png"><img class="alignnone size-full wp-image-171" title="debug-kit-4" src="http://ims.rockretail.com/wp-content/uploads/2009/11/debug-kit-4.png" alt="debug-kit-4" width="680" height="371" /></a></p>
<h3>Panel SQL Log</h3>
<p>Panel SQL Log zobrazuje informácie o spustených sql dotazoch v našej databáze. V podstate sa ničím nelíši od bežného sql výpisu z CakePHP.</p>
<p><a href="http://ims.rockretail.com/wp-content/uploads/2009/11/debug-kit-5.png"><img class="alignnone size-full wp-image-172" title="debug-kit-5" src="http://ims.rockretail.com/wp-content/uploads/2009/11/debug-kit-5.png" alt="debug-kit-5" width="680" height="371" /></a></p>
<h3>Panel Timer</h3>
<p>Panel Timer zobrazuje podrobné informácie o čase načítavania jednotlivých častí našej aplikácie pre daný request a taktiež množstvo využitej pamäte. Časové informácie sa zobrazujú pre stránku ako celok, ale rovnako aj pre jednotlivé súčasti, ktoré boli generované v danom requeste.</p>
<p><a href="http://ims.rockretail.com/wp-content/uploads/2009/11/debug-kit-6.png"><img class="alignnone size-full wp-image-173" title="debug-kit-6" src="http://ims.rockretail.com/wp-content/uploads/2009/11/debug-kit-6.png" alt="debug-kit-6" width="680" height="370" /></a></p>
<p>Debug Kit nám poskytuje možnosť merať čas pre ľubovoľnú časť kódu. Ako môžeme vidieť na obrázku vyššie, vo výpise sa nachádza položka s názvom <em>Listing of articles</em>. Táto položka meria čas spracovania výpisu článkov v metóde <em>index</em> v controlleri <em>ArticlesController</em>. Kód pre danú položku vyzerá následovne</p>
<pre><code>function index() {
     DebugKitDebugger::startTimer($name = 'articles', $message = 'Listing of articles');
     $this-&gt;Article-&gt;recursive = 1;
     $this-&gt;paginate = array('limit'=&gt;Configure::read('Homepage.articles'),'order' =&gt; 'Article.created desc','conditions'=&gt;array('show_on_index'=&gt;1,'visible'=&gt;1,'publish_up&lt;=now()'));         $this-&gt;set('articles', $this-&gt;paginate());
     DebugKitDebugger::stopTimer($name = 'articles');
}
</code></pre>
<h3>Panel Log</h3>
<p>Panel Log nám zobrazuje informácie zo <a href="http://book.cakephp.org/view/157/Logging" target="_blank">základných debugovacích nástrojov</a> priamo z CakePHP. Jedná sa o výpisy z logovacích súborov.</p>
<p><a href="http://ims.rockretail.com/wp-content/uploads/2009/11/debug-kit-7.png"><img class="alignnone size-full wp-image-174" title="debug-kit-7" src="http://ims.rockretail.com/wp-content/uploads/2009/11/debug-kit-7.png" alt="debug-kit-7" width="680" height="152" /></a></p>
<h3>Panel Variables</h3>
<p>Panel Variables zobrazuje podrobné informácie o premenných a ich hodnotách v našej aplikácii, ktoré boli inicializované v controlleri.</p>
<p><a href="http://ims.rockretail.com/wp-content/uploads/2009/11/debug-kit-8.png"><img class="alignnone size-full wp-image-175" title="debug-kit-8" src="http://ims.rockretail.com/wp-content/uploads/2009/11/debug-kit-8.png" alt="debug-kit-8" width="680" height="370" /></a></p>
<h3>Vlastné panely</h3>
<p>Debug Kit taktiež ponúka možnosť vytvoriť si vlastné panely alebo zobraziť len určité panely z tých, ktoré sú prednastavené. Táto časť je veľmi jednoduchá a jej štúdium prenechám čitateľom. Bližšie informácie môžete násjť na stránkach <a href="http://thechaw.com/debug_kit/wiki/docs/toolbar-panels" target="_blank">Debug Kit &#8211; Toolbar Panels</a></p>
<h2>Inštalácia</h2>
<p>Inštalácie Debug Kit je veľmi jednoduchá. Stačí si stiahnuť zdrojové kódy priamo z <a href="http://thechaw.com/debug_kit/versions" target="_blank">download stránok projektu</a>. Aktuálna verzia v dobe písania článku je Debug Kit 1.1. Po stiahnutí Debug Kit stačí obsah balíčku nakopírovať do adresára <em>app/plugins/debug_kit</em> a vložiť nasledovný kód do požadovaného controllera, v našom prípade sa jedná o <em>ArticlesController</em> v súbore <em>app/controllers/articles_controller.php</em></p>
<pre><code>class ArticlesController extends AppController {
     var $components = array('DebugKit.Toolbar');
}</code></pre>
<h2>Integrácia s FirePHP</h2>
<p>Veľmi zaujímavou vlastnosťou Debug Kit je možnosť <a href="http://thechaw.com/debug_kit/wiki/docs/FireCake" target="_blank">integrácie</a> tohto nástroja s debugovacím nástrojom <a href="http://firephp.org/" target="_blank">FirePHP</a>. FirePHP umožňuje debugovať PHP aplikáciu pomocou známeho nástroja <a href="/2009/11/01/5-rozsireni-do-firefoxu-ktore-musi-kazdy-vyvojar-mat/">FireBug</a>.</p>
<p>Týmto je náš článok u konca. Myslím si, že Debug Kit je jedným s najlepších debugovacích nástrojov pre CakePHP a určite stojí za vyskúšanie. Rád uvítam vaše nápady a pripomienky k debugovaniu v CakePHP.</p>
Note: There is a poll embedded within this post, please visit the site to participate in this post's poll.
<img src="http://feeds.feedburner.com/~r/imsblog/~4/TwbUAv6SfXY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ims.rockretail.com/2009/11/19/debug-kit-pokrocile-debugovanie-v-cakephp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://ims.rockretail.com/2009/11/19/debug-kit-pokrocile-debugovanie-v-cakephp/</feedburner:origLink></item>
		<item>
		<title>Redizajn IMS blogu</title>
		<link>http://feedproxy.google.com/~r/imsblog/~3/bTxZApHUHtQ/</link>
		<comments>http://ims.rockretail.com/2009/11/09/redizajn-ims-blogu/#comments</comments>
		<pubDate>Mon, 09 Nov 2009 23:37:35 +0000</pubDate>
		<dc:creator>Tibor Piňo</dc:creator>
				<category><![CDATA[Projekty]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://ims.rockretail.com/?p=140</guid>
		<description><![CDATA[Ako môžete vidieť, spustil som novú verziu IMS blogu, ktorá prináša niekoľko zmien a noviniek. Poďme si ich v krátkosti predstaviť.
Nová téma
Medzi najväčšie zmeny patrí vzhľad blogu, ktorý by mal byť opäť o niečo modernejší. Čo sa týka podpori prehliadačov, Internet Explorer 6 a nižší už viac nie sú podporované. Medzi podporované prehliadače patria Safari [...]]]></description>
			<content:encoded><![CDATA[<p>Ako môžete vidieť, spustil som novú verziu IMS blogu, ktorá prináša niekoľko zmien a noviniek. Poďme si ich v krátkosti predstaviť.<span id="more-140"></span></p>
<h2>Nová téma</h2>
<p>Medzi najväčšie zmeny patrí vzhľad blogu, ktorý by mal byť opäť o niečo modernejší. Čo sa týka podpori prehliadačov, Internet Explorer 6 a nižší už viac nie sú podporované. Medzi podporované prehliadače patria Safari 4, Firefox 3+, Opera 10+ a Internet Explorer 7+. Pre zaujímavosť uvediem, že nová téma je kompletne napísaná pomocou HTML5 a v budúcnosti určite vydám článok, ktorý bude popisovať tvorbu témy a odlišnosti oproti doteraz používaným postupom.</p>
<h2>CMS</h2>
<p>Ako redakčný systém bol použitý <a href="http://www.wordpress.org" target="_blank">Wordpress</a>. Medzi jeho prednosti patrí hlavne jednoduchá správa a množstvo rozšírení. Medzi zaujímavé novinky z pohľadu čitateľa patria nové hodnotenie článkov, kde môžete hodnotiť články piatimi úrovňami, kde 5 hviezdičiek je najlepšie hodnotenie a naopak jedna hviezdička je hodnotenie najhoršie. Medzi ďalšie novinky patria ankety. Aktuálnu anketu môžete vždy nájsť v postrannom bloku, ankety sa taktiež budú objavovať priamo v článkoch. Medzi ďalšiu novinku patrí podpora avatarov pri vkladaní komentárov zo služby <a href="http://en.gravatar.com/" target="_blank">Gravatar</a>. Medzi poslednú novinky z oblasti CMS je možnosť uverejnenia vašej reklamy na každej stránke. V prípade záujmu o umiestnenie reklamy ma kontaktujte pomocou <a href="/kontakt">kontaktného formulára</a>.</p>
<h2>Osobné informácie</h2>
<p>Taktiež bola aktualizovaná stránka <a href="/o-autorovi">O autorovi</a>, kde nájdete aktuálne informácie o autorovi tohto blogu Tiborovi Piňovi. Pre kontaktovanie autora môžete taktiež využiť <a href="/kontakt">nový kontaktný formulár</a>.</p>
<h2>RSS</h2>
<p>Poslednou zmenou, ktorú je potrebné spomenúť je zmena adries RSS exportov. Ďalšou novinkou je RSS export komentárov pre každý článok osobitne. Exporty môžete nájsť na nových adresách</p>
<p>RSS články &#8211; <a href="http://feeds.feedburner.com/imsblog">http://feeds.feedburner.com/imsblog</a><br />
RSS komentáre -<a href="http://ims.rockretail.com/comments/feed/"> http://ims.rockretail.com/comments/feed</a></p>
<p>Dúfam, že sa vám nová stránka bude páčiť a nájdete na nej množstvo cenných informácií. Rád uvítam vaše pripomienky a nápady na zlepšenie tejto stránky.</p>
Note: There is a poll embedded within this post, please visit the site to participate in this post's poll.
<img src="http://feeds.feedburner.com/~r/imsblog/~4/bTxZApHUHtQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ims.rockretail.com/2009/11/09/redizajn-ims-blogu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://ims.rockretail.com/2009/11/09/redizajn-ims-blogu/</feedburner:origLink></item>
		<item>
		<title>5 rozšírení do Firefoxu, ktoré musí každý vývojár mať</title>
		<link>http://feedproxy.google.com/~r/imsblog/~3/82Wcd9CvNEo/</link>
		<comments>http://ims.rockretail.com/2009/11/01/5-rozsireni-do-firefoxu-ktore-musi-kazdy-vyvojar-mat/#comments</comments>
		<pubDate>Sun, 01 Nov 2009 21:40:13 +0000</pubDate>
		<dc:creator>Tibor Piňo</dc:creator>
				<category><![CDATA[Tipy a triky]]></category>
		<category><![CDATA[colorzilla]]></category>
		<category><![CDATA[firebug]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[ie net renderer]]></category>
		<category><![CDATA[user agent switcher]]></category>
		<category><![CDATA[web developer]]></category>
		<category><![CDATA[yslow]]></category>

		<guid isPermaLink="false" />
		<description><![CDATA[Firefox je výborný internetový prehliadač a je ešte lepší v podpore webového vývoja. V tomto článku si predstavíme 5 rozšírení, ktoré vám zjednodušia vývoj webových stránok.
Web Developer
Patrí k jedným z najznámejších vývojárskych rozšírení pre Firefox. Do Firefoxu sa integruje ako položka v menu alebo toolbar. Hlavným zámerom tohto rozšírenia je poskytnúť vývojárovi kompletné informácie o [...]]]></description>
			<content:encoded><![CDATA[<p>Firefox je výborný internetový prehliadač a je ešte lepší v podpore webového vývoja. V tomto článku si predstavíme 5 rozšírení, ktoré vám zjednodušia vývoj webových stránok.<span id="more-73"></span></p>
<h2>Web Developer</h2>
<p>Patrí k jedným z najznámejších vývojárskych rozšírení pre Firefox. Do Firefoxu sa integruje ako položka v menu alebo toolbar. Hlavným zámerom tohto rozšírenia je poskytnúť vývojárovi kompletné informácie o všetkých elementoch a možnosť manipulácie so stránkou. Medzi základné funkcie patrí zobrazenie podrobných informácie o html elementoch kliknutím na element (informácie ako šírka, výška, id alebo class, veľkosť písma, jeho predchodcovia atď.), práca s grafikou stránky (css, zobrazenie css podľa výstupného média, obrázky atď.), práca s formulármi, s cookies, automatická validácia stránky, zmena rozlíšenia Firefoxu a množstvo ďalších.</p>
<p><a href="https://addons.mozilla.org/en-US/firefox/downloads/latest/1843/addon-1843-latest.xpi?src=addondetail">pridaj do Firefoxu</a><br />
<a href="https://addons.mozilla.org/en-US/firefox/addon/60">stránka rozšírenia</a></p>
<div><img src="http://ims.rockretail.com/wp-content/uploads/2009/11/web-developer.png" alt="" /> <img src="http://ims.rockretail.com/wp-content/uploads/2009/11/web-developer-1.png" alt="" /></div>
<h2>Firebug</h2>
<p>Hlavnými cieľom Firebug je debugovanie, editovanie a monitorovanie CSS, HTML a JavaScriptu priamo na vašich stránkach bez nutnosti úpravy zdrojového kódu. Do Firefoxu sa integruje ako samostatný panel. Medzi pokročilé vlastnosti patrí sledovanie komunikácie stránky so serverom alebo čas načítavanie jednotlivých elementov stránky.</p>
<p><a href="https://addons.mozilla.org/en-US/firefox/downloads/latest/1843/addon-1843-latest.xpi?src=addondetail">pridaj do Firefox</a> <a href="https://addons.mozilla.org/en-US/firefox/addon/1843">stránka rozšírenia</a></p>
<div><img src="http://ims.rockretail.com/wp-content/uploads/2009/11/firebug.gif" alt="" /></div>
<h2>User Agent Switcher</h2>
<p>Ako už z názvu vyplýva, jedná sa o jednoduchého prepínača User Agent, čiže umožňuje Firefoxu, aby sa pre webové stránky identifikoval ako iný prehliadač. Jednoducho tak môžeme otestovať špecifické správanie web stránky pre jednotlivé druhy prehliadačov. Do Firefoxu sa integruje ako položka v menu alebo toolbar. Medzi prednastavené prehliadače patria Internet Explorer 6, 7, 8, Safari iPhone 3.0, avšak môžete si doplniť ľubovoľný druh, ktorý potrebujete.</p>
<p><a href="https://addons.mozilla.org/en-US/firefox/downloads/latest/59/addon-59-latest.xpi?src=addondetail">pridaj do Firefoxu</a><br />
<a href="https://addons.mozilla.org/en-US/firefox/addon/59">stránka rozšírenia</a></p>
<div><img src="http://ims.rockretail.com/wp-content/uploads/2009/11/user-agent-switcher.png" alt="" /></div>
<h2>YSlow</h2>
<p>Hlavným cieľom YSlow je analyzovať web stránky a navrhnúť spôsob, ako zrýchliť web stránku na základe Yahoo pravidiel pre výkonné web stránky. YSlow sa integruje ako rozšírenie Firebug, takže k svojej činnosti potrebuje nainštalované rozšírenie Firebug.</p>
<p><a href="https://addons.mozilla.org/en-US/firefox/downloads/latest/5369/addon-5369-latest.xpi?src=addondetail">pridaj do Firefoxu</a><br />
<a href="https://addons.mozilla.org/en-US/firefox/addon/5369">stránka rozšírenia</a></p>
<div><img src="http://ims.rockretail.com/wp-content/uploads/2009/11/yslow.jpg" alt="" /></div>
<h2>ColorZilla</h2>
<p>Hlavným cieľom ColorZilla je získať hodnotu farby z ktoréhokoľvek bodu na webovej stránke. Jednoducho môžete teda získať RGB hodnotu alebo hodnotu pre CSS z jednotlivých farieb na stránke. ColorZilla sa integruje do Firefoxu ako toolbar.</p>
<p><a href="https://addons.mozilla.org/en-US/firefox/downloads/latest/271/addon-271-latest.xpi?src=addondetail">pridaj do Firefoxu</a><br />
<a href="https://addons.mozilla.org/en-US/firefox/addon/271">stránka rozšírenia</a></p>
<div><img src="http://ims.rockretail.com/wp-content/uploads/2009/11/colorzilla.png" alt="" /></div>
<h2>IE NetRenderer</h2>
<p>Hlavným cieľom je vyrenderovať stránku a vytvoriť z nej screenshot podľa toho, ako by vypadala v prehliadači Internet Explorer. Podporované sú takmer všetky verzie Internet Explorer od verzia 5.5 až po verziu 8. Do Firefoxu sa integruje ako tlačítko alebo položka v menu. K vytvárania screenshotov využíva známu službu <a href="http://ipinfo.info/netrenderer/index.php">IE NetRenderer</a></p>
<p><a href="https://addons.mozilla.org/en-US/firefox/downloads/latest/6455/addon-6455-latest.xpi?src=addondetail">pridaj do Firefoxu</a><br />
<a href="https://addons.mozilla.org/en-US/firefox/addon/6455">stránka rozšírenia</a></p>
<div><img src="http://ims.rockretail.com/wp-content/uploads/2009/11/ienetrenderer.png" alt="" /></div>
<p>Ak aj vy používate nejaké zaujímavé rozšírenia, podeľte sa s nimi v diskusii k článku.</p>
<img src="http://feeds.feedburner.com/~r/imsblog/~4/82Wcd9CvNEo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ims.rockretail.com/2009/11/01/5-rozsireni-do-firefoxu-ktore-musi-kazdy-vyvojar-mat/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://ims.rockretail.com/2009/11/01/5-rozsireni-do-firefoxu-ktore-musi-kazdy-vyvojar-mat/</feedburner:origLink></item>
		<item>
		<title>Správne fungovanie CakePHP na webhostingu od firmy Websupport.sk</title>
		<link>http://feedproxy.google.com/~r/imsblog/~3/oqg8d2BNwio/</link>
		<comments>http://ims.rockretail.com/2009/10/29/sprvane-fungovanie-cakephp-na-webhostingu-od-firmy-websupport-sk/#comments</comments>
		<pubDate>Tue, 30 Nov 1999 00:00:00 +0000</pubDate>
		<dc:creator>Tibor Piňo</dc:creator>
				<category><![CDATA[Tipy a triky]]></category>
		<category><![CDATA[CakePHP]]></category>

		<guid isPermaLink="false" />
		<description><![CDATA[Pre svoje projekty používam výborný webhosting od firmy Websupport. Avšak pre správne fungovanie CakePHP na serveroch od tejto firmy, je potrebná malá zmena v konfigurácii CakePHP. A kedže som dostal niekoľko otázok ohľadne tohto problému, rozhodol som sa napísať krátky článok.
Ako som už spomínal, defaultne CakePHP na webhosting Websupport nefunguje správne a hlási nasledovnú chybu
The [...]]]></description>
			<content:encoded><![CDATA[<p>Pre svoje projekty používam výborný webhosting od firmy <a href="http://www.websupport.sk">Websupport</a>. Avšak pre správne fungovanie CakePHP na serveroch od tejto firmy, je potrebná malá zmena v konfigurácii CakePHP. A kedže som dostal niekoľko otázok ohľadne tohto problému, rozhodol som sa napísať krátky článok.<span id="more-72"></span></p>
<p>Ako som už spomínal, defaultne CakePHP na webhosting Websupport nefunguje správne a hlási nasledovnú chybu</p>
<pre><code>The action webroot is not defined in controller AppController</code></pre>
<p>Hneď môžeme vidieť, že niečo nie je v poriadku a pri správnom fungovaní nemusí <em>AppController</em> obsahovať žiadnu metódu <em>webroot</em>. Túto chybu odstránime jednoduchým spôsobom a to nastavením správnej Routes direktívy. Do súboru <em>app/config/rou­tes.php</em> pridáme nasledovný riadok</p>
<pre><code>Router::connec­t(‚/app/webro­ot‘, array(‚controller‘  ⇒ ‚pages‘, ‚action‘  ⇒ ‚display‘,‚ho­me‘));</code></pre>
<p>Samozrejme si môžete zvoliť vlastné hodnoty pre <em>controller</em> a <em>action</em>.</p>
<p>Ak ste sa stretli s podobným problémom a vyriešili ho iným spôsobom, rád uvítam, ak sa s nimi podelíte v diskusii k článku.</p>
<img src="http://feeds.feedburner.com/~r/imsblog/~4/oqg8d2BNwio" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ims.rockretail.com/2009/10/29/sprvane-fungovanie-cakephp-na-webhostingu-od-firmy-websupport-sk/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://ims.rockretail.com/2009/10/29/sprvane-fungovanie-cakephp-na-webhostingu-od-firmy-websupport-sk/</feedburner:origLink></item>
		<item>
		<title>Zmeny vo vývojárskom tíme CakePHP</title>
		<link>http://feedproxy.google.com/~r/imsblog/~3/-WvFc_1_xmg/</link>
		<comments>http://ims.rockretail.com/2009/10/29/zmeny-vo-vyvojarskom-time-cakephp/#comments</comments>
		<pubDate>Tue, 30 Nov 1999 00:00:00 +0000</pubDate>
		<dc:creator>Tibor Piňo</dc:creator>
				<category><![CDATA[Články]]></category>
		<category><![CDATA[CakePHP]]></category>

		<guid isPermaLink="false" />
		<description><![CDATA[V uplynulých dňoch došlo k zásadným zmenám vo vývojárskom tíme CakePHP.
Ako informuje článok The cake is still rising, vývojársky tém opustili manažér projektu Garrett Woodworth a vývojár Nate Abele. Server Root.cz priniesol informácie, že obidvaja pracujú na MVC frameworku pre PHP 5.3 a v blízkej budúcnosti by ho mali vydať pod názvom Lithium. Myslím si, [...]]]></description>
			<content:encoded><![CDATA[<p>V uplynulých dňoch došlo k zásadným zmenám vo vývojárskom tíme CakePHP.<span id="more-71"></span></p>
<p>Ako informuje článok <a href="http://bakery.cakephp.org/articles/view/the-cake-is-still-rising">The cake is still rising</a>, vývojársky tém opustili manažér projektu Garrett Woodworth a vývojár Nate Abele. Server <a href="http://www.root.cz/zpravicky/manazer-projektu-cakephp-odchazi-z-cake-software-foundation/">Root.cz</a> priniesol informácie, že obidvaja pracujú na MVC frameworku pre PHP 5.3 a v blízkej budúcnosti by ho mali vydať pod názvom Lithium. Myslím si, že v mene celej komunity okolo CakePHP im patrí veľké poďakovanie za skvele odvedenú prácu.</p>
<p>V pôvodnom článku sa taktiež spomínajú významné pokroky vo vývoji CakePHP 1.3, ktorý vedie Mark Story a taktiež sa môžeme dozvedieť <a href="http://code.cakephp.org/cakephp2/wiki">niekoľko noviniek</a>, ktoré sa chystajú pre CakePHP 2.0. Vývoj CakePHP 2.0 je pod taktovkou Graham Weldon.</p>
<img src="http://feeds.feedburner.com/~r/imsblog/~4/-WvFc_1_xmg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ims.rockretail.com/2009/10/29/zmeny-vo-vyvojarskom-time-cakephp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://ims.rockretail.com/2009/10/29/zmeny-vo-vyvojarskom-time-cakephp/</feedburner:origLink></item>
		<item>
		<title>Nová verzia CakePHP 1.2.4.8284</title>
		<link>http://feedproxy.google.com/~r/imsblog/~3/1Fg7qkTlZ0E/</link>
		<comments>http://ims.rockretail.com/2009/08/04/nova-verzia-cakephp-1-2-4-8284/#comments</comments>
		<pubDate>Tue, 30 Nov 1999 00:00:00 +0000</pubDate>
		<dc:creator>Tibor Piňo</dc:creator>
				<category><![CDATA[Články]]></category>
		<category><![CDATA[CakePHP]]></category>

		<guid isPermaLink="false" />
		<description><![CDATA[Bola vydaná nová verzia CakePHP s označením 1.2.4.8284 a zároveň s touto verziou bola sprístupnená aj vývojárska verzia CakePHP 1.3.
Pri verzii 1.2.4.8284 sa jedná o opravné vydanie, ktoré zahŕňa viac než 70 opráv. Kompletný zoznam zmien môžete nájsť v changelogu
Spolu s touto verziou bola vydaná aj vývojárksa verzia CakePHP 1.3. Medzi hlavné novinky tejto verzie [...]]]></description>
			<content:encoded><![CDATA[<p>Bola vydaná nová verzia CakePHP s označením 1.2.4.8284 a zároveň s touto verziou bola sprístupnená aj vývojárska verzia CakePHP 1.3.<span id="more-70"></span></p>
<p>Pri verzii 1.2.4.8284 sa jedná o opravné vydanie, ktoré zahŕňa viac než 70 opráv. Kompletný zoznam zmien môžete nájsť <a href="https://trac.cakephp.org/wiki/changelog/1.2.x.x/8284">v changelogu</a></p>
<p>Spolu s touto verziou bola vydaná aj vývojárksa verzia CakePHP 1.3. Medzi hlavné novinky tejto verzie patria</p>
<ul>
<li>kompatibilita s PHP 5.3</li>
<li>nový Javascript helper, ktorý podporuje používanie viacerých js knižníc</li>
<li>vylepšené generovanie kódu s podporou plugins a templates</li>
</ul>
<p>Ďalšou dôležitou zmenou je prechod celého projektu na verzovací systém <a href="http://git-scm.com/">Git</a>. Všetky zdrojové kódy môžete nájsť na adrese <a href="http://code.cakephp.org">http://code.cakephp.org</a> Nájdené chyby môžete odteraz nahlásiť na adrese <a href="http://code.cakephp.org/tickets">http://code.cakephp.org/tickets</a> namiesto <a href="http://trac.cakephp.org">http://trac.cakephp.org</a> ktorá sa používala v minulosti. V súvislosti s novým verzovacím systémom Git ešte spomeniem, že na adrese <a href="http://code.cakephp.org/source/branches">http://code.cakephp.org/source/branches</a> môžete nájsť niekoľko vetví CakePHP. Vetva <a href="http://code.cakephp.org/source/branches/1.2">CakePHP 1.2</a> je určená pre opravy aktuálneho vydania a vetva <a href="http://code.cakephp.org/source/branches/1.3">CakePHP 1.3</a> predstavuje nastávajúcu verziu.</p>
<img src="http://feeds.feedburner.com/~r/imsblog/~4/1Fg7qkTlZ0E" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ims.rockretail.com/2009/08/04/nova-verzia-cakephp-1-2-4-8284/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://ims.rockretail.com/2009/08/04/nova-verzia-cakephp-1-2-4-8284/</feedburner:origLink></item>
	</channel>
</rss>
