<?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>Vivee - wordpress, webmastering, grafika i fotografia &#187; Webmaster</title>
	<atom:link href="http://vivee.info/category/tutoriale/webmaster/feed/" rel="self" type="application/rss+xml" />
	<link>http://vivee.info</link>
	<description>Blog o wordpress, webmasteringu, grafice i fotografii.</description>
	<lastBuildDate>Sat, 01 Jan 2011 22:14:10 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>jQuery Cycle</title>
		<link>http://vivee.info/2011/01/01/jquery-cycle/</link>
		<comments>http://vivee.info/2011/01/01/jquery-cycle/#comments</comments>
		<pubDate>Sat, 01 Jan 2011 22:14:10 +0000</pubDate>
		<dc:creator>agressiva</dc:creator>
				<category><![CDATA[Skrypty client-side]]></category>
		<category><![CDATA[Webmaster]]></category>
		<category><![CDATA[cycle]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[slider]]></category>

		<guid isPermaLink="false">http://vivee.info/?p=2125</guid>
		<description><![CDATA[jQuery Cycle to jedna z wielu ogólnodostępnych wtyczek, która pozwala nam zastosować na naszej stronie obecnie najpopularniejszy element - slider. W porównaniu do innych gotowych rozwiązań pozwala nam dobrać wiele efektów przejścia obrazów - od tradycyjnego przenikania po bardziej złożone zmiany z wykorzystaniem zmiany położenia lub nawet wielkości zamieszczonych obrazków. Jeszcze jedną jego zaletą jest [...]]]></description>
			<content:encoded><![CDATA[<p><strong>jQuery Cycle</strong> to jedna z wielu ogólnodostępnych wtyczek, która pozwala nam zastosować na naszej stronie obecnie najpopularniejszy element - slider.<br />
W porównaniu do innych gotowych rozwiązań pozwala nam dobrać wiele efektów przejścia obrazów - od tradycyjnego przenikania po bardziej złożone zmiany z wykorzystaniem zmiany położenia lub nawet wielkości zamieszczonych obrazków.<br />
<span id="more-2125"></span><br />
Jeszcze jedną jego zaletą jest rozbudowana dokumentacja i ogromna ilość podanych przykładów wdrożenia.<br />
Oto strona oficjalna wtyczki: <a href="http://jquery.malsup.com/cycle/">jQuery Cycle Plugin</a></p>
<p class="insp">
<a class="button" href="http://pliki.vivee.info/users/agressiva/cycle/index.html"><img src="http://pliki.vivee.info/demo.jpg" alt="demo" /></a><a class="button" href="http://jquery.malsup.com/cycle/download.html"><img src="http://pliki.vivee.info/download.jpg" alt="pobierz" /></a>
</p>
<p class="insp">
<img src="http://pliki.vivee.info/users/agressiva/cycle/jquerycycle.jpg" alt="jQuery Cycle"/>
</p>
<h2>Instalacja:</h2>
<p>Aby zainstalować ten plugin przede wszystkim musimy w sekcji <code><head></code> kodu zamieścić bibliotekę jQuery:</p>
<div class="html dean_ch" style="white-space: nowrap;"><span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;script.html"><span class="kw2">&lt;script</span></span></a> <span class="kw3">type</span><span class="sy0">=</span><span class="st0">&quot;text/javascript&quot;</span> <span class="kw3">src</span><span class="sy0">=</span><span class="st0">&quot;http://ajax.googleapis.com/ajax/libs/jquery/1.4.1/jquery.min.js&quot;</span>&gt;&lt;<span class="sy0">/</span>script&gt;</span></div>
<p>A także główny skrypt jQuery Cycle:</p>
<div class="html dean_ch" style="white-space: nowrap;"><span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;script.html"><span class="kw2">&lt;script</span></span></a> <span class="kw3">type</span><span class="sy0">=</span><span class="st0">&quot;text/javascript&quot;</span> <span class="kw3">src</span><span class="sy0">=</span><span class="st0">&quot;http://cloud.github.com/downloads/malsup/cycle/jquery.cycle.all.2.74.js&quot;</span>&gt;&lt;<span class="sy0">/</span>script&gt;</span></div>
<p>Podałam tutaj odnośniki zewnętrzne, ale oczywiście wtyczkę możecie pobrać ze strony autora: <a href="http://jquery.malsup.com/cycle/download.html">jQuery Cycle Plugin - Download</a></p>
<p>Ponadto należy zamieścić skrypt, w którym bardzo łatwy sposób określimy jaki efekt chcemy zastosować w swoim sliderze:</p>
<div class="html dean_ch" style="white-space: nowrap;"><span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;script.html"><span class="kw2">&lt;script</span></span></a> <span class="kw3">type</span><span class="sy0">=</span><span class="st0">&quot;text/javascript&quot;</span><span class="sy0"><a href="http://december.com/html/4/element/&amp;gt;.html"><span class="kw2">&gt;</span></span></a></span><br />
$(document).ready(function() {<br />
&nbsp; &nbsp; $('.slideshow').cycle({<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //zdefiniowany efekt<br />
&nbsp; &nbsp; &nbsp; &nbsp; });<br />
});<br />
<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;/script&amp;gt;.html"><span class="kw2">&lt;/script&gt;</span></span></a></span></div>
<p><code>$('.slideshow')</code> - nazwa diva, w którym umieszczamy slider</p>
<h2>Struktura:</h2>
<p>Jako, że jest to slider do zdjęć, to jego struktura ogranicza się do diva głównego oraz samych obrazków:</p>
<div class="html dean_ch" style="white-space: nowrap;"><span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;div.html"><span class="kw2">&lt;div</span></span></a> <span class="kw3">class</span><span class="sy0">=</span><span class="st0">&quot;slideshow&quot;</span><span class="sy0"><a href="http://december.com/html/4/element/&amp;gt;.html"><span class="kw2">&gt;</span></span></a></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;img.html"><span class="kw2">&lt;img</span></span></a> <span class="kw3">src</span><span class="sy0">=</span><span class="st0">&quot;img1.png&quot;</span> <span class="kw3">alt</span><span class="sy0">=</span><span class="st0">&quot;&quot;</span> <span class="kw3">height</span><span class="sy0">=</span><span class="st0">&quot;300&quot;</span> <span class="kw3">width</span><span class="sy0">=</span><span class="st0">&quot;800&quot;</span> <span class="sy0">/</span><span class="sy0"><a href="http://december.com/html/4/element/&amp;gt;.html"><span class="kw2">&gt;</span></span></a></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;img.html"><span class="kw2">&lt;img</span></span></a> <span class="kw3">src</span><span class="sy0">=</span><span class="st0">&quot;img2.png&quot;</span> <span class="kw3">alt</span><span class="sy0">=</span><span class="st0">&quot;&quot;</span> <span class="kw3">height</span><span class="sy0">=</span><span class="st0">&quot;300&quot;</span> <span class="kw3">width</span><span class="sy0">=</span><span class="st0">&quot;800&quot;</span> <span class="sy0">/</span><span class="sy0"><a href="http://december.com/html/4/element/&amp;gt;.html"><span class="kw2">&gt;</span></span></a></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;img.html"><span class="kw2">&lt;img</span></span></a> <span class="kw3">src</span><span class="sy0">=</span><span class="st0">&quot;img3.png&quot;</span> <span class="kw3">alt</span><span class="sy0">=</span><span class="st0">&quot;&quot;</span> <span class="kw3">height</span><span class="sy0">=</span><span class="st0">&quot;300&quot;</span> <span class="kw3">width</span><span class="sy0">=</span><span class="st0">&quot;800&quot;</span> <span class="sy0">/</span><span class="sy0"><a href="http://december.com/html/4/element/&amp;gt;.html"><span class="kw2">&gt;</span></span></a></span> &nbsp; &nbsp;<br />
<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;/div&amp;gt;.html"><span class="kw2">&lt;/div&gt;</span></span></a></span></div>
<h2>Efekty</h2>
<p>Przedstawię Wam kilka efektów jakie możemy uzyskać dzięki <strong>jQuery Cycle</strong><br />
Aby zastosować określony efekt należy w sekcji <head> zamieścić odpowiedni kod i ewentualnie dostosować go do indywidualnych potrzeb:</p>
<p><strong>1. Fade - czyli tradycyjne przenikanie:</strong><br />
<a href="http://pliki.vivee.info/users/agressiva/cycle/index.html"><strong>Zobacz efekt</strong></a></p>
<div class="html dean_ch" style="white-space: nowrap;"><span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;script.html"><span class="kw2">&lt;script</span></span></a> <span class="kw3">type</span><span class="sy0">=</span><span class="st0">&quot;text/javascript&quot;</span><span class="sy0"><a href="http://december.com/html/4/element/&amp;gt;.html"><span class="kw2">&gt;</span></span></a></span><br />
$(document).ready(function() {<br />
&nbsp; &nbsp; $('.slideshow').cycle({<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; fx: 'fade',<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; speed: '2500',<br />
&nbsp; &nbsp; &nbsp; &nbsp; });<br />
});<br />
<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;/script&amp;gt;.html"><span class="kw2">&lt;/script&gt;</span></span></a></span></div>
<p><strong>2. Scrolldown - przewijanie z góry na dół:</strong><br />
<a href="http://pliki.vivee.info/users/agressiva/cycle/scrolldown.html"><strong>Zobacz efekt</strong></a></p>
<div class="html dean_ch" style="white-space: nowrap;"><span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;script.html"><span class="kw2">&lt;script</span></span></a> <span class="kw3">type</span><span class="sy0">=</span><span class="st0">&quot;text/javascript&quot;</span><span class="sy0"><a href="http://december.com/html/4/element/&amp;gt;.html"><span class="kw2">&gt;</span></span></a></span><br />
$(document).ready(function() {<br />
&nbsp; &nbsp; $('.slideshow').cycle({<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; fx: 'fade',<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; speed: '2500',<br />
&nbsp; &nbsp; &nbsp; &nbsp; });<br />
});<br />
<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;/script&amp;gt;.html"><span class="kw2">&lt;/script&gt;</span></span></a></span></div>
<p><strong>3. Zoom:</strong><br />
<a href="http://pliki.vivee.info/users/agressiva/cycle/zoom.html"><strong>Zobacz efekt</strong></a></p>
<div class="html dean_ch" style="white-space: nowrap;"><span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;script.html"><span class="kw2">&lt;script</span></span></a> <span class="kw3">type</span><span class="sy0">=</span><span class="st0">&quot;text/javascript&quot;</span><span class="sy0"><a href="http://december.com/html/4/element/&amp;gt;.html"><span class="kw2">&gt;</span></span></a></span><br />
$(document).ready(function() {<br />
&nbsp; &nbsp; $('.slideshow').cycle({<br />
fx: &nbsp; &nbsp;'zoom', <br />
sync: &nbsp; 0, <br />
delay: -4000 <br />
&nbsp; &nbsp; &nbsp; &nbsp; });<br />
});<br />
<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;/script&amp;gt;.html"><span class="kw2">&lt;/script&gt;</span></span></a></span></div>
<p><strong>4. Shuffle - przekładanie się zdjęć:</strong><br />
<a href="http://pliki.vivee.info/users/agressiva/cycle/shuffle.html"><strong>Zobacz efekt</strong></a></p>
<div class="html dean_ch" style="white-space: nowrap;"><span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;script.html"><span class="kw2">&lt;script</span></span></a> <span class="kw3">type</span><span class="sy0">=</span><span class="st0">&quot;text/javascript&quot;</span><span class="sy0"><a href="http://december.com/html/4/element/&amp;gt;.html"><span class="kw2">&gt;</span></span></a></span><br />
$(document).ready(function() {<br />
&nbsp; &nbsp; $('.slideshow').cycle({<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; fx: &nbsp; &nbsp;'shuffle', <br />
&nbsp; &nbsp; delay: -4000 <br />
&nbsp; &nbsp; &nbsp; &nbsp; });<br />
});<br />
<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;/script&amp;gt;.html"><span class="kw2">&lt;/script&gt;</span></span></a></span></div>
<p><strong>5. Scrollleft - przewijanie w lewo</strong><br />
<a href="http://pliki.vivee.info/users/agressiva/cycle/scrollleft.html"><strong>Zobacz efekt</strong></a></p>
<div class="html dean_ch" style="white-space: nowrap;"><span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;script.html"><span class="kw2">&lt;script</span></span></a> <span class="kw3">type</span><span class="sy0">=</span><span class="st0">&quot;text/javascript&quot;</span><span class="sy0"><a href="http://december.com/html/4/element/&amp;gt;.html"><span class="kw2">&gt;</span></span></a></span><br />
$(document).ready(function() {<br />
&nbsp; &nbsp; $('.slideshow').cycle({<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; fx: &nbsp; &nbsp; 'scrollLeft', <br />
&nbsp; &nbsp; timeout: 5000, <br />
&nbsp; &nbsp; &nbsp; &nbsp; });<br />
});<br />
<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;/script&amp;gt;.html"><span class="kw2">&lt;/script&gt;</span></span></a></span></div>
<p><strong>6. Multi - zastosowanie wielu efektów jednocześnie</strong><br />
<a href="http://pliki.vivee.info/users/agressiva/cycle/multi.html"><strong>Zobacz efekt</strong></a></p>
<div class="html dean_ch" style="white-space: nowrap;"><span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;script.html"><span class="kw2">&lt;script</span></span></a> <span class="kw3">type</span><span class="sy0">=</span><span class="st0">&quot;text/javascript&quot;</span><span class="sy0"><a href="http://december.com/html/4/element/&amp;gt;.html"><span class="kw2">&gt;</span></span></a></span><br />
$(document).ready(function() {<br />
&nbsp; &nbsp; $('.slideshow').cycle({<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; fx: &nbsp; &nbsp; 'scrollHorz,zoom,fadeZoom,slideX,turnUp,scrollHorz,toss,uncover,scrollDown,shuffle,wipe,fade', <br />
&nbsp; &nbsp; timeout: 5000, <br />
&nbsp; &nbsp; &nbsp; &nbsp; });<br />
});<br />
<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;/script&amp;gt;.html"><span class="kw2">&lt;/script&gt;</span></span></a></span></div>
<p>Te oraz inne efekty dokładnie opisane i zobrazowane znajdziecie na: <a href="http://jquery.malsup.com/cycle/begin.html"><strong>Beginner Demos</strong></a></p>
<p>Mam nadzieję, że ten prosty instruktarz okażę się pomocny.</p>
<img src="http://vivee.info/?ak_action=api_record_view&id=2125&type=feed" alt="" /><p class='fb-like'><iframe src='http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fvivee.info%2F2011%2F01%2F01%2Fjquery-cycle%2F&amp;layout=standard&amp;show_faces=true&amp;width=450&amp;action=like&amp;colorscheme=light&amp;height=65&amp;font=lucida+grande' scrolling='no' frameborder='0' allowTransparency='true' style='border:none; overflow:hidden; width:450px; height:65px'></iframe></p>]]></content:encoded>
			<wfw:commentRss>http://vivee.info/2011/01/01/jquery-cycle/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>Tworzenie nowych bloków w panelu administratora</title>
		<link>http://vivee.info/2010/10/06/tworzenie-nowych-blokow-w-panelu-administratora/</link>
		<comments>http://vivee.info/2010/10/06/tworzenie-nowych-blokow-w-panelu-administratora/#comments</comments>
		<pubDate>Wed, 06 Oct 2010 12:27:40 +0000</pubDate>
		<dc:creator>palmiak</dc:creator>
				<category><![CDATA[Inne tutoriale wordpressowe]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://vivee.info/?p=2089</guid>
		<description><![CDATA[Jestem leniwy. Nie jest to coś godnego pochwały, ale jednak. I tak oto moje lenistwo focha strzeliło podczas pisania jednego z projektów, gdzie musiałem dopisać do każdego wpisu kilka pól użytkownika (custom fields). Po trzecim wpisie foch był już okrutny i postanowiłem jakoś to obejść - najlepiej pisząc pod formularzem edycji wpisu dodatkowy formularz w [...]]]></description>
			<content:encoded><![CDATA[<p>Jestem leniwy. Nie jest to coś godnego pochwały, ale jednak. I tak oto moje lenistwo focha strzeliło podczas pisania jednego z projektów, gdzie musiałem dopisać do każdego wpisu kilka pól użytkownika (custom fields). Po trzecim wpisie foch był już okrutny i postanowiłem jakoś to obejść - najlepiej pisząc pod formularzem edycji wpisu dodatkowy formularz w którym będę miał wypisane wszystkie cf, a wartości przygotowane jako listy rozwijane, żeby tylko sobie wybrać co trzeba. Jako, że jakoś się z tym ogarnąłem to podzielę się teraz tą wiedzą z Wami.<span id="more-2089"></span></p>
<p>Twórcy WordPressa na szczęście po raz kolejny okazali się bardzo sympatyczni i dodanie takiego ficzerka jest naprawdę proste. Można to zrobić na dwa sposoby - albo poprzez <code>functions.php</code> (czyli będzie to działać tylko z tą skórą w której to napiszemy) albo jako plugin (bardziej uniwersalne).</p>
<h2>Pierwszy blok</h2>
<p>Najpierw musimy napisać kilka linijek dzięki którym stworzymy nasz nowy blok:</p>
<div class="php dean_ch" style="white-space: nowrap;"><span class="kw2">function</span> admin_init<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#123;</span> &nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; add_meta_box<span class="br0">&#40;</span><span class="st0">&quot;testblock&quot;</span>, <span class="st0">&quot;Fajny Tytuł&quot;</span>, <span class="st0">&quot;test_block&quot;</span>, <span class="st0">&quot;post&quot;</span>, <span class="st0">&quot;advanced&quot;</span>, <span class="st0">&quot;high&quot;</span><span class="br0">&#41;</span>; &nbsp;<br />
<span class="br0">&#125;</span></div>
<p>Funkcja add_meta_box (więcej info <a href="http://codex.wordpress.org/Function_Reference/add_meta_box">tutaj</a>) odpowiada właśnie za tworzenie takich bloków. Kolejno jako parametry podajemy identyfikator, tytuł bloku, funkcję którą ten blok wykona, pod co podpinamy, umiejscowienie oraz ułożenie. Warto poczytać sobie codex, gdyż są tam dokładnie podane z jakich umiejscowień możemy korzystać etc. W naszym przypadku stworzymy blok, który będzie widoczny tylko pod wpisami (post), będzie miał tytuł "Fajny Tytuł" i wywoła funkcję test_block() (której to jeszcze nie napisalismy).</p>
<p>No to czas ją napisać:</p>
<div class="php dean_ch" style="white-space: nowrap;"><span class="kw2">function</span> test_block<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#123;</span><br />
<a href="http://www.php.net/echo"><span class="kw3">echo</span></a> <span class="st0">'plum'</span>;<br />
<span class="br0">&#125;</span></div>
<p>Jak nietrudno zauważyć w obecnej postaci w bloku powinien się pojawić napis "plum" i już. Jednak to jeszcze nie wszystko, żeby to zadziałało - musimy jeszcze blok zainicjalizować. Robimy to następująco:</p>
<div class="php dean_ch" style="white-space: nowrap;"><span class="kw1">if</span><span class="br0">&#40;</span>is_admin<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; add_action<span class="br0">&#40;</span><span class="st0">&quot;admin_init&quot;</span>, <span class="st0">&quot;admin_init&quot;</span><span class="br0">&#41;</span>; &nbsp;<br />
<span class="br0">&#125;</span><br />
&nbsp;</div>
<p>Teraz gdy spojrzymy w panel pod textarea na treść wpisu powinien pojawić się nasz blok a w nim napis "plum".</p>
<h2>Zwiększamy funkcjonalność</h2>
<p>Niestety radość z pluma szybko mija i warto by zrobić z tego coś bardziej praktycznego. Np. zrobimy sobie formularz za pomocą którego będzie nam łatwiej dodawać custom fields.</p>
<div class="php dean_ch" style="white-space: nowrap;"><span class="kw2">function</span> test_block<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#123;</span><br />
<a href="http://www.php.net/global"><span class="kw3">global</span></a> <span class="re0">$post</span>; &nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$custom</span> = get_post_custom<span class="br0">&#40;</span><span class="re0">$post</span>-<span class="sy0">&gt;</span><span class="me1">ID</span><span class="br0">&#41;</span>; &nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$muzyka</span> = <span class="re0">$custom</span><span class="br0">&#91;</span><span class="st0">&quot;muzyka&quot;</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span>; &nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$pogoda</span> = <span class="re0">$custom</span><span class="br0">&#91;</span><span class="st0">&quot;pogoda&quot;</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$reszta</span> = <span class="re0">$custom</span><span class="br0">&#91;</span><span class="st0">&quot;reszta&quot;</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span>; &nbsp;<br />
<span class="kw2">?&gt;</span> &nbsp; &nbsp;<br />
&nbsp; &nbsp; <span class="sy0">&lt;</span>label<span class="sy0">&gt;</span>Czego słucham:<span class="sy0">&lt;/</span>label<span class="sy0">&gt;&lt;</span>br<span class="sy0">/&gt;</span><br />
&nbsp; &nbsp; <span class="sy0">&lt;</span>select name=<span class="st0">&quot;muzyka&quot;</span><span class="sy0">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&lt;</span>option <span class="kw2">&lt;?php</span> <span class="kw1">if</span><span class="br0">&#40;</span><span class="re0">$muzyka</span>==<span class="st0">'Rock'</span><span class="br0">&#41;</span><span class="br0">&#123;</span> <a href="http://www.php.net/echo"><span class="kw3">echo</span></a> <span class="st0">'selected=&quot;selected&quot;'</span>;<span class="br0">&#125;</span> ?<span class="sy0">&gt;&gt;</span>Rock<span class="sy0">&lt;/</span>option<span class="sy0">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&lt;</span>option <span class="kw2">&lt;?php</span> <span class="kw1">if</span><span class="br0">&#40;</span><span class="re0">$muzyka</span>==<span class="st0">'Pop'</span><span class="br0">&#41;</span><span class="br0">&#123;</span> <a href="http://www.php.net/echo"><span class="kw3">echo</span></a> <span class="st0">'selected=&quot;selected&quot;'</span>;<span class="br0">&#125;</span> ?<span class="sy0">&gt;&gt;</span>Pop<span class="sy0">&lt;/</span>option<span class="sy0">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&lt;</span>option <span class="kw2">&lt;?php</span> <span class="kw1">if</span><span class="br0">&#40;</span><span class="re0">$muzyka</span>==<span class="st0">'Disco Polo'</span><span class="br0">&#41;</span><span class="br0">&#123;</span> <a href="http://www.php.net/echo"><span class="kw3">echo</span></a> <span class="st0">'selected=&quot;selected&quot;'</span>;<span class="br0">&#125;</span> ?<span class="sy0">&gt;&gt;</span>Disco polo<span class="sy0">&lt;/</span>option<span class="sy0">&gt;</span><br />
&nbsp; &nbsp; <span class="sy0">&lt;/</span>select<span class="sy0">&gt;&lt;</span>br<span class="sy0">/&gt;</span><br />
&nbsp; &nbsp; <span class="sy0">&lt;</span>label<span class="sy0">&gt;</span>Jaka jest pogoda<span class="sy0">&lt;/</span>label<span class="sy0">&gt;&lt;</span>br<span class="sy0">/&gt;</span><br />
&nbsp; &nbsp; <span class="sy0">&lt;</span>select name=<span class="st0">&quot;pogoda&quot;</span><span class="sy0">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&lt;</span>option <span class="kw2">&lt;?php</span> <span class="kw1">if</span><span class="br0">&#40;</span><span class="re0">$pogoda</span>==<span class="st0">'Pada'</span><span class="br0">&#41;</span><span class="br0">&#123;</span> <a href="http://www.php.net/echo"><span class="kw3">echo</span></a> <span class="st0">'selected=&quot;selected&quot;'</span>;<span class="br0">&#125;</span> ?<span class="sy0">&gt;&gt;</span>Pada<span class="sy0">&lt;/</span>option<span class="sy0">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&lt;</span>option <span class="kw2">&lt;?php</span> <span class="kw1">if</span><span class="br0">&#40;</span><span class="re0">$pogoda</span>==<span class="st0">'Leje'</span><span class="br0">&#41;</span><span class="br0">&#123;</span> <a href="http://www.php.net/echo"><span class="kw3">echo</span></a> <span class="st0">'selected=&quot;selected&quot;'</span>;<span class="br0">&#125;</span> ?<span class="sy0">&gt;&gt;</span>Leje<span class="sy0">&lt;/</span>option<span class="sy0">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&lt;</span>option <span class="kw2">&lt;?php</span> <span class="kw1">if</span><span class="br0">&#40;</span><span class="re0">$pogoda</span>==<span class="st0">'Bul bul bul'</span><span class="br0">&#41;</span><span class="br0">&#123;</span> <a href="http://www.php.net/echo"><span class="kw3">echo</span></a> <span class="st0">'selected=&quot;selected&quot;'</span>;<span class="br0">&#125;</span> ?<span class="sy0">&gt;&gt;</span>Bul bul bul<span class="sy0">&lt;/</span>option<span class="sy0">&gt;</span><br />
&nbsp; &nbsp; <span class="sy0">&lt;/</span>select<span class="sy0">&gt;&lt;</span>br<span class="sy0">/&gt;</span> &nbsp;<br />
&nbsp; &nbsp; <span class="sy0">&lt;</span>label<span class="sy0">&gt;</span>Napisz coś jeszcze:<span class="sy0">&lt;/</span>label<span class="sy0">&gt;&lt;</span>input name=<span class="st0">&quot;reszta&quot;</span> value=<span class="st0">&quot;&lt;?php echo $reszta; ?&gt;&quot;</span> <span class="sy0">/&gt;</span><br />
<span class="kw2">&lt;?php</span> &nbsp;<br />
<span class="br0">&#125;</span></div>
<p>Dzięki temu w skórze pojawi nam się formularz w którym możemy wybrać sobie gatunek muzyki, pogodę i coś tam jeszcze napisać. W obecnej chwili poza wyświetlaniem nic innego nie robi - musimy jeszcze stworzyć funkcję, która wrzuci te zmienne do custom fields oraz poinformować WP, żeby przy każdym zapisie wpisu był łaskaw takową funkcję wywołać.</p>
<p>Najpierw funkcja do zapisu:</p>
<div class="php dean_ch" style="white-space: nowrap;"><span class="kw2">function</span> save_cf<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#123;</span> &nbsp;<br />
&nbsp; &nbsp; <a href="http://www.php.net/global"><span class="kw3">global</span></a> <span class="re0">$post</span>; &nbsp;<br />
&nbsp; &nbsp; update_post_meta<span class="br0">&#40;</span><span class="re0">$post</span>-<span class="sy0">&gt;</span><span class="me1">ID</span>, <span class="st0">&quot;muzyka&quot;</span>, <span class="re0">$_POST</span><span class="br0">&#91;</span><span class="st0">&quot;muzyka&quot;</span><span class="br0">&#93;</span><span class="br0">&#41;</span>; &nbsp;<br />
&nbsp; &nbsp; update_post_meta<span class="br0">&#40;</span><span class="re0">$post</span>-<span class="sy0">&gt;</span><span class="me1">ID</span>, <span class="st0">&quot;pogoda&quot;</span>, <span class="re0">$_POST</span><span class="br0">&#91;</span><span class="st0">&quot;pogoda&quot;</span><span class="br0">&#93;</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; update_post_meta<span class="br0">&#40;</span><span class="re0">$post</span>-<span class="sy0">&gt;</span><span class="me1">ID</span>, <span class="st0">&quot;reszta&quot;</span>, <span class="re0">$_POST</span><span class="br0">&#91;</span><span class="st0">&quot;reszta&quot;</span><span class="br0">&#93;</span><span class="br0">&#41;</span>;<br />
<span class="br0">&#125;</span> &nbsp;</div>
<p>Po kolei tworzy lub uaktualnia zawartość kolejnych pól.</p>
<p>A by to wszystkow wywołać poprawiamy to napisaliśmy przy wywoływaniu bloku:</p>
<div class="php dean_ch" style="white-space: nowrap;"><span class="kw1">if</span><span class="br0">&#40;</span>is_admin<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; add_action<span class="br0">&#40;</span><span class="st0">&quot;admin_init&quot;</span>, <span class="st0">&quot;admin_init&quot;</span><span class="br0">&#41;</span>; &nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; add_action<span class="br0">&#40;</span><span class="st0">'save_post'</span>, <span class="st0">'save_cf'</span><span class="br0">&#41;</span>; &nbsp;<br />
&nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp;</div>
<p class="insp"><a href="http://pliki.vivee.info/users/palmiak/panel/1.png"><img src="http://pliki.vivee.info/users/palmiak/panel/1.png" alt="Tworzenie nowych bloków w panelu administratora" /></a></p>
<p>I już. Wszystko powinno działać jak ta lala <img src='http://vivee.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Teraz Wasza kolej - dopisujcie własne bloki. We wpisach, na stronach, po bokach lub na dole. Róbcie z nimi co chcecie.</p>
<img src="http://vivee.info/?ak_action=api_record_view&id=2089&type=feed" alt="" /><p class='fb-like'><iframe src='http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fvivee.info%2F2010%2F10%2F06%2Ftworzenie-nowych-blokow-w-panelu-administratora%2F&amp;layout=standard&amp;show_faces=true&amp;width=450&amp;action=like&amp;colorscheme=light&amp;height=65&amp;font=lucida+grande' scrolling='no' frameborder='0' allowTransparency='true' style='border:none; overflow:hidden; width:450px; height:65px'></iframe></p>]]></content:encoded>
			<wfw:commentRss>http://vivee.info/2010/10/06/tworzenie-nowych-blokow-w-panelu-administratora/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>WordPress Plugin – Easing Slider</title>
		<link>http://vivee.info/2010/10/02/wordpress-plugin-%e2%80%93-easing-slider/</link>
		<comments>http://vivee.info/2010/10/02/wordpress-plugin-%e2%80%93-easing-slider/#comments</comments>
		<pubDate>Sat, 02 Oct 2010 20:48:37 +0000</pubDate>
		<dc:creator>agressiva</dc:creator>
				<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[Wtyczki do Wordpressa]]></category>
		<category><![CDATA[Easing Slider]]></category>

		<guid isPermaLink="false">http://vivee.info/?p=2081</guid>
		<description><![CDATA[Easing Slider to wtyczka umożliwiająca nam umieszczanie na naszej wordpressowej stronie modnego w ostatnim czasie slidera obrazków. Instalacja: Za pomocą FTP: 1. Pobieramy wtyczkę z strony www.wordpress.org/extend/plugins/easing-slider/ 2. Poprzez FTP kopiujemy zawartość archiwum do katalogu wp-content/plugins 3. W panelu administracyjnym w zakładce Wtyczki aktywujemy nową wtyczkę o nazwie Easing Slider Za pomocą automatycznej instalacji 1. [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://wordpress.org/extend/plugins/easing-slider/"><strong>Easing Slider</strong></a> to wtyczka umożliwiająca nam umieszczanie na naszej wordpressowej stronie modnego w ostatnim czasie slidera obrazków. </p>
<p class="insp">
<a href="http://agressiva.poprostuja.pl/wp-content/uploads/2010/10/easingslider_1.jpg"><img src="http://agressiva.poprostuja.pl/wp-content/uploads/2010/10/easingslider_1.jpg" alt="" title="easingslider_1" width="590" height="338" class="aligncenter size-full wp-image-1199" /></a>
</p>
<p><span id="more-2081"></span></p>
<p class="insp">
<a class="button" href="http://www.easingslider.matthewruddy.com/"><img src="http://pliki.vivee.info/demo.jpg" alt="demo" /></a><a class="button" href="http://downloads.wordpress.org/plugin/easing-slider.1.1.5.zip"><img src="http://pliki.vivee.info/download.jpg" alt="pobierz" /></a>
</p>
<h2>Instalacja:</h2>
<ul>
<li><strong>Za pomocą FTP:</strong><br />
1. Pobieramy wtyczkę z strony <a href="http://wordpress.org/extend/plugins/easing-slider/">www.wordpress.org/extend/plugins/easing-slider/</a><br />
2. Poprzez FTP kopiujemy zawartość archiwum do katalogu <strong>wp-content/plugins</strong><br />
3. W panelu administracyjnym w zakładce <strong>Wtyczki</strong> aktywujemy nową wtyczkę o nazwie <strong>Easing Slider</strong></li>
<li><strong>Za pomocą automatycznej instalacji</strong><br />
1. W panelu administracyjnym w zakładce <strong>Wtyczki</strong> wybieramy z submenu pozycję <strong>Dodaj nową</strong><br />
2. W polu wyszukiwania wtyczek po nazwach wpisujemy Easing Slider, po odnalezieniu jej klikamy na opcję <strong>Zainstaluj</strong><br />
3. Po automatycznym zamieszczeniu wtyczki na serwerze uruchamiamy ją w zakładce <strong>Wtyczki</strong>.</li>
</ul>
<p>Po zainstalowaniu wtyczki, pojawi się dodatkowa zakładka w menu WordPressa.</p>
<p class="insp">
<a href="http://agressiva.poprostuja.pl/wp-content/uploads/2010/10/easingslider_4.jpg"><img src="http://agressiva.poprostuja.pl/wp-content/uploads/2010/10/easingslider_4.jpg" alt="" title="easingslider_4" width="153" height="132" class="aligncenter size-full wp-image-1211" /></a>
</p>
<h2>Umieszczanie slidera na stronie:</h2>
<p>Slder możemy zamieścić bezpośrednio w skórze, w dowolnie wybranym przez nas miejscu wklejając tą funkcję w kod:</p>
<div class="php dean_ch" style="white-space: nowrap;"><span class="kw2">&lt;?php</span> <span class="kw1">if</span> <span class="br0">&#40;</span><a href="http://www.php.net/function_exists"><span class="kw3">function_exists</span></a><span class="br0">&#40;</span><span class="st0">'easing_slider'</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="br0">&#123;</span> easing_slider<span class="br0">&#40;</span><span class="br0">&#41;</span>; <span class="br0">&#125;</span>; <span class="kw2">?&gt;</span></div>
<p>Mamy też możliwość zamieszczenia slidera w pojedynczym wpisie lub stronie statycznej poprzez shortcode:</p>
<div class="php dean_ch" style="white-space: nowrap;"><span class="br0">&#91;</span>easingslider<span class="br0">&#93;</span></div>
<h2>Dodawanie obrazków:</h2>
<p class="insp">
<a href="http://agressiva.poprostuja.pl/wp-content/uploads/2010/10/easingslider_5.jpg"><img src="http://agressiva.poprostuja.pl/wp-content/uploads/2010/10/easingslider_5-550x503.jpg" alt="" title="easingslider_5" width="550" height="503" class="aligncenter size-medium wp-image-1214" /></a>
</p>
<p>Nowe obrazki które wyświetlane będą w sliderze dodajemy podobnie jak inne media w WP. Po kliknięciu na Upload Image pojawi się nam znane okienko uloadowania plików z komputera. Wszystkie dodane przez nas obrazki do slidera trzymane są w zakładce <strong>Media</strong> - tutaj możemy nimi bezproblemowo zarządzać. </p>
<p>Po wgraniu obrazka należy skopiować jego adres bezpośredni:</p>
<p class="insp">
<a href="http://agressiva.poprostuja.pl/wp-content/uploads/2010/10/easingslider_8.jpg"><img src="http://agressiva.poprostuja.pl/wp-content/uploads/2010/10/easingslider_8-550x527.jpg" alt="" title="easingslider_8" width="550" height="527" class="aligncenter size-medium wp-image-1218" /></a>
</p>
<p>Następnie skopiowany adres pliku wklejamy w pole <strong>Image Path:</strong>. W polu <strong>Image Link:</strong> podajemy adres url strony pod jaką mamy być kierowani po kliknięciu na dany obrazek. </p>
<h2>Ustawienia slidera:</h2>
<p class="insp">
<a href="http://agressiva.poprostuja.pl/wp-content/uploads/2010/10/easingslider_6.jpg"><img src="http://agressiva.poprostuja.pl/wp-content/uploads/2010/10/easingslider_6-550x538.jpg" alt="" title="easingslider_6" width="550" height="538" class="aligncenter size-medium wp-image-1215" /></a>
</p>
<ul>
<li><strong>disableShadow</strong> - ukrywanie cienia pod sliderem</li>
<li><strong>shadowStyle</strong> - styl cienia</li>
<li><strong>next/prevButtons</strong> - pokazywanie buttona "następny", "poprzedni"</li>
<li><strong>nextbuttonIcon </strong>- zmienia buttona, można podać ścieżkę własnej ikony</li>
<li><strong>prevbuttonIcon</strong> - zmienia buttona, można podać ścieżkę własnej ikony</li>
<li><strong>Slider "width" </strong>- szerokość slidera</li>
<li><strong>Slider "height" </strong>- wysokość slidera</li>
<li><strong>paddingBottom</strong> - padding dolny</li>
<li><strong>paddingTop</strong> - padding górny</li>
<li><strong>paddingRight</strong> - padding prawy</li>
<li><strong>paddingLeft</strong> - padding lewy</li>
<li><strong>backgroundColour</strong> - kolor tła pod obrazkami w sliderze</li>
<li><strong>startPosition</strong> - pierwsza plansza slidera</li>
<li><strong>transitionSpeed</strong> - czas w jakim widoczny jest jeden obrazek przed zmianą na następny</li>
<li><strong>autoPlay</strong> - szybkość zmiany obrazków</li>
<li><strong>animationStyle</strong> - rodzaj animacji / przechodzenia obrazków</li>
<li><strong>borderWidth</strong> - szerokość bordera / obramowania slidera</li>
<li><strong>borderColour </strong>- kolor tego obramowania</li>
<li><strong>preloadIcon</strong> - ikona przed wczytaniem obrazków</li>
<li><strong>pagination</strong> - pokazywanie stronicowania obrazków</li>
<li><strong>paginationPosition</strong> - położenie stronicowania</li>
<li><strong>paginationIcon (on)</strong> - zmienia ikony stronicowania (aktywnej planszy) - należy podać adres obrazka</li>
<li><strong>paginationIcon (off)</strong> - zmienia ikony stronicowania (nieaktywnej planszy) - należy podać adres obrazka</li>
</ul>
<h2>Przykłady:</h2>
<p class="insp">
<a href="http://agressiva.poprostuja.pl/wp-content/uploads/2010/10/easingslider_3.jpg"><img src="http://agressiva.poprostuja.pl/wp-content/uploads/2010/10/easingslider_3.jpg" alt="" title="easingslider_3" width="590" height="278" class="aligncenter size-full wp-image-1201" /></a>
</p>
<p class="insp">
<a href="http://agressiva.poprostuja.pl/wp-content/uploads/2010/10/easingslider_2.jpg"><img src="http://agressiva.poprostuja.pl/wp-content/uploads/2010/10/easingslider_2.jpg" alt="" title="easingslider_2" width="590" height="366" class="aligncenter size-full wp-image-1200" /></a>
</p>
<p class="insp">
<a href="http://agressiva.poprostuja.pl/wp-content/uploads/2010/10/easingslider_1.jpg"><img src="http://agressiva.poprostuja.pl/wp-content/uploads/2010/10/easingslider_1.jpg" alt="" title="easingslider_1" width="590" height="338" class="aligncenter size-full wp-image-1199" /></a></p>
<img src="http://vivee.info/?ak_action=api_record_view&id=2081&type=feed" alt="" /><p class='fb-like'><iframe src='http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fvivee.info%2F2010%2F10%2F02%2Fwordpress-plugin-%25e2%2580%2593-easing-slider%2F&amp;layout=standard&amp;show_faces=true&amp;width=450&amp;action=like&amp;colorscheme=light&amp;height=65&amp;font=lucida+grande' scrolling='no' frameborder='0' allowTransparency='true' style='border:none; overflow:hidden; width:450px; height:65px'></iframe></p>]]></content:encoded>
			<wfw:commentRss>http://vivee.info/2010/10/02/wordpress-plugin-%e2%80%93-easing-slider/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>WP 3.0 &#8211; w końcu porządnie rozwiązane menu</title>
		<link>http://vivee.info/2010/06/05/wp-3-0-w-koncu-porzadnie-rozwiazane-menu/</link>
		<comments>http://vivee.info/2010/06/05/wp-3-0-w-koncu-porzadnie-rozwiazane-menu/#comments</comments>
		<pubDate>Sat, 05 Jun 2010 22:12:18 +0000</pubDate>
		<dc:creator>palmiak</dc:creator>
				<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[wordpress 3.0]]></category>
		<category><![CDATA[wp 3.0]]></category>

		<guid isPermaLink="false">http://vivee.info/?p=2050</guid>
		<description><![CDATA[Jednym z mankamentów WP było od zawsze tworzenie menu. Tzn nie było problemu jeżeli menu składało się tylko z kategorii lub tylko ze stron. Najczęściej jednak łączyło w sobie jedno i drugie. W sumie sposobów na rozwiązanie(lub bardziej ominięcie) tego problemu było sporo, jednak ciężko powiedzieć, żeby kipiały one prostotą. Ja najczęściej stosowałem "sztywne" menu, [...]]]></description>
			<content:encoded><![CDATA[<p>Jednym z mankamentów WP było od zawsze tworzenie menu. Tzn nie było problemu jeżeli menu składało się tylko z kategorii lub tylko ze stron. Najczęściej jednak łączyło w sobie jedno i drugie. W sumie sposobów na rozwiązanie(lub bardziej ominięcie) tego problemu było sporo, jednak ciężko powiedzieć, żeby kipiały one prostotą. Ja najczęściej stosowałem "sztywne" menu, a podstrony i podkategorie przypinałem w odpowiednich miejscach.<span id="more-2050"></span></p>
<p>Na szczęście od wersji 3.0 będę sobie mógł to wyklikać i poprzeciągać. I to bez żadnych wtyczek.</p>
<h2>Wygląd i obsługa</h2>
<p>Wchodzimy sobie w Wygląd(Apperance)>Menus. Osoby, których skóra nie obsługuje jeszcze tych dynamicznie tworzonych menu przywita komunikat "The current theme does not natively support menus, but you can use the “Custom Menu” widget to add any menus you create here to the theme’s sidebar.". Nie martwcie się jednak - w następnym rozdziale to wyelminujemy.</p>
<p class="insp"><a href="http://pliki.vivee.info/users/palmiak/wp30/wp_menu.png" title="WP 3.0 - w końcu porządnie rozwiązane menu"><br />
<img src="http://pliki.vivee.info/users/palmiak/wp30/wp_menum.png" alt="WP 3.0 - w końcu porządnie rozwiązane menu"/><br />
</a></p>
<p>W sekcji 1. mamy wypisane jakie menu już potworzyliśmy, w 2. przyporządkowujemy menu do slotu na takowe, 3. sekcja to klocki z których tworzymy menu, a w 4. wszystko sobie układamy metodą przeciągania.</p>
<p>Dziecinnie proste czyż nie? </p>
<p>Najpierw tworzymy sobie puste menu, a następnie dodajemy kolejne elementy. Jeśli chcemy dodać link do vivee.info to wybieramy sobie <strong>Custom links</strong> wpisujemy url, etykietkę i klikamy na <strong>Add to menu</strong>. Jeżeli chcemy je przenieść na inną pozycję po prostu chwytamy i przeciągamy. Z kategoriami i stronami jest nawet prościej bo tylko zaptaszkowujemy co chcemy dodać do menu i po sprawie.</p>
<p>Kiedy już przygotujemy sobie menu, w <strong>Theme Locations</strong> przypisujemy je do odpowiedniej lokalizacji.</p>
<h2>Instalacja</h2>
<p>Jako, że już wiemy jakie te menu są fajne, super etc to warto by się nauczyć je uruchamiać.Zacznijmy od sprawdzenia czy w naszej skórze znajduje się plik <code>functions.php</code>, jeżeli go nie ma należy go utworzyć.</p>
<p>W tymże <code>functions.php</code> piszemy:</p>
<div class="php dean_ch" style="white-space: nowrap;">register_nav_menus<span class="br0">&#40;</span> <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">&#40;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st0">'main_menu'</span> =<span class="sy0">&gt;</span> <span class="st0">'Główne menu'</span>,<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st0">'sidebar_menu'</span> =<span class="sy0">&gt;</span> <span class="st0">'Boczne menu'</span><br />
<span class="br0">&#41;</span> <span class="br0">&#41;</span>;</div>
<p>Czymś takim deklarujemy, że w naszej skórze będą dwa menu - main_menu i sidebar_menu.</p>
<p>Teraz trzeba te menu przypisać gdzieś w skórze. W odpowiednich miejscach dopisujemy:</p>
<div class="php dean_ch" style="white-space: nowrap;"><span class="kw2">&lt;?php</span> wp_nav_menu<span class="br0">&#40;</span> <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">&#40;</span> <span class="st0">'sort_column'</span> =<span class="sy0">&gt;</span> <span class="st0">'menu_order'</span>, <span class="st0">'theme_location'</span>=<span class="sy0">&gt;</span><span class="st0">'main_menu'</span> <span class="br0">&#41;</span> <span class="br0">&#41;</span>; <span class="kw2">?&gt;</span></div>
<p>oraz</p>
<div class="php dean_ch" style="white-space: nowrap;"><span class="kw2">&lt;?php</span> wp_nav_menu<span class="br0">&#40;</span> <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">&#40;</span> <span class="st0">'sort_column'</span> =<span class="sy0">&gt;</span> <span class="st0">'menu_order'</span>, <span class="st0">'theme_location'</span>=<span class="sy0">&gt;</span><span class="st0">'sidebar_menu'</span> <span class="br0">&#41;</span> <span class="br0">&#41;</span>; <span class="kw2">?&gt;</span></div>
<p>Od tej chwili mamy już wszystko naszykowane i możemy w pełni cieszyć z nowej funkcjonalności WP 3.0.</p>
<h2>Jak przypisać na stałe menu do slotu</h2>
<p>Są sytuacje kiedy byśmy chcieli przypisać dane menu do slotu, tak żeby za pomocą panelu nie dało się tego zmienić.<br />
Jest na to bardzo proste wyjście:</p>
<div class="php dean_ch" style="white-space: nowrap;"><span class="kw2">&lt;?php</span> wp_nav_menu<span class="br0">&#40;</span> <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">&#40;</span> <span class="st0">'sort_column'</span> =<span class="sy0">&gt;</span> <span class="st0">'menu_order'</span>, <span class="st0">'menu'</span>=<span class="st0">'glowne'</span>, <span class="st0">'theme_location'</span>=<span class="sy0">&gt;</span><span class="st0">'main_menu'</span> <span class="br0">&#41;</span> <span class="br0">&#41;</span>; <span class="kw2">?&gt;</span></div>
<p>Spowoduje to, że naszym głównym menu zawsze będzie menu o nazwie 'glowne'.</p>
<h2>Jak stylować</h2>
<p>Funkcja wp_nav_menu generując menu dodaje od siebie troszkę id'ów i klas. Jeżeli wywołamy:</p>
<div class="php dean_ch" style="white-space: nowrap;"><span class="kw2">&lt;?php</span> wp_nav_menu<span class="br0">&#40;</span> <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">&#40;</span> <span class="st0">'sort_column'</span> =<span class="sy0">&gt;</span> <span class="st0">'menu_order'</span>, <span class="st0">'theme_location'</span>=<span class="sy0">&gt;</span><span class="st0">'main_menu'</span> <span class="br0">&#41;</span> <span class="br0">&#41;</span>; <span class="kw2">?&gt;</span></div>
<p>to otrzymamy (tak w zarysie) takie coś:</p>
<div class="php dean_ch" style="white-space: nowrap;">
<span class="sy0">&lt;</span>div <span class="kw2">class</span>=<span class="st0">&quot;menu-nazwa_menu-container&quot;</span><span class="sy0">&gt;</span><br />
&nbsp; &nbsp; <span class="sy0">&lt;</span>ul id=<span class="st0">&quot;menu-nazwa_menu&quot;</span> <span class="kw2">class</span>=<span class="st0">&quot;menu&quot;</span><span class="sy0">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&lt;</span>li<span class="sy0">&gt;&lt;</span>a href=<span class="st0">&quot;#&quot;</span><span class="sy0">&gt;&lt;/</span>a<span class="sy0">&gt;&lt;/</span>li<span class="sy0">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; ...<br />
&nbsp; &nbsp; <span class="sy0">&lt;/</span>ul<span class="sy0">&gt;</span><br />
<span class="sy0">&lt;/</span>div<span class="sy0">&gt;</span><br />
&nbsp;</div>
<p>Poza tym znaczniki otrzymają kilka klas, ale nie interesują one nas zbytnio.</p>
<p>Pierwsze co możemy zmienić to kontener - może być on albo jako <code>div</code> albo jako <code>nav</code>. Jeżeli wpiszemy inną wartość to kontener zniknie. Tak więc w zależności od tego co chcemy otrzymać dopisujemy np. <code>'container'=>'nav'</code>. </p>
<p>Jeżeli byśmy chcieli nadać kontenerowi jakąś inną klasę czy id wystarczy dopisać <code>'container_class'=>'nazwa_klasy'</code> lub <code>'container_id'=>'id_kontenera'</code>. W wersji RC1 container_id jeszcze nie działa (patrząc jednak po tym co jest w repozytorium to kolejna wersja wspiera już wszystko poprawnie).</p>
<p>Możemy też użyć 'menu_class'=>'nazwa_klasy', gdyby ktoś chciał zmienić klasę samego menu (czyli <code>ul</code>).</p>
<p>Kolejne co możemy zmodyfikować to zawartość linków w menu. Wszystko to za pomocą <code>link_before</code> i <code>link_after</code>.</p>
<p>Jeżeli zaś chcemy coś umieścić przed lub za linkiem to używamy <code>before</code> lub <code>after</code>.</p>
<p>Nasze menu ze wszystkimi parametrami wygląda tak:</p>
<div class="php dean_ch" style="white-space: nowrap;">
<span class="sy0">&lt;</span>div <span class="kw2">class</span>=<span class="st0">&quot;container_class&quot;</span> id=<span class="st0">&quot;container_id&quot;</span><span class="sy0">&gt;</span><br />
&nbsp; &nbsp; <span class="sy0">&lt;</span>ul id=<span class="st0">&quot;menu-nazwa_menu&quot;</span> <span class="kw2">class</span>=<span class="st0">&quot;menu_class&quot;</span><span class="sy0">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&lt;</span>li<span class="sy0">&gt;</span>before<span class="sy0">&lt;</span>a href=<span class="st0">&quot;#&quot;</span><span class="sy0">&gt;</span>link_before jakiś tekst link_after<span class="sy0">&lt;/</span>a<span class="sy0">&gt;</span>after<span class="sy0">&lt;/</span>li<span class="sy0">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; ...<br />
&nbsp; &nbsp; <span class="sy0">&lt;/</span>ul<span class="sy0">&gt;</span><br />
<span class="sy0">&lt;/</span>div<span class="sy0">&gt;</span><br />
&nbsp;</div>
<h2>Podsumowanie</h2>
<p>Ciężko jest cokolwiek zarzucić temu rozwiązaniu. Jest to funkcjonlaność, której brakowało, ale sposób w jaki ten brak naprawiono wynagradza tak długie oczekiwanie.</p>
<p>Niebawem kolejne wpisy opisujące nowe funkcje w WordPress 3.0.</p>
<img src="http://vivee.info/?ak_action=api_record_view&id=2050&type=feed" alt="" /><p class='fb-like'><iframe src='http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fvivee.info%2F2010%2F06%2F05%2Fwp-3-0-w-koncu-porzadnie-rozwiazane-menu%2F&amp;layout=standard&amp;show_faces=true&amp;width=450&amp;action=like&amp;colorscheme=light&amp;height=65&amp;font=lucida+grande' scrolling='no' frameborder='0' allowTransparency='true' style='border:none; overflow:hidden; width:450px; height:65px'></iframe></p>]]></content:encoded>
			<wfw:commentRss>http://vivee.info/2010/06/05/wp-3-0-w-koncu-porzadnie-rozwiazane-menu/feed/</wfw:commentRss>
		<slash:comments>26</slash:comments>
		</item>
		<item>
		<title>Jak za pomocą js poprawić wygląd formularzy</title>
		<link>http://vivee.info/2010/06/03/jak-za-pomoca-js-poprawic-wyglad-formularzy/</link>
		<comments>http://vivee.info/2010/06/03/jak-za-pomoca-js-poprawic-wyglad-formularzy/#comments</comments>
		<pubDate>Thu, 03 Jun 2010 23:02:29 +0000</pubDate>
		<dc:creator>palmiak</dc:creator>
				<category><![CDATA[Skrypty client-side]]></category>
		<category><![CDATA[XHTML/CSS]]></category>
		<category><![CDATA[formularze]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[niceforms]]></category>

		<guid isPermaLink="false">http://vivee.info/?p=2036</guid>
		<description><![CDATA[Tworząc strony dość często trzeba powojować z formularzami. Niestety dość często się zdarza współpraca z grafikiem, który o htmlu to za dużo nie wie, a wizje formularzy ma dość... finezyjne (np. ostylowany button przy input type="file"). Wtedy możemy albo zacząć ostro kombinować (background, js, pełna przezroczstość... po prostu cuda) albo powiedzieć, że się nie da. [...]]]></description>
			<content:encoded><![CDATA[<p>Tworząc strony dość często trzeba powojować z formularzami. Niestety dość często się zdarza współpraca z grafikiem, który o htmlu to za dużo nie wie, a wizje formularzy ma dość... finezyjne (np. ostylowany button przy input type="file"). Wtedy możemy albo zacząć ostro kombinować (background, js, pełna przezroczstość... po prostu cuda) albo powiedzieć, że się nie da. Ostatecznie pozostaje nam użyć <strong>Niceforms</strong>, czyli skryptu, w którym autor ostro pokombinował za nas.<span id="more-2036"></span></p>
<p class="insp">
<a href="http://pliki.vivee.info/users/palmiak/niceforms/niceforms.html"><img src="http://pliki.vivee.info/demo.jpg" alt="demo" /></a>
</p>
<h2>Jak to działa?</h2>
<p>Dla usera - po prostu banalnie. Całość ogranicza się do dopisania linijki (załączenie skryptu) oraz dopisania <code>class="niceform"</code>. Dodatkowo jeżeli chcemy zmienić wygląd formatek należy zedytować pliczek psd załączony do archiwum i zapisać obrazki.</p>
<p>Pod maską już się dzieje o wiele więcej rzeczy. Najprościej mówiąc wszystko działa na zasadzie ukrycia pola formularza, utworzenia nowego obiektu, który służy głównie do wyglądania oraz przekazywania wartości wpisywanej/wyklikiwanej w nasz nowy twór do ukrytego już pola.</p>
<p>Taki niestety urok stylowania formularzy i stąd tak kombinacje.</p>
<h2>Prosty formularzyk</h2>
<p>Najpierw będziemy bazować na tym co otrzymujemy z Niceforms.</p>
<p>Nasz formularzyk będzie banalnym polem do wpisania jakiegoś słowa.</p>
<p>Po pierwsze pobieramy Niceforms ze strony autora: <a href="http://www.emblematiq.com/lab/niceforms/download/">www.emblematiq.com</a>.</p>
<p>W sekcji head dopisujemy:</p>
<div class="html dean_ch" style="white-space: nowrap;">
<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;script.html"><span class="kw2">&lt;script</span></span></a> <span class="kw3">language</span><span class="sy0">=</span><span class="st0">&quot;javascript&quot;</span> <span class="kw3">type</span><span class="sy0">=</span><span class="st0">&quot;text/javascript&quot;</span> <span class="kw3">src</span><span class="sy0">=</span><span class="st0">&quot;niceforms.js&quot;</span>&gt;&lt;<span class="sy0">/</span>script&gt;</span><br />
<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;link.html"><span class="kw2">&lt;link</span></span></a> <span class="kw3">rel</span><span class="sy0">=</span><span class="st0">&quot;stylesheet&quot;</span> <span class="kw3">type</span><span class="sy0">=</span><span class="st0">&quot;text/css&quot;</span> <span class="kw3">media</span><span class="sy0">=</span><span class="st0">&quot;all&quot;</span> <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;niceforms-default.css&quot;</span> <span class="sy0">/</span><span class="sy0"><a href="http://december.com/html/4/element/&amp;gt;.html"><span class="kw2">&gt;</span></span></a></span><br />
&nbsp;</div>
<p>Następnie w body piszemy już formularz właściwy:</p>
<div class="html dean_ch" style="white-space: nowrap;">
<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;form.html"><span class="kw2">&lt;form</span></span></a> <span class="kw3">action</span><span class="sy0">=</span><span class="st0">&quot;&quot;</span> <span class="kw3">class</span><span class="sy0">=</span><span class="st0">&quot;niceform&quot;</span><span class="sy0"><a href="http://december.com/html/4/element/&amp;gt;.html"><span class="kw2">&gt;</span></span></a></span><br />
&nbsp; <span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;fieldset&amp;gt;.html"><span class="kw2">&lt;fieldset&gt;</span></span></a></span><br />
&nbsp; &nbsp; <span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;legend&amp;gt;.html"><span class="kw2">&lt;legend&gt;</span></span></a></span>Formularz do napisania czegoś<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;/legend&amp;gt;.html"><span class="kw2">&lt;/legend&gt;</span></span></a></span><br />
&nbsp; &nbsp; <span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;dl&amp;gt;.html"><span class="kw2">&lt;dl&gt;</span></span></a></span><br />
&nbsp; &nbsp; &nbsp; <span class="sc2">&lt;dt&gt;&lt;label <span class="kw3">for</span><span class="sy0">=</span><span class="st0">&quot;napisz_cos&quot;</span><span class="sy0"><a href="http://december.com/html/4/element/&amp;gt;.html"><span class="kw2">&gt;</span></span></a></span>Napisz coś<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;.html"><span class="kw2">&lt;</span></span></a><span class="sy0">/</span>label&gt;&lt;<span class="sy0">/</span>dt&gt;</span><br />
&nbsp; &nbsp; &nbsp; <span class="sc2">&lt;dd&gt;&lt;input <span class="kw3">id</span><span class="sy0">=</span><span class="st0">&quot;napisz_cos&quot;</span> <span class="sy0">/</span>&gt;&lt;<span class="sy0">/</span>dd&gt;</span><br />
&nbsp; &nbsp; <span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;/dl&amp;gt;.html"><span class="kw2">&lt;/dl&gt;</span></span></a></span><br />
&nbsp; &nbsp; <span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;dl&amp;gt;.html"><span class="kw2">&lt;dl&gt;</span></span></a></span><br />
&nbsp; &nbsp; &nbsp; <span class="sc2">&lt;dt&gt;&lt;input <span class="kw3">type</span><span class="sy0">=</span><span class="st0">&quot;submit&quot;</span> <span class="kw3">name</span><span class="sy0">=</span><span class="st0">&quot;submit&quot;</span> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">&quot;submit&quot;</span> <span class="kw3">value</span><span class="sy0">=</span><span class="st0">&quot;Wyślij&quot;</span> <span class="sy0">/</span>&gt;&lt;<span class="sy0">/</span>dt&gt;</span><br />
&nbsp; &nbsp; <span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;/dl&amp;gt;.html"><span class="kw2">&lt;/dl&gt;</span></span></a></span><br />
&nbsp; <span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;/fieldset&amp;gt;.html"><span class="kw2">&lt;/fieldset&gt;</span></span></a></span><br />
<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;/form&amp;gt;.html"><span class="kw2">&lt;/form&gt;</span></span></a></span><br />
&nbsp;</div>
<p>Najważniejsze jest to <code>class="niceform"</code>. I <a href="http://pliki.vivee.info/users/palmiak/niceforms/demo.html">tak oto wygląda</a> najprostsza wersja naszego formularza. </p>
<p>Załączone demo prezentujące wszystkie uroki Niceforms wygląda zaś <a href="http://pliki.vivee.info/users/palmiak/niceforms/niceforms.html">następująco</a>.</p>
<h2>A gdybyśmy chcieli zmienić grafikę?</h2>
<p>Potrzebować będziemy Photoshopa by otworzyć pliczek <strong>nf-standard-blue.psd</strong>. W nim zawarte są wszystkie grafiki związane z formularzem. Dodatkowo przygotowane są linie do cięcia, więc wystarczy wybrać zapisz dla web i zapisać same grafiki. Oczywiście można to zrobić po swojemu, tylko wtedy będzie troszkę więcej zabawy ze stylem. W sumie zabawy z PSem zostawiam Wam.</p>
<p>Opiszę teraz które klasy są używane do których elementów formularzy.</p>
<p><code>input type="text"</code> - NFText(robi za kontener w którym trzymane są kolejne elementy oraz to właśnie nim stylujemy tekst, który wpisujemy), NFTextCenter(odpowiada za rozciągającą się część tła - czyli środkową). NFTextLeft(odpowiada za lewą krawędź inputa), NFTextRight(odpowiada za prawą krawędź inputa)</p>
<p><code>input type="checkbox"</code> - NFCheck(odpowiada za ten buttonik czy coś jest zaznaczone czy nie)</p>
<p><code>input type="radio"</code> - NFRadio(odpowiada za ten buttonik czy coś jest zaznaczone czy nie)</p>
<p><code>input type="button"</code> - NFButton(środkowa część przycisku, rozszerzająca się w zależności od ilości tekstu), NFButtonLeft(lewa krawędź przycisku), NFButtonRight(prawa krawędź przycisku)</p>
<p><code>input type="file"</code> - NFFileButton(fragment udający guzik w file), NFFileNew(nowy input który udaje funkcjonalność lewej części file) dodadkowo wykorzystywane są tutaj NFText oraz NFTextLeft</p>
<p><code>textarea</code> - NFTextarea(tu wklepujemy zawartość), NFTextareaTop, NFTextareaBottom, NFTextareaTopLeft, NFTextareaTopRight, NFTextareaBottomLeft, NFTextareaBottomRight(poszczególne krawędzie pola), NFTextareaTopH, NFTextareaBottomH, NFTextareaTopLeftH, NFTextareaTopRightH, NFTextareaBottomLeftH, NFTextareaBottomRightH(poszczególne krawędzie po najeździe)</p>
<p><code>select</code> - NFSelect(kontener dla kolejnych elementów), NFSelectLeft(lewa część selecta - warto się przyjrzeć obrazkom, że zrozumieć jak to jest konstruowane), NFSelectRight(prawa część selecta), NFSelectOptions(czyli to co się pojawia po pliknięciu w selecta - tak naprawdę jest to ul)</p>
<p><code>select multiple="multiple"</code> - w sumie jest to prawie to co textarea, tylko nazwy zamiast NFTextarea mają na początku NFMultiSelect</p>
<p>Poza tymi klasami mamy kilka dodatkowych, których w większości przypadków ruszać nie należy:<br />
NFfocused - są nadawane elementom na których obecnie jest focus<br />
NFh - przesuwa tło by nadać mu pozycję 0 100% (używane w większości formatek)<br />
NFhr - przesuwa tło by nadać mu pozycję 100% 100% (używane przy select)<br />
NFhidden - ukrywa elementy, ale w taki sposób, że dalej są one funkcjonale (poprzez nadanie pełnej przezroczystości)</p>
<p>Mając opis klas, psd oraz gotowy wzór pozostaje tylko troszkę cierpliwości i powinno się udać. </p>
<p>Jeżeli nie będziecie zmieniać rozmiarów podmiana obrazków będzie bardzo szybkim procesem. W przeciwnym razie będzie trzeba troszkę podrasować arkusz stylu.</p>
<h2>Podsumowanie</h2>
<p>Jak widzicie stworzenie wymarzonych formularzy dzięki Niceforms jest w sumie prostym i w miarę przyjemnym procesem. Szkoda, że do osiągnięcia takich efektów potrzebne jest sporo tricków dziejących się pod maską. Pozostaję nam więc starać się edukować grafików ze szczególnie ułańską fantazją, żeby akurat przy formularzach troszkę odpuścili.</p>
<img src="http://vivee.info/?ak_action=api_record_view&id=2036&type=feed" alt="" /><p class='fb-like'><iframe src='http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fvivee.info%2F2010%2F06%2F03%2Fjak-za-pomoca-js-poprawic-wyglad-formularzy%2F&amp;layout=standard&amp;show_faces=true&amp;width=450&amp;action=like&amp;colorscheme=light&amp;height=65&amp;font=lucida+grande' scrolling='no' frameborder='0' allowTransparency='true' style='border:none; overflow:hidden; width:450px; height:65px'></iframe></p>]]></content:encoded>
			<wfw:commentRss>http://vivee.info/2010/06/03/jak-za-pomoca-js-poprawic-wyglad-formularzy/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Tworzymy indywidualną stronę startową dla naszych fanów na Facebooku</title>
		<link>http://vivee.info/2010/05/27/tworzymy-indywidualna-strone-startowa-dla-naszych-fanow-na-facebooku/</link>
		<comments>http://vivee.info/2010/05/27/tworzymy-indywidualna-strone-startowa-dla-naszych-fanow-na-facebooku/#comments</comments>
		<pubDate>Thu, 27 May 2010 13:34:40 +0000</pubDate>
		<dc:creator>Piotr Sajnog</dc:creator>
				<category><![CDATA[Tutoriale]]></category>
		<category><![CDATA[Webmaster]]></category>

		<guid isPermaLink="false">http://vivee.info/?p=2024</guid>
		<description><![CDATA[Dziś opiszę wam krok po kroku, jak wykonać indywidualną, specjalną stronę startową (landing page) na profilu dla fanów (fanpage) na Facebooku. Jest to strona, którą użytkownicy Facebooka, którzy nie należą jeszcze do grona naszych fanów, zobaczą jako pierwszą po wejściu na nasz profil. Do wykonania tej strony wykorzystamy tzw. Statyczny FBML (Static FBML). Co to [...]]]></description>
			<content:encoded><![CDATA[<p>Dziś opiszę wam krok po kroku, jak wykonać indywidualną, specjalną stronę startową (landing page) na profilu dla fanów (fanpage) na Facebooku. Jest to strona, którą użytkownicy Facebooka, którzy nie należą jeszcze do grona naszych fanów, zobaczą jako pierwszą po wejściu na nasz profil. Do wykonania tej strony wykorzystamy tzw. <strong>Statyczny FBML</strong> (Static FBML).</p>
<p><span id="more-2024"></span></p>
<h2>Co to jest Statyczny FBML?</h2>
<p>Statyczny FBML (Static Facebook Markup Language) to aplikacja, dzięki której możemy do naszej strony fanowskiej na Facebooku dodawać indywidualne, spersonalizowane zakładki z różną ich zawartością. Dzięki Statycznemu FBML możemy stworzyć zakładkę, na przykład z filmami z YouTube, czy galerią zdjęć z serwisu Flickr. W tym wpisie pokażę jak wykonać prostą stronę powitalną dla gości naszej strony.</p>
<h2>Strona startowa krok po kroku</h2>
<p>Całą zabawę zaczynamy jednak nie od Facebooka, a od przygotowania w programie graficznym ilustracji, którą zamieścimy na naszej stronie powitalnej. Przy tworzeniu tej grafiki należy pamiętać o dwóch sprawach:</p>
<ul>
<li>szerokość grafiki powinna mieścić się w granicach 800 pikseli, aby zmieściła się w kolumnie</li>
<li>najlepiej zapisać ją jako GIF, żeby dość szybko się wczytywała</li>
</ul>
<p>Przygotowaną grafikę (<a href="http://www.piotrsajnog.pl/grafika/facebook-fanpage-powitanie.gif" target="_blank">zobacz moją</a>) przenosimy na nasz serwer i zapamiętujemy do niej link. Tak przygotowani przechodzimy na naszą stronę dla fanów i działamy w następujący sposób:</p>
<p>Wchodzimy na stronę <a title="Aplikacja FBML" href="http://www.facebook.com/apps/application.php?=4949752878" target="_blank">http://www.facebook.com/apps/application.php?=4949752878</a> i klikamy w link "Dodaj do mojej strony" znajdujący się bezpośrednio pod ilustracją aplikacji po lewej stronie ekranu. Z listy, która się pokaże wybieramy stronę, na której chcemy zamieścić naszą specjalną zakładkę.</p>
<p class="insp">
<a href="http://pliki.vivee.info/users/agressiva/fanpage/2.jpg"><img src="http://pliki.vivee.info/users/agressiva/fanpage/2m.jpg" alt="Tworzymy indywidualną stronę startową dla naszych fanów na Facebooku"/></a>
</p>
<p>Następnie klikamy w link <strong>"Edytuj element Strona"</strong> znajdujący się bezpośrednio pod ilustracją naszego profilu,</p>
<p class="insp">
<a href="http://pliki.vivee.info/users/agressiva/fanpage/3.jpg"><img src="http://pliki.vivee.info/users/agressiva/fanpage/3m.jpg" alt="Tworzymy indywidualną stronę startową dla naszych fanów na Facebooku"/></a>
</p>
<p>a następnie, na liście elementów odszukujemy pozycję FBML-FBML i klikamy w link <strong>"Ustawienia aplikacji"</strong> i zatwierdzamy dodanie zakładki klikając w przycisk <strong>"Okay"</strong>.</p>
<p class="insp">
<a href="http://pliki.vivee.info/users/agressiva/fanpage/4.jpg"><img src="http://pliki.vivee.info/users/agressiva/fanpage/4m.jpg" alt="Tworzymy indywidualną stronę startową dla naszych fanów na Facebooku"/></a>
</p>
<p>Teraz w tej samej pozycji FBML-FBML klikamy w link <strong>"Edytuj"</strong>. W oknie, które nam się pokaże wpisujemy:</p>
<ul>
<li>w pozycji "Tytuł boxa" tytuł zakładki, która pokaże się na naszej stronie profilowej</li>
<li>w pozycji "FBML" wpisujemy kod HTML, dzięki któremu wyświetli się nam przygotowana wcześniej ilustracja</li>
</ul>
<p>Następnie klikamy w przycisk <strong>"Zapisz zmiany"</strong>.</p>
<p class="insp">
<a href="http://pliki.vivee.info/users/agressiva/fanpage/5.jpg"><img src="http://pliki.vivee.info/users/agressiva/fanpage/5m.jpg" alt="Tworzymy indywidualną stronę startową dla naszych fanów na Facebooku"/></a>
</p>
<p>Ostatnia rzecz jaką musimy zrobić to klikamy ponownie w link "Edytuj element Strona" a następnie link "Edytuj" w pozycji "Ustawienia tablicy". Z rozwijanej listy zatytułowanej "Domyślna etykieta dla pozostałych użytkowników" wybieramy zakładkę, którą właśnie skończyliśmy przygotowywać.</p>
<p class="insp">
<a href="http://pliki.vivee.info/users/agressiva/fanpage/6.jpg"><img src="http://pliki.vivee.info/users/agressiva/fanpage/6m.jpg" alt="Tworzymy indywidualną stronę startową dla naszych fanów na Facebooku"/></a>
</p>
<p>Efekt naszej pracy jest następujący: jeśli ktoś, kto nie należy jeszcze do grona naszych fanów wejdzie na nasz profil, zostanie automatycznie skierowany na stronę z zakładką, którą właśnie stworzyliśmy (<a title="Moja strona powitalna na stronie Fanów mojego bloga" href="http://www.facebook.com/piotrsajnogpl?v=app_4949752878" target="_blank">zobacz moją</a>), natomiast wszyscy nasi fani jako pierwszą zobaczą stronę z zakładką "Tablica".</p>
<h2>Inne możliwości</h2>
<p>Jak wspomniałem na początku artykułu dzięki statycznemu FBML możemy stworzyć zakładki, które mogą mieć różną zawartość. Polecam Wam <a href="http://www.hyperarts.com/blog/facebook-static-fbml-faq-tutorial/" target="_blank">wpis na blogu Hyper Arts</a>, w którym znajdziecie mnóstwo linków do tutoriali wyjaśniających, jak to zrobić.</p>
<h2>Podsumowanie</h2>
<p>Mam nadzieję, że wpis Wam się spodobał i skorzystacie z niego, aby stworzyć ciekawe strony startowe dla Waszych profili na Facebooku. Chętnie zobaczę Wasze gotowe dzieła <img src='http://vivee.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Jeśli znajdziecie jakieś oryginalne pomysły u innych, podzielcie się linkami w komentarzach.</p>
<img src="http://vivee.info/?ak_action=api_record_view&id=2024&type=feed" alt="" /><p class='fb-like'><iframe src='http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fvivee.info%2F2010%2F05%2F27%2Ftworzymy-indywidualna-strone-startowa-dla-naszych-fanow-na-facebooku%2F&amp;layout=standard&amp;show_faces=true&amp;width=450&amp;action=like&amp;colorscheme=light&amp;height=65&amp;font=lucida+grande' scrolling='no' frameborder='0' allowTransparency='true' style='border:none; overflow:hidden; width:450px; height:65px'></iframe></p>]]></content:encoded>
			<wfw:commentRss>http://vivee.info/2010/05/27/tworzymy-indywidualna-strone-startowa-dla-naszych-fanow-na-facebooku/feed/</wfw:commentRss>
		<slash:comments>25</slash:comments>
		</item>
		<item>
		<title>pHAML &#8211; inne spojrzenie na rozlazłego HTML&#8217;a</title>
		<link>http://vivee.info/2010/05/16/phaml-inne-spojrzenie-na-rozlazlego-htmla/</link>
		<comments>http://vivee.info/2010/05/16/phaml-inne-spojrzenie-na-rozlazlego-htmla/#comments</comments>
		<pubDate>Sun, 16 May 2010 01:02:42 +0000</pubDate>
		<dc:creator>palmiak</dc:creator>
				<category><![CDATA[Skrypty server-side]]></category>
		<category><![CDATA[XHTML/CSS]]></category>
		<category><![CDATA[haml]]></category>
		<category><![CDATA[phaml]]></category>

		<guid isPermaLink="false">http://vivee.info/?p=1971</guid>
		<description><![CDATA[Ostatnio chwaliłem się fajną zabawką do CSS, a mianowicie CSS Scaffold. Dziś zaś przyszła pora na zrobienie czegoś z HTML'em. HAML jest głównie znany osobom, które używają RoRa. Ja taką osobą nie jestem, więc przez długi czas omijałem temat szerokim łukiem. Jednak któregoś dnia szlag mnie trafił i postanowiłem coś w końcu zrobić, bo efekt [...]]]></description>
			<content:encoded><![CDATA[<p>Ostatnio chwaliłem się fajną zabawką do CSS, a mianowicie CSS Scaffold. Dziś zaś przyszła pora na zrobienie czegoś z HTML'em. HAML jest głównie znany osobom, które używają RoRa. Ja taką osobą nie jestem, więc przez długi czas omijałem temat szerokim łukiem.<span id="more-1971"></span></p>
<p>Jednak któregoś dnia szlag mnie trafił i postanowiłem coś w końcu zrobić, bo efekt mieszania php i HTML'a na dłuższą metę jest tragiczny. Człowiek się gubi gdzie się pętle zaczynają, gdzie kończą i ogólnie jest bajzel. Okazało się, że ktoś był na tyle miły, żeby przeportować HAMLa na php i tak oto powstał pHAML. W porównaniu z oryginałem są pewne różnice, jednak to co najważniejsze zostało zachowane.</p>
<h2>Pierwsze starcie</h2>
<p> Dzięki pHAML kod ulega dość imponującemu skróceniu. Dla przykładu zobaczmy różnicę między w 'Hello world':</p>
<div class="html dean_ch" style="white-space: nowrap;">
<span class="sc0">&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Strict//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd&quot;&gt;</span><br />
<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;html&amp;gt;.html"><span class="kw2">&lt;html&gt;</span></span></a></span><br />
<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;head&amp;gt;.html"><span class="kw2">&lt;head&gt;</span></span></a></span><br />
<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;title&amp;gt;.html"><span class="kw2">&lt;title&gt;</span></span></a></span>hello<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;/title&amp;gt;.html"><span class="kw2">&lt;/title&gt;</span></span></a></span><br />
<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;/head&amp;gt;.html"><span class="kw2">&lt;/head&gt;</span></span></a></span><br />
<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;body&amp;gt;.html"><span class="kw2">&lt;body&gt;</span></span></a></span><br />
<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;p&amp;gt;.html"><span class="kw2">&lt;p&gt;</span></span></a></span>Hello world<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;/p&amp;gt;.html"><span class="kw2">&lt;/p&gt;</span></span></a></span><br />
<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;/body&amp;gt;.html"><span class="kw2">&lt;/body&gt;</span></span></a></span><br />
<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;/html&amp;gt;.html"><span class="kw2">&lt;/html&gt;</span></span></a></span><br />
&nbsp;</div>
<div class="html dean_ch" style="white-space: nowrap;">
!!! Strict<br />
%html<br />
&nbsp; &nbsp; %head<br />
&nbsp; &nbsp; &nbsp; &nbsp; %title hello<br />
&nbsp; &nbsp; %body<br />
&nbsp; &nbsp; &nbsp; &nbsp; %p hello world<br />
&nbsp;</div>
<p>Przeanalizujmy linijka po linijce.<br />
<code>!!! Strict</code> to nic innego jak doctype (koniec kopiowania tego cholerstwa za każdym razem)<br />
<code>%html %head etc</code> - po prostu tagi, tyle że zamiast ich zamykać używamy wcięć.</p>
<p>Na pierwszy rzut wygląda to dziwnie, ale chwila wprawy i zaczyna być fajnie.</p>
<h2>Parametry</h2>
<p>Przekazywanie parametrów odbywać się może na kilka sposobów. Najbardziej uniwersalnym jest:</p>
<div class="html dean_ch" style="white-space: nowrap;">
%p{class=&quot;jaka_klasa jakas_inna_klasa&quot; id=&quot;unikalny_id&quot; style=&quot;color:red&quot;}<br />
&nbsp;</div>
<p>Jak się zapewne domyślacie w rezultacie otrzymamy:</p>
<div class="html dean_ch" style="white-space: nowrap;">
<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;p.html"><span class="kw2">&lt;p</span></span></a> <span class="kw3">class</span><span class="sy0">=</span><span class="st0">&quot;jaka_klasa jakas_inna_klasa&quot;</span> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">&quot;unikalny_id&quot;</span> <span class="kw3">style</span><span class="sy0">=</span><span class="st0">&quot;color:red&quot;</span>&gt;&lt;<span class="sy0">/</span>p&gt;</span><br />
&nbsp;</div>
<p>Klasy i idy możemy jednak przekazywać w troszkę krótszej formie:</p>
<div class="html dean_ch" style="white-space: nowrap;">
%p.jaka_klasa.jakas_inna_klasa#unikalny_id{style=&quot;color:red&quot;}<br />
&nbsp;</div>
<p>Po prostu po kropkach wymieniamy klasy a po # id.</p>
<p>Pewnym wyjątkiem jest div, gdzie nie trzeba pisać nazwy taga:</p>
<div class="html dean_ch" style="white-space: nowrap;">
.jaka_klasa.jakas_inna_klasa#unikalny_id{style=&quot;color:red&quot;}<br />
&nbsp;</div>
<p>jest równoznaczne z:</p>
<div class="html dean_ch" style="white-space: nowrap;">
%div.jaka_klasa.jakas_inna_klasa#unikalny_id{style=&quot;color:red&quot;}<br />
&nbsp;</div>
<h2>Kilka przykładów na potwierdzenie, że HAML fajny jest</h2>
<p>Do myków, które mi się strasznie podobają należą na pewno listy:</p>
<div class="html dean_ch" style="white-space: nowrap;">
%ul<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; %li raz<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; %li dwa<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; %li trzy<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; %li<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; %ul<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; %li trzy jeden<br />
&nbsp;</div>
<p>W końcu wygląda to czytelnie, szczególnie zagnieżdżenia.</p>
<p>Bardzo przyjemnie wyglądają też tabele:</p>
<div class="html dean_ch" style="white-space: nowrap;">
%table<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; %tr<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; %th id<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; %th imię<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; %th nazwisko<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; %tr<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; %td 1<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; %td maciek<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; %td kowalski<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; %tr<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; %td 2<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; %td andrzej<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; %td nowak<br />
&nbsp;</div>
<h2>Znaki specjalne</h2>
<p><code>\</code> - wyświetla wiersz dosłownie taki jaki jest.<br />
<code>&lt;&lt;&lt;</code> oraz <code>&gt;&gt;&gt;</code> - wyświetla zawartość dokładnie taką jaką jest znajdującą się między tymi znakami<br />
<code>/</code> - zamienia wiersz na typowy htmlowy komentarz<br />
<code>//</code> - komentarz, ale niewidzoczny w htmlu</p>
<h2>A jak tu php wrzucić?</h2>
<p>Najprościej mówiąc - za pomocą myślnika:</p>
<div class="html dean_ch" style="white-space: nowrap;">
- for($x=1; $<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;.html"><span class="kw2">&lt;</span></span></a><span class="sy0">=</span><span class="nu0">1</span> ;$x++ <span class="br0">&#123;</span></span><br />
<span class="sc2"> &nbsp; &nbsp;%p hello</span><br />
<span class="sc2">- <span class="br0">&#125;</span></span><br />
&nbsp;</div>
<p>to nic innego jak:</p>
<div class="php dean_ch" style="white-space: nowrap;">
<span class="kw2">&lt;?php</span> <span class="kw1">for</span><span class="br0">&#40;</span><span class="re0">$x</span>=<span class="nu0">1</span>; $<span class="sy0">&lt;</span>=<span class="nu0">1</span> ;<span class="re0">$x</span>++ <span class="br0">&#123;</span> <span class="kw2">?&gt;</span><br />
<span class="sy0">&lt;</span>p<span class="sy0">&gt;</span>hello<span class="sy0">&lt;/</span>p<span class="sy0">&gt;</span><br />
<span class="kw2">&lt;?php</span> <span class="br0">&#125;</span> <span class="kw2">?&gt;</span><br />
&nbsp;</div>
<p>Jednak różnica jeśli chodzi o czytelność dość spora.</p>
<h2>Wywoływanie</h2>
<p>Pokazałem już jak pisanie w HAMLu wygląda, teraz czas to jakoś uruchomić. Najpierw pobieramy ze strony twórcy odpowiednie <a href="http://sourceforge.net/projects/phaml/">archiwum</a>. Następny krok to rozpakowanie zipa.</p>
<p>Kiedy już wszystko mamy przygotowane tworzymy sobie plik np test.php a w nim piszemy:</p>
<div class="php dean_ch" style="white-space: nowrap;"><span class="kw2">&lt;?php</span> <span class="kw1">include</span><span class="br0">&#40;</span><span class="st0">'class.pHAML.php'</span><span class="br0">&#41;</span>;<br />
<span class="re0">$template</span> =<span class="st0">'!!! Strict<br />
%html<br />
&nbsp; &nbsp; %head<br />
&nbsp; &nbsp; &nbsp; &nbsp; %title hello<br />
&nbsp; &nbsp; %body<br />
&nbsp; &nbsp; &nbsp; &nbsp; - for($i=0;$i&lt;=10;$i++){<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; %p<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; - echo $i.&quot;&lt;br/&gt;&quot;;<br />
&nbsp; &nbsp; &nbsp; &nbsp; - }<br />
'</span>;<br />
<span class="re0">$pHAML</span> = <span class="kw2">new</span> HAMLatin<span class="br0">&#40;</span><span class="br0">&#41;</span>;<br />
<span class="re0">$content</span> = <span class="re0">$pHAML</span>-<span class="sy0">&gt;</span><span class="me1">render</span><span class="br0">&#40;</span><span class="re0">$template</span><span class="br0">&#41;</span>;<br />
<span class="re0">$content</span> = <span class="re0">$pHAML</span>-<span class="sy0">&gt;</span><span class="me1">renderPHP</span><span class="br0">&#40;</span><span class="re0">$content</span><span class="br0">&#41;</span>;<br />
<a href="http://www.php.net/echo"><span class="kw3">echo</span></a> <span class="re0">$content</span>;<br />
&nbsp;</div>
<p>Całą treść przypisujemy sobie do jakiejś zmiennej a potem przekazujemy jako parametry dla render i renderPHP.</p>
<p>Jeżeli uzywamy tylko htmla, nie jest potrzebna linijka <code>$content = $pHAML->renderPHP($content);</code>.</p>
<p>Zachęcam do zabawy, bo wywoływanie tego można zrobić na wiele wygodniejszych sposobów.</p>
<h2>Drobne bugi</h2>
<p>Wersja dostępna na <a href="http://phaml.sourceforge.net/">phaml.sourceforge.net</a> ma w sumie dwie wady. Jedna to taka, że wszystkie tagi traktuje jako podwójne, a druga, że stosuje notację htmlową, a nie xhtmlową.</p>
<p>Na szybko poprawiłem te dwie rzeczy i tagi pojedyncze zamyka poprawnie, a kwestię html/xhtml rozwiązałem poprzez dopisanie zmiennej $is_xhtml. Uprzedzam, że były to poprawki na szybko lecz nie zauważyłem żeby coś nie działało/działało źle. Plik do pobrania <a href="http://pliki.vivee.info/users/palmiak/phaml/class.pHAML_091.zip">stąd</a>.</p>
<h2>Podsumowanie</h2>
<p>Muszą przyznać, że (p)HAML jest fajnym wynalazkiem. Strasznie upraszcza widok HTMLa. Szkoda jednak, że pod PHP nie ukazała się żadna porządna i ciągle rozwijana implementacja (ta prezentowana tutaj nie sprawia już wrażenie rozwijanej) Pod tym względem muszę przyznać, że jest to coś czego programistom od Ruby'ego można pozazdrościć.</p>
<p>A Wy jakie znacie i polecacie substytuty zwykłego (x)HTML'a?</p>
<img src="http://vivee.info/?ak_action=api_record_view&id=1971&type=feed" alt="" /><p class='fb-like'><iframe src='http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fvivee.info%2F2010%2F05%2F16%2Fphaml-inne-spojrzenie-na-rozlazlego-htmla%2F&amp;layout=standard&amp;show_faces=true&amp;width=450&amp;action=like&amp;colorscheme=light&amp;height=65&amp;font=lucida+grande' scrolling='no' frameborder='0' allowTransparency='true' style='border:none; overflow:hidden; width:450px; height:65px'></iframe></p>]]></content:encoded>
			<wfw:commentRss>http://vivee.info/2010/05/16/phaml-inne-spojrzenie-na-rozlazlego-htmla/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Drupal &#8211; szybki start</title>
		<link>http://vivee.info/2010/04/25/drupal-szybki-start/</link>
		<comments>http://vivee.info/2010/04/25/drupal-szybki-start/#comments</comments>
		<pubDate>Sun, 25 Apr 2010 20:53:33 +0000</pubDate>
		<dc:creator>designconcept</dc:creator>
				<category><![CDATA[CMSy]]></category>
		<category><![CDATA[drupal]]></category>

		<guid isPermaLink="false">http://vivee.info/?p=1894</guid>
		<description><![CDATA[Drupal jest systemem zarządzania treścią, który umożliwia łatwe publikowanie i zarządzanie zawartością witryny. System wykorzystuje język PHP, współpracuje z bazami danych MySQL i PostgreSQL oraz serwerami Apache i IIS. Instalacja Najpierw pobieramy Drupala i polski pakiet językowy ze strony: http://drupal.org/ Rozpakowujemy archiwum do głównego katalogu na serwerze. Moim serwerem będzie localhost. Wchodzimy na stronę http://localhost/drupal-6.15/ [...]]]></description>
			<content:encoded><![CDATA[<p>Drupal jest systemem zarządzania treścią, który umożliwia łatwe publikowanie i zarządzanie zawartością witryny.  System wykorzystuje język PHP,  współpracuje z bazami danych MySQL i PostgreSQL oraz serwerami Apache i IIS.<span id="more-1894"></span></p>
<h2>Instalacja</h2>
<p>Najpierw pobieramy Drupala i polski pakiet językowy ze strony: http://drupal.org/<br />
Rozpakowujemy archiwum do głównego katalogu na serwerze. Moim serwerem będzie localhost.<br />
Wchodzimy na stronę http://localhost/drupal-6.15/<br />
Naszym oczom ukazuje się widok.</p>
<p class="insp">
<img src="http://pliki.vivee.info/users/palmiak/drupal/drupal_instalacja.png" alt="Drupal - szybki start" />
</p>
<p>Tu mamy wybór czy chcemy korzystać z angielskiej czy innej wersji językowej.  Ja wyrażam chęć instalacji innej wersji językowej.<br />
Rozpakowujemy paczkę językową do katalogu z drupalem. Następnie korzystając z linku powrotnego przechodzimy do ekranu wyboru języka i wybieramy język polski. </p>
<p class="insp">
<img src="http://pliki.vivee.info/users/palmiak/drupal/drupal_jezyk_pl.png" alt="Drupal - szybki start" />
</p>
<p>Następnie pojawia się ekran:</p>
<p class="insp">
<img src="http://pliki.vivee.info/users/palmiak/drupal/drupal_wym.png" alt="Drupal - szybki start" />
</p>
<p>Postępujemy zgodnie z opisem na tej stronie.<br />
Po stworzeniu pliku konfiguracyjnego można dalej instalować drupala. Klikamy na spróbuj ponownie.<br />
Naszym oczom ukazuje się okno konfiguracji bazy danych.</p>
<p class="insp">
<img src="http://pliki.vivee.info/users/palmiak/drupal/drupal_baza.png" alt="Drupal - szybki start" />
</p>
<p>Wybieramy typ, nazwę i użytkownika bazy danych. Możemy tez ustawić zaawansowane opcje dotyczące m.in. hosta bazy danych, portu oraz prefiksu dla tabel. Należy pamiętać aby wybrać istniejącą na serwerze bazę danych. Trwa instalacja drupala… <img src='http://vivee.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p class="insp">
<img src="http://pliki.vivee.info/users/palmiak/drupal/drupal_finish_inst.png" alt="Drupal - szybki start" />
</p>
<h2>Konfiguracja</h2>
<p>Teraz konfigurujemy witrynę.</p>
<p class="insp">
<img src="http://pliki.vivee.info/users/palmiak/drupal/drupal_konfig.png" alt="Drupal - szybki start" />
</p>
<p>Tworzymy konto administratora. Jeśli na serwerze mamy włączony moduł mod_rewrite możemy włączyć tzw. przyjazne URL-e. Wtedy linki typu /?q=node/5 będą zamieniane na /node/5.<br />
Otrzymujemy informację, że instalacja Drupala przebiegła pomyślnie. Możemy teraz odwiedzić stronę i zalogować się jako administrator.</p>
<h2>Moduły</h2>
<p>Drupala można  wzbogacać o nowe funkcje za pomocą tzw. "modułów". Cały system jest złożony z modułów. Niektóre z nich są dostępne od razu po instalacji, a inne trzeba dodatkowo pobrać. Zajmiemy się teraz aktywacją wybranych modułów. W tym celu wchodzimy na stronę http://localhost/drupal-6.15/admin/build/modules i zaznaczamy moduły, których chcemy używać.</p>
<p>Pobierzemy kilka dodatkowych modułów:<br />
<a href="http://drupal.org/project/admin_menu">http://drupal.org/project/admin_menu</a><br />
<a href="http://drupal.org/project/pathauto">http://drupal.org/project/pathauto</a><br />
<a href="http://drupal.org/project/token">http://drupal.org/project/token</a><br />
<a href="http://drupal.org/project/cck">http://drupal.org/project/cck</a><br />
CCK - służy do wzbogacenia naszej treści o nowe pola, w które uprawnione osoby będą mogły wpisywać dane dodając treść do naszej witryny.<br />
<a href="http://drupal.org/project/views">http://drupal.org/project/views</a><br />
Views - to moduł, który pozwala w praktycznie dowolny sposób generować listy i tabele z elementów taksonomii systemu.</p>
<p>Pobrane moduły należy umieścić w katalogu sites/all/module naszej witryny. Zajmiemy się teraz aktywacją wybranych modułów. W tym celu wchodzimy na stronę http://localhost/drupal-6.15/admin/build/modules i zaznaczamy moduły, których chcemy używać. Jeżeli folder module nie istnieje należy takowy stworzyć.  Na powyższej stronie zaznaczamy następuje moduły</p>
<ul>
<li>Administration - Administration Menu</li>
<li>Core - Blog</li>
<li>Core - Contact</li>
<li>Core - Path</li>
<li>Content - Content</li>
<li>Content - Text</li>
<li>Other - Pathauto</li>
<li>Other - Token</li>
<li>Views - Views</li>
<li>Views - Views UI</li>
</ul>
<p>a następnie klikamy zachowaj konfigurację.</p>
<h2>Rodzaje zawartości</h2>
<p>Wchodzimy na stronę http://localhost/drupal-6.15/admin/content/types. Możemy tu tworzyć, edytować i usuwać różne rodzaje zawartości. Są one umieszczone w tabelce, w której znajduje się nazwa, typ i opis rodzaju zawartości. Domyślnie dysponujemy trzema rodzajami: blog, strona i artykuł. Stworzymy nowy typ – link. Będzie on zawierał url, tytuł i krótki opis. Klikamy na nowy rodzaj zawartości (http://localhost/drupal-6.15/admin/content/types/add). W pole nazwa wpisujemy Link, typ – link (typ  może się składać jedynie z małych liter, liczb i znaków podkreślenia) oraz dodajemy krótki opis. Następnie określamy ustawienia formularza dodawania zawartości tak jak na poniższym rysunku.</p>
<p class="insp">
<img src="http://pliki.vivee.info/users/palmiak/drupal/drupal_nowy_rodzaj_zawartosci2.png" alt="Drupal - szybki start" />
</p>
<p>Pozostaje nam jeszcze określenie cech rodzaju zawartości oraz ustawienia odpowiedzi czyli popularnych komentarzy. Ustawiamy opcję „do publikacji”, a odznaczamy „na stronie głównej” co oznacza brak automatycznej promocji na stronie głównej. W ustawieniach odpowiedzi zaznaczamy opcję „Wyłączony”, co oznacza, że nie będzie można dodawać komentarzy. Po kliknięciu zachowania rodzaju zawartości zostaniemy przekierowani z powrotem do tabelki z rodzajami zawartości. Widnieje już tam nowy dodany przed chwilą rodzaj – link. Kliknijmy na odnośnik „manage fields” dotyczący rodzaju zawartości link. Dodamy teraz nowe pole url.</p>
<p class="insp">
<img src="http://pliki.vivee.info/users/palmiak/drupal/drupal_manage_fields.png" alt="Drupal - szybki start" />
</p>
<p>Po kliknięciu zachowaj można jeszcze ustawić dodatkowe opcje. My pozostawiamy ustawienia domyślne.<br />
Dodamy teraz kilka linków. W tym celu wchodzimy na stronę dodawania zawartości: http://localhost/drupal-6.15/node/add, wybieramy z dostępnych opcji Link i uzupełniamy pola formularza.</p>
<p class="insp">
<img src="http://pliki.vivee.info/users/palmiak/drupal/drupal_add_content1.png" alt="Drupal - szybki start" />
</p>
<p class="insp">
<img src="http://pliki.vivee.info/users/palmiak/drupal/drupal_add_content2.png" alt="Drupal - szybki start" />
</p>
<p>Utworzony link możemy zobaczyć pod adresem: http://localhost/drupal-6.15/content/wp .</p>
<h2>Widoki i dodawanie zawartości</h2>
<p>Views to moduł, który pozwala w praktycznie dowolny sposób generować listy i tabele z elementów taksonomii systemu. Moduł ten jest dość rozbudowany. My stworzymy na początek widok listy linków. Wejdźmy zatem na stronę http://localhost/drupal-6.15/admin/build/views. Następnie klikamy na zakładkę „dodaj”. </p>
<p class="insp">
<img src="http://pliki.vivee.info/users/palmiak/drupal/views_add.png" alt="Drupal - szybki start" />
</p>
<p>Podajemy nazwę widoku (może ona zawierać tylko znaki alfanumeryczne i podkreślenia) np. lista_linkow. Wprowadzamy też krótki opis widoku oraz tag widoku (w naszym przypadku może to być np. linki). Jako typ widoku pozostawiamy zaznaczony segment. Klikamy na przycisk „Następne”. Mamy tu dostęp do określenia formy widoku. Na początek wybieramy z rozwijanego menu po lewej „Strona”, co oznacza że chcemy wypisać nasze linki na pełnej stronie. Z ustawień podstawowych zmieniamy nazwę, tytuł oraz styl rzędu (zmieniamy na segment). Klikamy na przycisk „dodaj podgląd” znajdujący się w lewej części strony (pod listą rozwijaną). Teraz określimy ustawienia strony: ścieżkę i menu. Ustawiamy ścieżkę na „linki” – oznacza to, że strona z linkami będzie widoczna (oczywiście dla naszej obecnej instalacji) pod adresem http://localhost/drupal-6.15/linki. W przypadku ustawień menu wybieramy „zwykły wpis menu”, w pole tytuł wpisujemy „Linki” oraz z listy rozwijanej wybieramy „Odnośniki podstawowe”. </p>
<p>Teraz ograniczymy nasz widok do wyświetlania tylko elementów typu link. W ostatniej kolumnie na stronie edycji klikamy na znak plusa przy napisie „Filtry”. Z długiej listy rozwijanej, która pokaże się poniżej zaznaczamy opcję Segment: Typ i klikamy przycisk „dodaj”. Następnie wybieramy typ segmentu „odnośnik”. Po całej konfiguracji strona powinna wyglądać podobnie do widocznej poniżej.</p>
<p class="insp">
<img src="http://pliki.vivee.info/users/palmiak/drupal/drupal_views_edit2.png" alt="Drupal - szybki start" />
</p>
<p>Na koniec zapisujemy widok klikając na przycisk „Zachowaj”.<br />
Łatwo zauważyć, że w górnej części strony pojawił się pierwszy odnośnik menu „Linki”. Prowadzi on do naszego widoku linków. </p>
<p class="insp">
<img src="http://pliki.vivee.info/users/palmiak/drupal/drupal_views_final.png" alt="Drupal - szybki start" />
</p>
<p>Teraz stworzymy stronę główną. Klikamy na link dodaj zawartość i z dostępnych typów wybieramy – Strona. </p>
<p class="insp">
<img src="http://pliki.vivee.info/users/palmiak/drupal/drupal_add_content3.png" alt="Drupal - szybki start" />
</p>
<p>W pole tytuł wpisujemy tytuł strony np. Strona główna. W pole tekst odnośnika menu wpisujemy np. Główna (jest to tekst widoczny na linku do strony). W polu select pozostawiamy wybraną opcję odnośniki podstawowe. Pozostaje tylko uzupełnić treść i kliknąć przycisk „Zachowaj”. W górnym menu obok „Linki” powinien pojawić są odnośnik „Główna”.</p>
<p>Zbudujemy teraz formularz kontaktowy dla naszej witryny. Wybieramy z menu „Zarządzaj”, a następnie „Formularz kontaktowy” (znajduje się on w boxie Budowa witryny) lub od razu wchodzimy na adres http://localhost/drupal-6.15/admin/build/contact. Klikamy na „Dodaj kategorię”. Pojawia się formularz, który trzeba uzupełnić. W pole kategoria wpisujemy nazwę formularza np. Formularz kontaktowy. Następnie wpisujemy adres lub adresy e-mail, na które formularz ma być wysłany. Na samym dole wybieramy jeszcze z menu rozwijanego „Tak”, aby formularz był domyślnym formularzem kontaktowym na stronie i klikamy „Zachowaj”. Stworzony  formularz możemy zobaczyć na stronie http://localhost/drupal-6.15/contact.</p>
<p class="insp">
<img src="http://pliki.vivee.info/users/palmiak/drupal/drupal_contact_form.png" alt="Drupal - szybki start" />
</p>
<p>Przydałoby się dodać do naszego górnego menu odnośnika prowadzącego do formularza kontaktowego. W tym celu wchodzimy na stronę http://localhost/drupal-6.15/admin/build/menu-customize/primary-links. (Zarządzaj > Budowa witryny > Menu > Odnośniki podstawowe).</p>
<p class="insp">
<img src="http://pliki.vivee.info/users/palmiak/drupal/drupal_menu.png" alt="Drupal - szybki start" />
</p>
<p>Wybieramy „Dodaj element” i uzupełniamy formularz. W pierwsze pole wpisujemy ścieżkę do formularza kontaktowego (tzn. wszystko za http://localhost/drupal-6.15/). Następnie podajemy tekst odnośnika menu. Pozostałe pole pozostawiamy niezmienione. </p>
<p class="insp">
<img src="http://pliki.vivee.info/users/palmiak/drupal/drupal_menu2.png" alt="Drupal - szybki start" />
</p>
<p>Dodatkowo można zmienić kolejność odnośników w menu metodą przeciągnij i upuść. Jak widać na poniższej ilustracji przesunęłam odnośnik Kontakt na koniec. </p>
<p class="insp">
<img src="http://pliki.vivee.info/users/palmiak/drupal/drupal_menu3.png" alt="Drupal - szybki start" />
</p>
<p>Na pewno zauważyłeś/aś, że po wejściu na naszą drupalową witrynę http://localhost/drupal-6.15/ pojawia się domyślna strona startowa zaczynająca się od słów „I tak powstała nowa drupalowa witryna!”. Czas to zmienić. Chcemy aby domyślnie pojawiała się nasza strona główna.  Najpierw przejdźmy na naszą stronę główną klikając odnośnik Główna w menu. Następnie wybieramy Edytuj i patrzymy na pasek adresu. U nas powinien wyglądać następująco: http://localhost/drupal-6.15/node/3/edit. Dla nas najważniejsza jest cyfra 3. Przechodzimy teraz na stronę Zarządzaj > Konfiguracja witryny > Podstawowe dane (bezpośredni link: http://localhost/drupal-6.15/admin/settings/site-information).  Na samym dole formularza wpisujemy w pole domyślna strona główna adres: http://localhost/drupal-6.15/node/3 i klikamy przycisk „Zachowaj konfigurację”.</p>
<p class="insp">
<img src="http://pliki.vivee.info/users/palmiak/drupal/drupal_set_home_page.png" alt="Drupal - szybki start" />
</p>
<p>Dodamy teraz kilka blogowych notek. Wchodzimy na „Dodaj zawartość” i wybieramy „Wpis w blogu”. Pojawia się formularz, który trzeba uzupełnić. Podajemy tytuł i treść wpisu, a resztę opcji pozostawiamy bez zmian. Zachęcam jednak do zapoznania się z nimi w wolnej chwili <img src='http://vivee.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<p class="insp">
<img src="http://pliki.vivee.info/users/palmiak/drupal/drupal_add_blog_item.png" alt="Drupal - szybki start" />
</p>
<p>W celu dodania odnośnika do blogowych wpisów w górnym menu wchodzimy na stronę http://localhost/drupal-6.15/admin/build/menu-customize/primary-links/add i w formularzu w polu ścieżka wpisujemy blog. Uzupełniamy jeszcze pole „Tekst odnośnika menu” i klikamy „Zachowaj”.</p>
<p class="insp">
<img src="http://pliki.vivee.info/users/palmiak/drupal/drupal_add_blog_menu.png" alt="Drupal - szybki start" />
</p>
<h2>Skórki</h2>
<p>Drupal oferuje zmianę domyślnego wyglądu strony. W tym celu wchodzimy na stronę Zarządzaj > Budowa witryny > Skórki. Pojawia się poniższa strona.</p>
<p class="insp">
<img src="http://pliki.vivee.info/users/palmiak/drupal/drupal_skorki.png" alt="Drupal - szybki start" />
</p>
<p>Możemy tu określić, które ze skórek powinny być dostępne dla użytkowników, a także, która skórka ma być domyślną. Między innymi na stronie http://drupal.org/project/themes dostępnych jest wiele skórek tworzonych przez użytkowników Drupala. Wejdźmy na powyższą stronę i pobierzmy jakąś skórkę (ja pobrałam skórkę Acquia Slate). Należy pobraną paczkę rozpakować do katalogu themes. Gdy ponownie wejdziemy na stronę http://localhost/drupal-6.15/admin/build/themes będzie już możliwość wyboru nowej skórki. </p>
<p>---<br />
Zapraszam na moje <a href="http://designconcept.zzl.org">portfolio</a>.</p>
<img src="http://vivee.info/?ak_action=api_record_view&id=1894&type=feed" alt="" /><p class='fb-like'><iframe src='http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fvivee.info%2F2010%2F04%2F25%2Fdrupal-szybki-start%2F&amp;layout=standard&amp;show_faces=true&amp;width=450&amp;action=like&amp;colorscheme=light&amp;height=65&amp;font=lucida+grande' scrolling='no' frameborder='0' allowTransparency='true' style='border:none; overflow:hidden; width:450px; height:65px'></iframe></p>]]></content:encoded>
			<wfw:commentRss>http://vivee.info/2010/04/25/drupal-szybki-start/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>CSS Scaffold &#8211; czyli CSS po ludzku</title>
		<link>http://vivee.info/2010/04/23/css-scaffold-czyli-css-po-ludzku/</link>
		<comments>http://vivee.info/2010/04/23/css-scaffold-czyli-css-po-ludzku/#comments</comments>
		<pubDate>Fri, 23 Apr 2010 09:18:25 +0000</pubDate>
		<dc:creator>palmiak</dc:creator>
				<category><![CDATA[Skrypty server-side]]></category>
		<category><![CDATA[XHTML/CSS]]></category>

		<guid isPermaLink="false">http://vivee.info/?p=1864</guid>
		<description><![CDATA[Arkusze stylu pisuję dość często - taka praca. W sumie nawet to przyjemne. Kłopoty pojawiają się gdy zaglądam po dłużym okresie czasu i dochodzę do wniosku, że jestem zupełnie zagubiony i po prostu dopisuję jakiegoś ida na końcu. I tak się pojawia bałagan. Próbowałem pisać style wieloma metodami, niestety problem w pewnym momencie zawsze się [...]]]></description>
			<content:encoded><![CDATA[<p>Arkusze stylu pisuję dość często - taka praca. W sumie nawet to przyjemne. Kłopoty pojawiają się gdy zaglądam po dłużym okresie czasu i dochodzę do wniosku, że jestem zupełnie zagubiony i po prostu dopisuję jakiegoś ida na końcu. I tak się pojawia bałagan. Próbowałem pisać style wieloma metodami, niestety problem w pewnym momencie zawsze się pojawiał, aż do odkrycia <strong>CSS Scaffold</strong>.<span id="more-1864"></span></p>
<p><strong>CSS Scaffold</strong>, jak opisuje autor, jest CSSowym frameworkiem napisanym w PHP. Tyle, że w przeciwieństwie do innych CSSowych frameworków (960, Blueprint) zmiast ograniczać rozszerza możliwości styli. Brzmi fajnie? Ba - jest fajne, jest po prostu bardzo fajne.</p>
<h2>Wymagania i instalacja</h2>
<p>Jedyne czego będziemy potrzebować to PHP 5+. </p>
<p>Instalacja może być dla niektórych troszkę upierdliwa. W sumie jednak ogranicza się do pobrania najnowszej wersji ze <a href="http://github.com/anthonyshort/csscaffold/downloads">strony</a>, rozpakowania oraz przekopiowania z archiwum katalogu (<strong>katalogu</strong>, a nie zawartości) scaffold do katalogu w którym będziemy trzymać arkusze stylu. Czasem(zależne od serwera) trzeba katalogom cache i logs nadać prawa 777.</p>
<p>W praktyce układ katalogów powinien wyglądać następująco:</p>
<p class="insp">
<img src="http://pliki.vivee.info/users/palmiak/scaffold/scaffold_pliki.png" alt="CSS Scaffold - czyli CSS po ludzku" />
</p>
<p>Osoby które chcą, żeby adresy do CSSów wyglądały normalnie muszą jeszcze w katalogu w którym trzymają CSS utworzyć plik .htaccess a w nim wkleić</p>
<div class="php dean_ch" style="white-space: nowrap;">&nbsp;<span class="sy0">&lt;</span>IfModule mod_rewrite.c<span class="sy0">&gt;</span><br />
RewriteEngine &nbsp; on<br />
RewriteCond &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">%</span><span class="br0">&#123;</span>REQUEST_FILENAME<span class="br0">&#125;</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; -f<br />
RewriteCond &nbsp; &nbsp; <span class="sy0">%</span><span class="br0">&#123;</span>REQUEST_URI<span class="br0">&#125;</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\.css$<br />
RewriteRule &nbsp; &nbsp; ^<span class="br0">&#40;</span>.+<span class="br0">&#41;</span>$ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;scaffold<span class="sy0">/</span>index.php?f=<span class="sy0">%</span><span class="br0">&#123;</span>REQUEST_URI<span class="br0">&#125;</span><span class="sy0">&amp;%</span><span class="br0">&#123;</span>QUERY_STRING<span class="br0">&#125;</span><br />
<span class="sy0">&lt;/</span>IfModule<span class="sy0">&gt;</span></div>
<p>Żeby zrobić próbę czy wszystko działa należy w naszym katalogu z CSSami (dla przykładu będzie to katalog css) utworzyć plik test.css a w nim napisać (zagnieżdzenie jest poprawne - dojdziemy do tego):</p>
<div class="css dean_ch" style="white-space: nowrap;">body <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">color</span><span class="re2">:red</span><span class="sy0">;</span></p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; a <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">color</span><span class="re2">:blue</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
<span class="br0">&#125;</span></div>
<p>i wywołać w przeglądarce albo adres_strony/css/scaffold/index.php?f=css/test.css albo, jeżeli użyliśmy regułki w .htaccess, adres_strony/css/test.css. Jeżeli przywita Was komunikat, że nie może znaleźć pliku pomajstrujcie przy ścieżce.</p>
<p>Jeżeli jednak wszystko zadziałało ok to powinniście zobaczyć następujący styl:</p>
<div class="css dean_ch" style="white-space: nowrap;">body<br />
<span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">color</span><span class="sy0">:</span> <span class="kw2">red</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span></p>
<p>body a<br />
<span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">color</span><span class="sy0">:</span> <span class="kw1">blue</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span></div>
<p>Bazując na naszym obrazku i zakładając, że nasz adres to test.pl ścieżką do stylu będzie albo http://test.pl/css/scaffold/index.php?f=css/style.css lub http://test.pl/css/style.css.</p>
<p>Jeżeli wszystko działa na naszej stronie wklejamy:
<div class="html dean_ch" style="white-space: nowrap;">
<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;link.html"><span class="kw2">&lt;link</span></span></a> <span class="kw3">rel</span><span class="sy0">=</span><span class="st0">&quot;stylesheet&quot;</span> <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;css/scaffold/index.php?f=css/style.css&quot;</span> <span class="kw3">type</span><span class="sy0">=</span><span class="st0">&quot;text/css&quot;</span> <span class="sy0">/</span><span class="sy0"><a href="http://december.com/html/4/element/&amp;gt;.html"><span class="kw2">&gt;</span></span></a></span> <br />
&nbsp;</div>
<p>lub</p>
<div class="html dean_ch" style="white-space: nowrap;">
<span class="sc2"><span class="sy0"><a href="http://december.com/html/4/element/&amp;lt;link.html"><span class="kw2">&lt;link</span></span></a> <span class="kw3">rel</span><span class="sy0">=</span><span class="st0">&quot;stylesheet&quot;</span> <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;css/style.css&quot;</span> <span class="kw3">type</span><span class="sy0">=</span><span class="st0">&quot;text/css&quot;</span> <span class="sy0">/</span><span class="sy0"><a href="http://december.com/html/4/element/&amp;gt;.html"><span class="kw2">&gt;</span></span></a></span> <br />
&nbsp;</div>
<p>Jeżeli wolicie możecie użyć ścieżek absolutnych.</p>
<p>Na koniec drobne ale. Jeżeli nie używacie .htaccess i planujecie używać pierwszej wersji to w przypadku gdy nasza strona znajduje się na tym test.pl w katalogu moja_stronka to ścieżka do stylu będzie wyglądać następująco http://test.pl/moja_stronka/css/scaffold/index.php?f=moja_stronka/css/style.css</p>
<h2>Zagnieżdżenia</h2>
<p>Jak już zauważyliście w poprzednim przykładzie możemy zagnieżdżać kolejne regułki. Dla przykładu kod na listę nieuporządkowaną z linkami i bez kropek.</p>
<div class="css dean_ch" style="white-space: nowrap;">ul <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">list-style</span><span class="re2">:none</span><span class="sy0">;</span></p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; li <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">padding</span><span class="sy0">:</span> <span class="re3">5px</span><span class="sy0">;</span></p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; a <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">text-decoration</span><span class="re2">:none</span><span class="sy0">;</span></p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &amp;<span class="re2">:hover</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">font-weight</span><span class="re2">:bold</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
<span class="br0">&#125;</span></div>
<p>wypluje to nam oczywiście:</p>
<div class="css dean_ch" style="white-space: nowrap;">ul<br />
<span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">list-style</span><span class="sy0">:</span> <span class="kw2">none</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span></p>
<p>ul li<br />
<span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">padding</span><span class="sy0">:</span> <span class="re3">5px</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span></p>
<p>ul li a<br />
<span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">text-decoration</span><span class="sy0">:</span> <span class="kw2">none</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span></p>
<p>ul li a<span class="re2">:hover</span><br />
<span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">font-weight</span><span class="sy0">:</span> <span class="kw2">bold</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span></div>
<h2>Stałe</h2>
<p>To jest jedna z tych funkcji za które bardzo polubiłem CSS Scaffold. Bardzo często się zdarza, że klient sobie wymyśli, że kolor czcionki, który to użyliśmy w wielu miejscach jest jednak do bani i chce inny. Znajdź/zastąp i jedziemy, ale tu mozna prościej. Jeżeli używamy jednego koloru to zdefinijmy go jako stałą i najwyżej poprawiajmy w jednym miejscu.</p>
<p>Wystarczy w naszym CSS napisać:</p>
<div class="css dean_ch" style="white-space: nowrap;"><span class="co1">@constants{</span><br />
kolor_tekstu<span class="sy0">:</span> <span class="re0">#ccc</span><span class="sy0">;</span><br />
kolor_ramki<span class="sy0">:</span> <span class="kw2">red</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span></div>
<p>a następnie gdy chcemy skorzystać:</p>
<div class="css dean_ch" style="white-space: nowrap;">
body <span class="br0">&#123;</span><br />
<span class="kw1">color</span><span class="sy0">:</span>$kolor_tekstu<span class="sy0">;</span><br />
<span class="kw1">border</span><span class="re2">:<span class="re3">1px</span></span> <span class="kw2">solid</span> $kolor_ramki<span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
&nbsp;</div>
<h2>Mixins</h2>
<p>Czasem zamiast jednego koloru byśmy chcieli wstawiać pewne stałe fragmenty kodu. Nic trudnego:</p>
<div class="css dean_ch" style="white-space: nowrap;">
=test <span class="br0">&#123;</span><br />
<span class="kw1">color</span><span class="re2">:red</span><span class="sy0">;</span><br />
<span class="kw1">font-weight</span><span class="re2">:bold</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span></div>
<p>Żeby teraz ten kod wkleić wystarczy do jakiejś naszej regułki dopisać:</p>
<div class="css dean_ch" style="white-space: nowrap;">
body <span class="br0">&#123;</span><br />
+test<span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
&nbsp;</div>
<p>W rezultacie otrzymamy:</p>
<div class="css dean_ch" style="white-space: nowrap;">body<br />
<span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">color</span><span class="sy0">:</span> <span class="kw2">red</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">font-weight</span><span class="sy0">:</span> <span class="kw2">bold</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span></div>
<p>Prawdziwa siła tkwi jednak w mozliwości parametryzacji. Jeżeli na stronie wszystkie nasze bordery są tego samego stylu i wielkości a tylko kolor się różni to wystarczy nam:</p>
<div class="css dean_ch" style="white-space: nowrap;">=ramka<span class="br0">&#40;</span>$kolor<span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">border</span><span class="re2">:<span class="re3">1px</span></span> <span class="kw2">solid</span> $kolor<span class="sy0">;</span><br />
<span class="br0">&#125;</span></div>
<p>A wywołamy to następująco:
<div class="css dean_ch" style="white-space: nowrap;"><span class="re0">#test1</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; +ramka<span class="br0">&#40;</span><span class="kw2">red</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
&nbsp;<br />
<span class="re0">#test2</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; +ramka<span class="br0">&#40;</span><span class="kw1">blue</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span></div>
<p>W rezultacie otrzymamy:
<div class="css dean_ch" style="white-space: nowrap;"><span class="re0">#test1</span><br />
<span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">border</span><span class="sy0">:</span> <span class="re3">1px</span> <span class="kw2">solid</span> <span class="kw2">red</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span></p>
<p><span class="re0">#test2</span><br />
<span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">border</span><span class="sy0">:</span> <span class="re3">1px</span> <span class="kw2">solid</span> <span class="kw1">blue</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span></div>
<p>Możlwe jest jeszcze ustalenie wartości domyślnej:
<div class="css dean_ch" style="white-space: nowrap;">=ramka<span class="br0">&#40;</span>$kolor=<span class="kw1">black</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">border</span><span class="re2">:<span class="re3">1px</span></span> <span class="kw2">solid</span> $kolor<span class="sy0">;</span><br />
<span class="br0">&#125;</span></div>
<p>Wtedy wywołanie bez parametru spowoduje automatycnze użycie czarnego.</p>
<h2>Liczenie</h2>
<p>Ta funkcjonalność jest może troszkę mniej szpanerska, ale czasem bardzo przydatna. Jeżeli mamy div o szerokości 100px i zaczynamy dodawać padding to musimy ciągle poprawiać szerokość (width+padding=100). Scaffold policzy to za nas:</p>
<div class="css dean_ch" style="white-space: nowrap;">div <span class="br0">&#123;</span><br />
<span class="kw1">padding</span><span class="re2">:0</span> <span class="re3">5px</span><span class="sy0">;</span><br />
<span class="kw1">width</span><span class="re2">:calc</span><span class="br0">&#40;</span><span class="nu0">100</span>-<span class="nu0">2</span>*<span class="nu0">5</span><span class="br0">&#41;</span><span class="kw2">px</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span></div>
<p>Nic nie szkodzi nam na przeszkodzie, żeby użyć w środku stałych, czy użyć parametru.</p>
<h2>Jeżeli...</h2>
<p>Na koniec jeszcze jedna ciekawa zabawka czyli instrukcja if. Piszemy mixin (jak ktoś ma pomysł na odpowiednik to bardzo zachęcam) o nazwie default_div który ma tam sobie jakieś właściwości oraz parametr <code>round</code>, który przyjmuje true lub false. W zależności od <code>round</code> doklejamy kilka regułek lub nie:</p>
<div class="css dean_ch" style="white-space: nowrap;">=default_div<span class="br0">&#40;</span>$round=false<span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">padding</span><span class="re2">:<span class="re3">10px</span></span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">margin</span><span class="re2">:<span class="re3">2px</span></span><span class="sy0">;</span><br />
&nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">@if($round === true) {</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; +border-radius<span class="br0">&#40;</span><span class="re3">5px</span><span class="br0">&#41;</span><span class="sy0">;</span> <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
<span class="br0">&#125;</span></div>
<p>border-radius to już taki gotowy mixin, który zajmuje się zaokrągleniami.</p>
<h2>Cache</h2>
<p>Kiedy już skończymy tworzenie naszego stylu pozostaje nam włączyć cache (bo po ciągle ma być generowany na nowo ten sam plik) - żeby to zrobić wystarczy otworzyć plik config.php i przestawić <code>define('SCAFFOLD_PRODUCTION',false);</code> na <code>define('SCAFFOLD_PRODUCTION',true);</code>.</p>
<h2>Czy to wszystko?</h2>
<p>Nie. Oczywiście, że nie. CSS Scaffold posiada także sporo ciekawych opcji a'propos gridów, wiele ciekawych mixinów, flagi, zastępowanie tekstu obrazkami (bardzo fajnie zrobiona funkcja) oraz wiele innych. Do tego mamy jeszcze możliwość dopisywania własnych rzeczy.</p>
<p>Oczywiście trzeba sobie zdawać sprawę, że takie podejście do styli ma swoje wady - każdy nasz plik ze stylem jest obrabiany pzez PHP, wystarczy, że admin nam zrobi prezent w postaci niespodziewanego upgrade'u do wersji w której CSS Scaffold przestanie działać.</p>
<p>Dodatkowo osoba, której przekażemy taką stronę może się zdziwić jak zobaczy co jest w arkuszu.</p>
<p>Zawsze też istnieje możliwość olania projektu przez autora. W obecnej chwili wszystko zdaje się działać stabilnie jednak, jak już wspominałem, przy nowych wersjach PHP teoretycznie mogą się zacząć dziać cuda.</p>
<p>Jest to też pewne dodatkowe obciążenie po stronie serwera, jednak sprawnie działający cache zapewnie rozwiązuje ten problem (przyznaję, iż nie testowałem na stronie o dużym ruchu).</p>
<p>Mimo wszystko polecam spróbować - dla mnie jest to ogromne ułatwienia.</p>
<img src="http://vivee.info/?ak_action=api_record_view&id=1864&type=feed" alt="" /><p class='fb-like'><iframe src='http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fvivee.info%2F2010%2F04%2F23%2Fcss-scaffold-czyli-css-po-ludzku%2F&amp;layout=standard&amp;show_faces=true&amp;width=450&amp;action=like&amp;colorscheme=light&amp;height=65&amp;font=lucida+grande' scrolling='no' frameborder='0' allowTransparency='true' style='border:none; overflow:hidden; width:450px; height:65px'></iframe></p>]]></content:encoded>
			<wfw:commentRss>http://vivee.info/2010/04/23/css-scaffold-czyli-css-po-ludzku/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Adobe Kuler &#8211; wejdź w kulerowy świat</title>
		<link>http://vivee.info/2010/02/08/adobe-kuler-wejdz-w-kulerowy-swiat/</link>
		<comments>http://vivee.info/2010/02/08/adobe-kuler-wejdz-w-kulerowy-swiat/#comments</comments>
		<pubDate>Mon, 08 Feb 2010 11:45:35 +0000</pubDate>
		<dc:creator>levre</dc:creator>
				<category><![CDATA[Grafika]]></category>
		<category><![CDATA[Webdesign]]></category>
		<category><![CDATA[adobe]]></category>
		<category><![CDATA[Kuler]]></category>

		<guid isPermaLink="false">http://vivee.info/?p=1784</guid>
		<description><![CDATA[Kolory są jedynym z najważniejszych elementów każdego projektu i zapewne każdy miał problem z doborem odpowiedniej a zarazem optymalnej palety kolorów. Problem znika jeśli klient przedstawi nam w specyfikacji danego projektu odpowiedni schemat kolorów. Ale co zrobić jeśli tak się nie stanie i jesteśmy zdani sami na siebie. W ten czas powinniśmy skorzystać z generatora [...]]]></description>
			<content:encoded><![CDATA[<p>Kolory są jedynym z najważniejszych elementów każdego projektu i zapewne każdy miał problem z doborem odpowiedniej a zarazem optymalnej palety kolorów. Problem znika jeśli klient przedstawi nam w specyfikacji danego projektu odpowiedni schemat kolorów. Ale co zrobić jeśli tak się nie stanie i jesteśmy zdani sami na siebie.<br />
W ten czas powinniśmy skorzystać z generatora kolorów, który opracuje nam odpowiednie palety kolorystyczne. Jednym z lepszych produktów jest <a title="Kuler" href="http://kuler.adobe.com/" target="_blank">Kuler</a> opracowany przez zespół <a title="Adobe Labs" href="http://labs.adobe.com/" target="_blank">Adobe Labs</a>.</p>
<p><span id="more-1784"></span></p>
<p><strong>Adobe Kuler</strong> to przede wszystkim baza kilkunastu tysięcy zestawów kolorów. Posiada możliwość podawania a zarazem wyświetlania kolorów w przestrzeniach barw RGB, CMYK , LAB, HSV oraz w zapisie szesnastkowym HEX. Samodzielne stworzenie optymalnych palet może jednak sprawiać problemy, dlatego Adobe przygotowało kilka gotowych układów, tak więc wystarczy je zmodyfikować by otrzymać estetyczny układ. Przydatna jest też wyszukiwarka , która pomoże nam odszukać kolory które zostały opisane odpowiednimi słowami kluczowymi (np. orange, light, fresh itp). Serwis jest anglojęzyczny więc najlepiej wyszukiwać kolorowy poprzez angielskie tagi.</p>
<p class="insp"><a href="http://pliki.vivee.info/users/levre/tuts/adobe_kuler/img_1.jpg"><img src="http://pliki.vivee.info/users/levre/tuts/adobe_kuler/img_1_thumbs.jpg" alt="" /></a><br />
Adobe kuler – strona główna</p>
<p>Jeśli nie mamy ochoty, bądź czasu na to by wyszukiwać z pośród tysięcy kompozycji barwnych tej odpowiedniej mamy możliwość stworzenia własnej w parę chwil. Do stworzenie nowej palety kolorystycznej posłuży nam bardzo przyjemny, funkcjonalny a zarazem intuicyjny panel  użytkownika.<br />
Aby w pełni wykorzystać możliwości Kulera, należy wcześniej się zarejestrować. Wchodzimy zatem na stronę <a title="Kuler" href="http://kuler.adobe.com/" target="_blank">www.kuler.adobe.com</a> a następnie klikamy na link Register i podajemy niezbędne informacje. Chciałbym podkreślić iż konto założone w systemie Adobe oferuje nam możliwość korzystania z wszystkich produktów Adobe (<em>np. Kuler, Acrobat, Photoshop.com itp.</em>)</p>
<p>Jeśli chcemy stworzyć nową paletę kolorów, wybieramy z lewego menu strony <strong>Create</strong> a następnie <strong>From a Color</strong> bądź <strong>From an Image</strong>.</p>
<h2>From a Color</h2>
<p>Dzięki tej opcji mamy większe pole manewru w tworzeniu nowego zestawu kolorów. Na samym początku musimy określić kolor bazowy. Aby to zrobić musimy wpisać wartości liczbowe np. CMYK lub RGB w dolnej części okna w jednej z podstawowych przestrzeni barw, albo za pomocą suwaków, które znajdują się poniżej próbki.Po wybraniu koloru bazowego, musimy kliknąć na polecenie <strong>Set a Base</strong> znajdujące się nad próbką. Spowoduje to zapamiętanie koloru jako podstawę tworzonej palety.</p>
<p>Gdy już ustalimy podstawowy kolor zestawu, możemy wybrać typ tworzonej palety. Kuler w swoim mechanizmie posiada kilka podstawowych rodzajów palet.</p>
<p class="insp"><a href="http://pliki.vivee.info/users/levre/tuts/adobe_kuler/img_2.gif"><img src="http://pliki.vivee.info/users/levre/tuts/adobe_kuler/img_2_thumbs.gif" alt="" /></a><br />
Adobe kuler – główny panel zarządzania kolorami</p>
<ul>
<li><strong>Analogous</strong>- paleta analogowa, gdzie kolory sąsiadują ze sobą na kole barwnym (kolorów).Kuler dobiera do wprowadzonego koloru bazowego , kolory z nim sąsiadujące. Barwy charakteryzują się niskim kontrastem.</li>
<li><strong>Monochromatic</strong>- paleta monochromatyczna , podstawowym kolorem jest kolor bazowy oraz jego najjaśniejsze i najciemniejsze odcienie. Barwa posiada najwyższy kontrast, jaki jest możliwy do uzyskania w całej przestrzeni barwnej. Kontrast uzyskamy pomiędzy najjaśniejszymi a najciemniejszymi odcieniami..</li>
<li><strong>Triad</strong>- paleta triadowa, tworzą ją jak wskazuje nazwa trzy kolory , które znajdują się na kole kolorów w równych odległościach od ciebie (60°). Paleta pozwala uzyskać kolory pierwszorzędnych (żółty, czerwony, niebieski) , oraz drugorzędnych (pomarańczowy, zielony i fioletowy).</li>
<li><strong>Complementary</strong>- paleta komplementarna, tworzą ja dwa kolory leżące naprzeciwko siebie na palecie barwnej. Na przykład pary kolorów: czerwony –zielony , bądź niebieski – żółty.  Barwy posiadają wysoki kontrast.</li>
<li><strong>Compound</strong>- paleta Compound  jest podobna do poprzedniej ale z uwzględnieniem wielu odcieni koloru bazowego i przeciwnego.</li>
<li><strong>Shades</strong>- paleta Cienie – reguła dobierania kolorów jest podobna jak w palecie monochromatycznej. Lecz jej odmienność polega na tym iż paletę monochromatyczną tworzy kolor bazowy wraz z najjaśniejszymi i najciemniejszymi odcieniami. Natomiast w przypadku palety Shades paletę tworzy kolor bazowy wraz z ciemniejszymi od niego odcieniami.</li>
<li><strong>Custom</strong>- paleta niestandardowa, która pozwala na samodzielne zdefiniowanie zestawu kolorystycznego.</li>
</ul>
<h2>From an Image</h2>
<p>Bardzo przydatną funkcją Kuler’a jest tworzenie palety kolorów na podstawię fotografii.  Zdjęcie możemy uploadować za pomocą przycisku <strong>Upload New Image</strong>, obsługiwane formaty plików to (<em>.jpg, .png oraz .bmp</em>).Mamy także możliwość wgrania zdjęcia z serwisu <a title="Flickr" href="http://www.flickr.com/">Flickr</a>.</p>
<p>Po załadowaniu zdjęcia Kuler tworzy paletę kolorów z przypadkowych barw zawartych na fotografii. Na danym zdjęciu pokazane są miejsca próbkowania, aczkolwiek w razie konieczności mamy możliwość przesunięcia próbnika w dowolne miejsce obszarze zdjęcia. Ta funkcja również posiada opcjonalne typy palety (<em>Colorful, Wright, Muter, Deep, Dark</em>).</p>
<p class="insp"><a href="http://pliki.vivee.info/users/levre/tuts/adobe_kuler/img_3.gif"><img src="http://pliki.vivee.info/users/levre/tuts/adobe_kuler/img_3_thumbs.gif" alt="" /></a><br />
Adobe kuler – upload zdjęć z dysku i z serwisu Flickr</p>
<h2>Pobieranie i wczytywanie palety kolorów w produktach Adobe</h2>
<p>Adobe Kuler umożliwia nam również pobieranie stworzonej przez nas palety kolorów na dysk twardy. Pliki zapisywane są z rozszerzeniem .ase. Wówczas mamy możliwość wgrania gotowych palet do Photoshopa, InDesigna czy też Illustratora. Aby pobrać paletę należy, wybrać interesujący nas zestaw kolorów, a następnie kliknąć na przycisk (<strong>Adobe Download this Theme as an Adobe Swat Exchange file</strong>).</p>
<p class="insp"><a href="http://pliki.vivee.info/users/levre/tuts/adobe_kuler/img_4.jpg"><img src="http://pliki.vivee.info/users/levre/tuts/adobe_kuler/img_4_thumbs.jpg" alt="" /></a></p>
<ul>
<li><strong>Wczytywanie palety w Photoshopie</strong>- Kiedy mamy zapisaną paletę na dysku, i chcemy ją importować do Photoshopa, musimy upewnić się czy mamy włączony panel <strong>Swatches</strong> (<em>Próbki</em>). Jeżeli nie jest włączony, możemy go aktywować z menu kontekstowego <strong><em>Window&gt; Swatches</em></strong>. Następnie w panelu z Próbkami z rozwijanego menu wybieramy <strong>Load Swatches</strong> (<em>Załaduj Próbki</em>) lub <strong>Replace Swatches</strong> (<em>Zmień Próbki</em>) dzięki czemu na palecie będą widniały tylko kolory z wczytanego pliki który pobraliśmy z Kuler’a. W przypadku  kiedy będziemy chcieli zresetować wszystkie dostępne próbki należy wybrać z listy opcje <strong>Reset Swatches</strong> (<em>Resetuj Próbki</em>).</li>
<p class="insp"><a href="http://pliki.vivee.info/users/levre/tuts/adobe_kuler/img_5.jpg"><img src="http://pliki.vivee.info/users/levre/tuts/adobe_kuler/img_5_thumbs.jpg" alt="" /></a></p>
<li><strong>Wczytywanie palety do Indesgina i Illustratora</strong>- Na podobnej zasadzie będziemy wczytywać palety kolorów do Indesigna czy też Illustratora. Ponownie wybieramy panel<strong> Swatches</strong> (<em>Próbki</em>) z rozwijanego menu wybieramy <strong>Open Swatches Library&gt; Other Library</strong> (<em>Otwórz bibliotekę próbek&gt; Inna biblioteka</em>) a następnie wybieramy zapisany plik z paletą. Co ciekawe w Illustratorze wgrana paleta nie jest dodawana do pozostałych próbek, tak jak było to w przypadku Photoshop’a, lecz tworzony jest nowy panel.</li>
<p class="insp"><a href="http://pliki.vivee.info/users/levre/tuts/adobe_kuler/img_6.jpg"><img src="http://pliki.vivee.info/users/levre/tuts/adobe_kuler/img_6_thumbs.jpg" alt="" /></a></p>
</ul>
<h2>Kuler na pulpicie i bezpośrednio w programie</h2>
<p>Adobe postarało się i wydało aplikację którą instalujemy na naszym komputerze. Działa ona w środowisku <a title="Adobe Air" href="http://www.adobe.com/products/air/" target="_blank">Adobe Air</a>. Dzięki tej aplikacji mamy możliwość np. przeglądania najnowszych, najbardziej popularnych, zestawów kolorów, a także stworzonych przez nas samych palet. Można ją pobrać ze strony <a title="Adobe.com" href="http://www.adobe.com/products/kuler/" target="_blank">Adobe.com </a></p>
<p>Oprócz tego w każdym produkcie Adobe  (<em>Photoshop, Indesign, Illustrator itd.</em>) jest możliwość włączenia panelu Kuler, wybierając z menu <strong><em>Window&gt; Extensions&gt; Kuler</em></strong>. Posiada on takie same właściwości jak aplikacja którą instalujemy na naszym komputerze.</p>
<p class="insp"><a href="http://pliki.vivee.info/users/levre/tuts/adobe_kuler/img_7.jpg"><img src="http://pliki.vivee.info/users/levre/tuts/adobe_kuler/img_7_thumbs.jpg" alt="" /></a></p>
<img src="http://vivee.info/?ak_action=api_record_view&id=1784&type=feed" alt="" /><p class='fb-like'><iframe src='http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fvivee.info%2F2010%2F02%2F08%2Fadobe-kuler-wejdz-w-kulerowy-swiat%2F&amp;layout=standard&amp;show_faces=true&amp;width=450&amp;action=like&amp;colorscheme=light&amp;height=65&amp;font=lucida+grande' scrolling='no' frameborder='0' allowTransparency='true' style='border:none; overflow:hidden; width:450px; height:65px'></iframe></p>]]></content:encoded>
			<wfw:commentRss>http://vivee.info/2010/02/08/adobe-kuler-wejdz-w-kulerowy-swiat/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
	</channel>
</rss>

