<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	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/"
	>

<channel>
	<title>mGz developer blog &#187; JavaScript</title>
	<atom:link href="http://blog.mmx3.pl/category/webdevelopment/javascript/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.mmx3.pl</link>
	<description>right alt user, google maps guru, ajax, php</description>
	<lastBuildDate>Sun, 22 Jan 2012 21:09:10 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Optymalizowanie ilości Http requestów</title>
		<link>http://blog.mmx3.pl/2011/02/24/optymalizowanie-ilosci-http-requestow/</link>
		<comments>http://blog.mmx3.pl/2011/02/24/optymalizowanie-ilosci-http-requestow/#comments</comments>
		<pubDate>Wed, 23 Feb 2011 22:18:25 +0000</pubDate>
		<dc:creator>Max Małecki</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Optymalizacja]]></category>
		<category><![CDATA[Webdevelopment]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[Java Script]]></category>

		<guid isPermaLink="false">http://blog.mmx3.pl/?p=221</guid>
		<description><![CDATA[Jednym ze sposobów na optymalizacje ilości requestów do strony, oraz zmniejszenie ilości przesyłanych danych z serwera jest łączenie i kompresowanie plików ze skryptami java script. Jest to możliwe gdy przeglądarka obsługuje taki format skompresowanych plików js. Musimy postępować w trzech krokach. Pierwszy z nich polega na utworzeniu reguł w pliku .htaccess by przekierowywać js na [...]]]></description>
			<content:encoded><![CDATA[<p>Jednym ze sposobów na optymalizacje ilości requestów do strony, oraz zmniejszenie ilości przesyłanych danych z serwera jest łączenie i kompresowanie plików ze skryptami java script. Jest to możliwe gdy przeglądarka obsługuje taki format skompresowanych plików js.</p>
<p><span id="more-221"></span>Musimy postępować w trzech krokach. Pierwszy z nich polega na utworzeniu reguł w pliku .htaccess by przekierowywać js na pliki js.gz, gdy przeglądarka obsługuje kompresje gzip. Natomiast kolejny krok polega na utworzeniu zbioru archiwów naszych skryptów by obniżyć wielkość transferu. Na dokładkę możemy połączyć wszystkie główne skrypty, które ładują się na każdej stronie w jedno duże archiwum.</p>
<p>By wyszukać wszystkie pliki js i skompresować je wystarczy że użyjemy prostej pętli for</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">for</span> <span style="color: #c20cb9; font-weight: bold;">file</span> <span style="color: #000000; font-weight: bold;">in</span> <span style="color: #000000; font-weight: bold;">`</span><span style="color: #c20cb9; font-weight: bold;">find</span> js <span style="color: #660033;">-type</span> f \<span style="color: #7a0874; font-weight: bold;">&#40;</span> <span style="color: #660033;">-name</span> \<span style="color: #000000; font-weight: bold;">*</span>.js \<span style="color: #7a0874; font-weight: bold;">&#41;</span><span style="color: #000000; font-weight: bold;">`</span>;
  <span style="color: #000000; font-weight: bold;">do</span>
  <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #660033;">-ne</span> <span style="color: #ff0000;">&quot;Generating <span style="color: #007800;">$file</span>.gz<span style="color: #000099; font-weight: bold;">\n</span><span style="color: #000099; font-weight: bold;">\r</span>&quot;</span>
  <span style="color: #c20cb9; font-weight: bold;">gzip</span> <span style="color: #660033;">-c</span> <span style="color: #660033;">-f</span> <span style="color: #007800;">$file</span> <span style="color: #000000; font-weight: bold;">&amp;</span>gt; <span style="color: #007800;">$file</span>.gz
<span style="color: #000000; font-weight: bold;">done</span></pre></div></div>

<p>W zbiorze na którym działa pętla wywołujemy polecenie find i wyszukujemy wszystki plików katalogu zdefiniowanym na sztywno ( w naszym przypadku js/ )</p>
<p>By połączyć główne skrypty w jedno duże archiwum posłużymy się listą plików zapisaną w pliku tekstowym, z której będziemy odczytywać linia po linii kolejne pliki do połączenia.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#!/bin/bash</span>
<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #ff0000;">&quot;$1&quot;</span> = <span style="color: #ff0000;">&quot;--help&quot;</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span>; <span style="color: #000000; font-weight: bold;">then</span>
  <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #660033;">-ne</span> <span style="color: #ff0000;">&quot; &quot;</span>
<span style="color: #000000; font-weight: bold;">else</span>
  <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #660033;">-n</span> <span style="color: #ff0000;">&quot;$2&quot;</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span>; <span style="color: #000000; font-weight: bold;">then</span>
    <span style="color: #007800;">outputfile</span>=<span style="color: #ff0000;">&quot;js/merged/$2&quot;</span>
    <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #660033;">-ne</span>  <span style="color: #ff0000;">&quot;--merging files -- <span style="color: #000099; font-weight: bold;">\n</span><span style="color: #000099; font-weight: bold;">\r</span>&quot;</span>
    <span style="color: #007800;">jslist</span>=<span style="color: #ff0000;">&quot;$1.txt&quot;</span>
    <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #660033;">-f</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">$jslist</span>&quot;</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span>; <span style="color: #000000; font-weight: bold;">then</span>
      <span style="color: #007800;">index</span>=<span style="color: #000000;">0</span>
      <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #660033;">-f</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">$outputfile</span>&quot;</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span>; <span style="color: #000000; font-weight: bold;">then</span>
        <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #660033;">-ne</span> <span style="color: #ff0000;">&quot;Deleting existing merged file<span style="color: #000099; font-weight: bold;">\n</span><span style="color: #000099; font-weight: bold;">\r</span>&quot;</span>
        <span style="color: #c20cb9; font-weight: bold;">unlink</span> <span style="color: #007800;">$outputfile</span>
      <span style="color: #000000; font-weight: bold;">else</span>
        <span style="color: #c20cb9; font-weight: bold;">touch</span> <span style="color: #007800;">$outputfile</span>
      <span style="color: #000000; font-weight: bold;">fi</span>
&nbsp;
      <span style="color: #000000; font-weight: bold;">while</span> <span style="color: #c20cb9; font-weight: bold;">read</span> line ; <span style="color: #000000; font-weight: bold;">do</span>
        <span style="color: #666666; font-style: italic;">#MYARRAY[$index]=&quot;$line&quot;</span>
        <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #660033;">-ne</span> <span style="color: #ff0000;">&quot;Merging: <span style="color: #007800;">$line</span> <span style="color: #000099; font-weight: bold;">\n</span><span style="color: #000099; font-weight: bold;">\r</span>&quot;</span>
        <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #660033;">-f</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">$line</span>&quot;</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span>; <span style="color: #000000; font-weight: bold;">then</span>
          <span style="color: #c20cb9; font-weight: bold;">cat</span> <span style="color: #007800;">$line</span> <span style="color: #000000; font-weight: bold;">&amp;</span>gt;<span style="color: #000000; font-weight: bold;">&amp;</span>gt; <span style="color: #007800;">$outputfile</span>
        <span style="color: #000000; font-weight: bold;">else</span>
          <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #660033;">-ne</span> <span style="color: #ff0000;">&quot;ERROR: File <span style="color: #007800;">$line</span> does not exists<span style="color: #000099; font-weight: bold;">\n</span><span style="color: #000099; font-weight: bold;">\r</span>&quot;</span>
        <span style="color: #000000; font-weight: bold;">fi</span>
        <span style="color: #007800;">index</span>=$<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #007800;">$index</span>+<span style="color: #000000;">1</span><span style="color: #7a0874; font-weight: bold;">&#41;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
      <span style="color: #000000; font-weight: bold;">done</span> <span style="color: #000000; font-weight: bold;">&amp;</span>lt; <span style="color: #007800;">$jslist</span>       <span style="color: #c20cb9; font-weight: bold;">gzip</span> <span style="color: #660033;">-fc</span> <span style="color: #007800;">$outputfile</span> <span style="color: #000000; font-weight: bold;">&amp;</span>gt; <span style="color: #007800;">$outputfile</span>.gz
      <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #660033;">-ne</span> <span style="color: #ff0000;">&quot;SUCCESS: Generated: <span style="color: #007800;">$outputfile</span>.gz <span style="color: #000099; font-weight: bold;">\n</span><span style="color: #000099; font-weight: bold;">\r</span>&quot;</span>
    <span style="color: #000000; font-weight: bold;">else</span>
      <span style="color: #7a0874; font-weight: bold;">echo</span>  <span style="color: #660033;">-ne</span> <span style="color: #ff0000;">&quot;ERROR&quot;</span>
      <span style="color: #7a0874; font-weight: bold;">exit</span>
    <span style="color: #000000; font-weight: bold;">fi</span>
  <span style="color: #000000; font-weight: bold;">else</span>
    <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #660033;">-ne</span> <span style="color: #ff0000;">&quot;ERROR: Parameter expected  try --help to get help&quot;</span>
  <span style="color: #000000; font-weight: bold;">fi</span>
<span style="color: #000000; font-weight: bold;">fi</span></pre></div></div>

<p><strong>Kroki algorytmu:</strong></p>
<ol>
<li>Sprawdzamy czy user wpisał &#8211;help. Jeżeli tak to wyświetlamy pomoc. W przeciwnym wypadku idź do kroku 2.</li>
<li>Definiujemy plik wyjściowy oraz listę plików do połączenia</li>
<li>Jeżeli istnieje plik z listą przejdź do kroku 4. W przeciwnym wypadku wyświetl błąd.</li>
<li>Jeżeli istnieje plik wyjściowy to usuń plik w przeciwnym wypadku utwórz pusty plik wyjściowy.</li>
<li>Dopóki read line z pliku $jslist, to  jeżeli plik źródłowy istnieje, to jego zawartość przekaż do pliku wyjściowego.  W przeciwnym wypadku wyświetl błąd</li>
<li>Spakuj plik wyjściowy</li>
</ol>
<p><strong>Konfiguracja .htaccess</strong><br />
By zmniejszyć transfer możemy wymusić na apache&#8217;u aby wysyłał pliki js skompresowane, jeżeli przeglądarka akceptuje skompresowane javascripty.</p>
<pre>&lt;IfModule mod_headers.c&gt;
&lt;FilesMatch "\.js.gz$"&gt;
ForceType text/javascript
Header set Content-Encoding: gzip
&lt;/FilesMatch&gt;
&lt;/IfModule&gt;
&lt;IfModule mod_rewrite.c&gt;
  RewriteCond %{HTTP:Accept-Encoding} gzip
  RewriteCond %{REQUEST_URI} \.js$
  RewriteCond %{REQUEST_FILENAME}.gz -f
  RewriteRule (.*)$ $1\.gz [L,QSA]
&lt;/IfModule&gt;
</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.mmx3.pl/2011/02/24/optymalizowanie-ilosci-http-requestow/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Javascript: Walidator Numeru Rachunku Bankowego (NRB)</title>
		<link>http://blog.mmx3.pl/2010/11/16/javascript-walidator-numeru-rachunku-bankowego-nrb/</link>
		<comments>http://blog.mmx3.pl/2010/11/16/javascript-walidator-numeru-rachunku-bankowego-nrb/#comments</comments>
		<pubDate>Tue, 16 Nov 2010 10:18:37 +0000</pubDate>
		<dc:creator>Max Małecki</dc:creator>
				<category><![CDATA[AJAX]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[NRB]]></category>
		<category><![CDATA[Numer Rachunku Bankowego]]></category>

		<guid isPermaLink="false">http://blog.mmx3.pl/?p=225</guid>
		<description><![CDATA[Opis Formatu NRB Format NRB jest to 26 cyfr zapisanych w formacie: CC AAAA AAAA BBBB BBBB BBBB BBBB Gdzie: CC to suma kontrolna (2 cyfry), AAAAAAAA to numer rozliczeniowy jednostki organizacyjnej banku (8 cyfr), BBBBBBBBBBBBBBBB to numer rachunku klienta w banku (16 cyfr). Więcej na ten temat powie nam wikipedia. Algorytm Walidacji: Wytnij znaki [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Opis Formatu NRB</strong></p>
<p>Format NRB jest to 26 cyfr zapisanych w formacie:</p>
<pre>CC AAAA AAAA BBBB BBBB BBBB BBBB
</pre>
<p>Gdzie:</p>
<ul>
<li> CC to suma kontrolna (2 cyfry),</li>
<li> AAAAAAAA to numer rozliczeniowy jednostki organizacyjnej banku (8 cyfr),</li>
<li> BBBBBBBBBBBBBBBB to numer rachunku klienta w banku (16 cyfr).</li>
</ul>
<p>Więcej na ten temat powie nam <a title="Wikipedia: Numer Rachunku Bankowego" href="http://pl.wikipedia.org/wiki/Numer_Rachunku_Bankowego" target="_blank">wikipedia</a>.</p>
<p><strong>Algorytm Walidacji:</strong></p>
<ol>
<li>Wytnij znaki nie numeryczne z ciągu wejściowego i przejdź do kroku 2.</li>
<li>Jeżeli długość ciągu znaków wynosi 26 to przejdź do kroku 3 w przeciwnym wypadku zwróć false.</li>
<li>Do ciągu znaków dopisz kod kraju 2521, który odpowiada kodowi literowemu PL (P - 25, L - 21).</li>
<li>Dwa pierwsze elementy ciągu zawierającego numeru konta przenieś na koniec tego ciągu(które zawierają sumę kontrolną).</li>
<li>Przeglądaj numer konta od końca mnożąc kolejno: ostanią cyfrę numeru konta z pierwszą wagą  zawartą w tablicy wag. Sumując wynik powyższego mnożenia.</li>
<li>Jeżeli wynik  reszty z dzielenia przez 97  jest równy jeden to zwróć true w przeciwnym wypadku zwróć false</li>
</ol>
<p><strong>Implementacja funkcji sprawdzającej poprawność NRB</strong></p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">function</span> NRBvalidatior<span style="color: #009900;">&#40;</span>nrb<span style="color: #009900;">&#41;</span>
  <span style="color: #009900;">&#123;</span>
    nrb <span style="color: #339933;">=</span> nrb.<span style="color: #660066;">replace</span><span style="color: #009900;">&#40;</span><span style="color: #009966; font-style: italic;">/[^0-9]+/g</span><span style="color: #339933;">,</span><span style="color: #3366CC;">''</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #003366; font-weight: bold;">var</span> Wagi <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> Array<span style="color: #009900;">&#40;</span><span style="color: #CC0000;">1</span><span style="color: #339933;">,</span><span style="color: #CC0000;">10</span><span style="color: #339933;">,</span><span style="color: #CC0000;">3</span><span style="color: #339933;">,</span><span style="color: #CC0000;">30</span><span style="color: #339933;">,</span><span style="color: #CC0000;">9</span><span style="color: #339933;">,</span><span style="color: #CC0000;">90</span><span style="color: #339933;">,</span><span style="color: #CC0000;">27</span><span style="color: #339933;">,</span><span style="color: #CC0000;">76</span><span style="color: #339933;">,</span><span style="color: #CC0000;">81</span><span style="color: #339933;">,</span><span style="color: #CC0000;">34</span><span style="color: #339933;">,</span><span style="color: #CC0000;">49</span><span style="color: #339933;">,</span><span style="color: #CC0000;">5</span><span style="color: #339933;">,</span><span style="color: #CC0000;">50</span><span style="color: #339933;">,</span><span style="color: #CC0000;">15</span><span style="color: #339933;">,</span><span style="color: #CC0000;">53</span><span style="color: #339933;">,</span><span style="color: #CC0000;">45</span><span style="color: #339933;">,</span><span style="color: #CC0000;">62</span><span style="color: #339933;">,</span><span style="color: #CC0000;">38</span><span style="color: #339933;">,</span><span style="color: #CC0000;">89</span><span style="color: #339933;">,</span><span style="color: #CC0000;">17</span><span style="color: #339933;">,</span>
            <span style="color: #CC0000;">73</span><span style="color: #339933;">,</span><span style="color: #CC0000;">51</span><span style="color: #339933;">,</span><span style="color: #CC0000;">25</span><span style="color: #339933;">,</span><span style="color: #CC0000;">56</span><span style="color: #339933;">,</span><span style="color: #CC0000;">75</span><span style="color: #339933;">,</span><span style="color: #CC0000;">71</span><span style="color: #339933;">,</span><span style="color: #CC0000;">31</span><span style="color: #339933;">,</span><span style="color: #CC0000;">19</span><span style="color: #339933;">,</span><span style="color: #CC0000;">93</span><span style="color: #339933;">,</span><span style="color: #CC0000;">57</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>nrb.<span style="color: #660066;">length</span> <span style="color: #339933;">==</span> <span style="color: #CC0000;">26</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
      nrb <span style="color: #339933;">=</span> nrb <span style="color: #339933;">+</span> <span style="color: #3366CC;">&quot;2521&quot;</span><span style="color: #339933;">;</span>
      nrb <span style="color: #339933;">=</span> nrb.<span style="color: #660066;">substr</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">2</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> nrb.<span style="color: #660066;">substr</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">0</span><span style="color: #339933;">,</span><span style="color: #CC0000;">2</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
      <span style="color: #003366; font-weight: bold;">var</span> Z <span style="color: #339933;">=</span><span style="color: #CC0000;">0</span><span style="color: #339933;">;</span>
      <span style="color: #000066; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">var</span> i<span style="color: #339933;">=</span><span style="color: #CC0000;">0</span><span style="color: #339933;">;</span>i<span style="color: #339933;">&amp;</span>lt<span style="color: #339933;">;</span><span style="color: #CC0000;">30</span><span style="color: #339933;">;</span>i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        Z <span style="color: #339933;">+=</span> nrb<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">29</span><span style="color: #339933;">-</span>i<span style="color: #009900;">&#93;</span> <span style="color: #339933;">*</span> Wagi<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
      <span style="color: #009900;">&#125;</span>
      <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>Z <span style="color: #339933;">%</span> <span style="color: #CC0000;">97</span> <span style="color: #339933;">==</span> <span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000066; font-weight: bold;">return</span> <span style="color: #003366; font-weight: bold;">true</span><span style="color: #339933;">;</span>
      <span style="color: #009900;">&#125;</span><span style="color: #000066; font-weight: bold;">else</span><span style="color: #009900;">&#123;</span>
        <span style="color: #000066; font-weight: bold;">return</span> <span style="color: #003366; font-weight: bold;">false</span><span style="color: #339933;">;</span>
      <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #009900;">&#125;</span><span style="color: #000066; font-weight: bold;">else</span><span style="color: #009900;">&#123;</span>
      <span style="color: #000066; font-weight: bold;">return</span> <span style="color: #003366; font-weight: bold;">false</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
  <span style="color: #009900;">&#125;</span></pre></div></div>

<p><strong>Wywoływanie sprawdzania przy edycji pola lub wysłaniu formularza</strong></p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'form'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">submit</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
  <span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>NRBvalidatior<span style="color: #009900;">&#40;</span>$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'input#nrb'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">val</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
  <span style="color: #009900;">&#123;</span>
    <span style="color: #000066; font-weight: bold;">return</span> <span style="color: #003366; font-weight: bold;">true</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
  <span style="color: #000066; font-weight: bold;">else</span>
  <span style="color: #009900;">&#123;</span>
    <span style="color: #000066; font-weight: bold;">return</span> <span style="color: #003366; font-weight: bold;">false</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://blog.mmx3.pl/2010/11/16/javascript-walidator-numeru-rachunku-bankowego-nrb/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>GoogleMaps + WordPress Szybki Kurs</title>
		<link>http://blog.mmx3.pl/2008/07/11/googlemaps-wordpress-szybki-kurs/</link>
		<comments>http://blog.mmx3.pl/2008/07/11/googlemaps-wordpress-szybki-kurs/#comments</comments>
		<pubDate>Fri, 11 Jul 2008 19:51:56 +0000</pubDate>
		<dc:creator>Max Małecki</dc:creator>
				<category><![CDATA[GoogleMaps]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[mapa dojazdu]]></category>
		<category><![CDATA[Mapa Google]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://blog.mmx3.pl/?p=138</guid>
		<description><![CDATA[Wstęp Dawno nic o google maps nie pisałem zatem przedstawie wam kurs jak do statycznej strony np z kontaktem dodać mapę googla z kilkoma efektami. Ktoś pewnie zapyta: &#8222;po co? Przecież jest dokumentacja na googlemaps.com&#8221; Ja pokażę krok po kroku co i jak. Nie obraźcie się jeśli ten tutorial będzie wyglądał jak artykuł z &#8222;Komputer [...]]]></description>
			<content:encoded><![CDATA[<ol>
<li>
<h4>Wstęp</h4>
<p>Dawno nic o google maps nie pisałem zatem przedstawie wam kurs jak do statycznej strony np z kontaktem dodać mapę googla z kilkoma efektami. Ktoś pewnie zapyta: &#8222;po co? Przecież jest dokumentacja na googlemaps.com&#8221; Ja pokażę krok po kroku co i jak. Nie obraźcie się jeśli ten tutorial będzie wyglądał jak artykuł z &#8222;Komputer świata&#8221;.</li>
<li>
<h4>Pobieramy GoogleMaps API key</h4>
<ol>
<li>Rozpoczynamy pracę od wejścia na stronę: <a title="Pobieramy GoogleMaps API Key" href="http://code.google.com/apis/maps/" target="_blank">http://code.google.com/apis/maps/<br />
</a><a href="http://blog.mmx3.pl/wp-content/uploads/2008/07/1.png"><img class="alignright size-medium wp-image-140" title="Początek zabawy z GoogleMaps API" src="http://blog.mmx3.pl/wp-content/imagescaler/78dd7ec69371f0cbdb2f57792c737391.png" alt="" width="299" height="79" imagescaler="http://blog.mmx3.pl/wp-content/imagescaler/78dd7ec69371f0cbdb2f57792c737391.png" /></a></li>
<li style="clear:both;">Zgadzamy się z warunkami umowy licencyjnej i podajemy adres naszej strony:<br />
<a href="http://blog.mmx3.pl/wp-content/uploads/2008/07/2.png"><img class="size-medium wp-image-141" title="Zgadzamy się na warunki kożystania z GoogleMaps API" src="http://blog.mmx3.pl/wp-content/imagescaler/4a48a406d539308c34ed8ae473cf8127.png" alt="" width="300" height="138" imagescaler="http://blog.mmx3.pl/wp-content/imagescaler/4a48a406d539308c34ed8ae473cf8127.png" /></a></li>
<li style="clear:both;"> Gdy strona jest już zarejestrowana mamy dostęp do API key&#8217;a oraz do przykładowego skryptu.<br />
<a href="http://blog.mmx3.pl/wp-content/uploads/2008/07/3.png"><img class="alignright size-medium wp-image-139" title="Potwierdzenie Rejestracji" src="http://blog.mmx3.pl/wp-content/imagescaler/b1ad923a3a901c69de74dc3c3bf90e2b.png" alt="" width="300" height="142" imagescaler="http://blog.mmx3.pl/wp-content/imagescaler/b1ad923a3a901c69de74dc3c3bf90e2b.png" /></a></li>
</ol>
</li>
<li style="clear:both;">
<h4>Piszemy Skrypt</h4>
<ol>
<li> Tworzymy  dwie rzeczy najpierw katalog js/ w katalogu wp-content/themes/nasztheme/ plik gmaps.js</li>
<li> Kodujemy zdarzenie document.ready by załadować mapę.<br />
<code>window.onload = function() {<br />
if (GBrowserIsCompatible()) {<br />
//Inicjalizacja mapy poprzez tworzenie obiektu<br />
var map = new GMap2(document.getElementById("map"));<br />
}else{<br />
alert("sorry but your browser sux hard. update it and come again!");<br />
}<br />
});</code></li>
<li> Ustawiamy środek mapy i zoom<br />
<code>map.setCenter(new GLatLng(35.083956, 103.710938), 4);</code></li>
<li>Dodajemy kontrolki do mapy:<br />
<code>map.addControl(new GSmallMapControl());<br />
map.addControl(new GMapTypeControl());</code></li>
<li> Dodajemy punkt na mapie<br />
<code>var lat = 0;<br />
var lng = 0;<br />
var point = new GLatLng(lat, lng);<br />
var marker = new GMarker(point);<br />
map.addOverlay(marker);</code></li>
<li> Możemy jeszcze dodać dymek z opisem punktu lub adresem<br />
<code>map.openInfoWindow(point, 'To jest nasz punkt!');</code></li>
<li>Czyszczenie mapy z wszystkich markerów i InfoWindow odbywa się za pomocą polecenia:<br />
<code>map.clearOverlays(); </code></li>
</ol>
</li>
<li>
<h4>Modyfikujemy Template</h4>
<p>Modyfikacja template polega na edycji pliku header.php plus ewentualnie można dodać kilka linii css w style.css<br />
Najpierw zostawmy wszystkie style i temu podobne<br />
Musimy w sekcji head dwie linie:</p>
<pre>
<code>&lt;head&gt;
&lt;script src="http://maps.google.com/maps?file=api&amp;amp;v=2&amp;amp;key=TUTAJ_WSTAWIAMY_API_KEY" type="text/javascript"&gt;&lt;/script&gt;
 &lt;script src="&lt;?php bloginfo('template_directory'); ?&gt;/js/gmaps.js.php" type="text/javascript"&gt;
&lt;/script&gt;
&lt;/head&gt;</code>
</pre>
</li>
<li>
<h4>Umieszczamy Mapkę w kontakcie</h4>
<p>Sprawa prosta. Publikujemy nową stronę. Nazywamy ją kontakt.<br />
<a href="http://blog.mmx3.pl/wp-content/uploads/2008/07/4.png"><img class="alignnone size-medium wp-image-143" title="Piszemy nową stronę w WordPressie" src="http://blog.mmx3.pl/wp-content/imagescaler/0498cdadff42747d0ad8a8975bd8df70.png" alt="" width="300" height="220" imagescaler="http://blog.mmx3.pl/wp-content/imagescaler/0498cdadff42747d0ad8a8975bd8df70.png" /></a><br />
I dodajemy do niej naszą mapkę:<br />
<code>&lt;div id="map"&gt;&lt;/div&gt;</code><br />
Można przy okazji ją również ostylować.<br />
<code>&lt;div id="map" style="width: 100%; height: 400px;"&gt;&lt;/div&gt;</code>
</li>
<li>
<h4>First Run</h4>
<p>Nim odpalimy po raz pierwszy naszą mapkę. To najpierw pamiętajmy o wrzuceniu na serwer wszystkich plików. Nie wiem czy zbyt wiele wymagam ale biorę za pewnik to że potraficie obsługiwać jakiegokolwiek klienta FTP.<br />
Zatem wrzucamy pliki:<br />
<code>wp-content/themes/nasztheme/js/gmaps.js<br />
wp-content/themes/nasztheme/header.php</code>
</li>
<li>
<h4>Efekty</h4>
<p>Wszyscy doskonale zdają sobie z tego sprawę że strona musi być efektowna. Można też użyć cytatu:</p>
<blockquote><p>
- Aplikacja?<br />
- Ma być droga i robić biiip
</p></blockquote>
<p>No to sprawa prosta żeby zadbać o tzw. &#8222;Wow Effect&#8221; (nie mylić z Word Of Warcraft) możemy zastosować małą animację. Dla dużego odsetka klientów ten cytat jest
</p>
<p>Np. Jeżeli Firma ma trzy oddziały w mieście to możemy zrobić takie coś:
</p>
<ol>
<li>Na starcie ładujemy logo firmy</li>
<li>Pokazujemy siedzibę główną, wyświetlamy dymek</li>
<li>Pokazujemy pozostałe siedziby w odstępach czasowych i wyświetlamy dymek z adresem i telefonem</li>
</ol>
<p>By zaimplementować taki skrypt nie potrzebujemy dużo dodatkowej wiedzy z dziedziny javascript&#8217;u. Po pierwsze musimy wiedzieć jak używać funkcji:</p>
<p><code>window.setInterval(function() {<br />
//tutaj implementujemy swoją funkcje bądź wywołujemy już wcześniej zaimplementowaną<br />
}, 4000);<br />
//4000 to czas w milisekundach czyli w tym wypadku 4 sekundy.</code></p>
<p>Za animację naszej mapy będzie odpowiadać:</p>
<p><code>//dodajemy marker<br />
var marker = new GMarker(point);<br />
map.addOverlay(marker);<br />
//wyświetlamy dymek<br />
map.openInfoWindow(point, 'tekst o odzdziale');<br />
//przesuwamy mapę<br />
map.panTo(point);</code></p>
<p>Gdzie point to element z tablicy gdzie zdefiniowaliśmy oddziały firmy.</p>
<p>Po wyświetleniu trzeba wyczyścić mapę za pomocą:</p>
<p><code>map.clearOverlays(); </code>
</li>
<li>
<h4>Podsumowanie</h4>
<p>W sumie zastanawiam się czemu piszę taki tutorial, ponieważ jest gotowy plugin do wordpress&#8217;a który rozwiązuje problemy z googlemaps. Konfigurowalny z wp-admin z ładnego formularza. </p>
<p>Może tylko po to by nauczyć się korzystać z narzędzi, które ułatwią nam pracę i nauczą pisać dobre javascripty. Zachęcam do prób z kodowaniem map by Googlemaps. I zapewniam że GoogleMaps API nie gryzie <img src='http://blog.mmx3.pl/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://blog.mmx3.pl/2008/07/11/googlemaps-wordpress-szybki-kurs/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>

