<?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>adamczuk.net.pl &#187; Java Script</title>
	<atom:link href="http://adamczuk.net.pl/kategoria/java-script/feed/" rel="self" type="application/rss+xml" />
	<link>http://adamczuk.net.pl</link>
	<description>Just another WordPress weblog</description>
	<lastBuildDate>Sun, 06 May 2012 22:34:15 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Nowa wersja jQuery 1.5</title>
		<link>http://adamczuk.net.pl/2011/02/01/nowa-wersja-jquery-1-5/</link>
		<comments>http://adamczuk.net.pl/2011/02/01/nowa-wersja-jquery-1-5/#comments</comments>
		<pubDate>Tue, 01 Feb 2011 07:05:43 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Java Script]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[js]]></category>
		<category><![CDATA[library]]></category>

		<guid isPermaLink="false">http://adamczuk.net.pl/?p=467</guid>
		<description><![CDATA[Notka informacyjna o nowym wydaniu jQuery w wersji 1.5]]></description>
			<content:encoded><![CDATA[<p><a href="http://adamczuk.net.pl/wp-content/uploads/2010/02/jquery-light.jpg"><img src="http://adamczuk.net.pl/wp-content/uploads/2010/02/jquery-light.jpg" alt="" title="jquery-light" width="200" height="75" class="align left size-full wp-image-266" /></a>Właśnie pojawiło się w sieci nowe wydanie biblioteki <a href="http://jquery.com/">jQuery</a>. Wersja 1.5 zawiera kilka zmian, w tym nowe funkcjonalności. Obsługa AJAX została przepisana i rozszerzona. Pojawił się nowy obiekt <a href="http://api.jquery.com/category/deferred-object/">Deffered</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://adamczuk.net.pl/2011/02/01/nowa-wersja-jquery-1-5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Znane skrypty typu Lightbox</title>
		<link>http://adamczuk.net.pl/2010/11/04/znane-skrypty-typu-lightbox/</link>
		<comments>http://adamczuk.net.pl/2010/11/04/znane-skrypty-typu-lightbox/#comments</comments>
		<pubDate>Wed, 03 Nov 2010 23:09:07 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Java Script]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[js]]></category>
		<category><![CDATA[lighbox]]></category>
		<category><![CDATA[overlay]]></category>

		<guid isPermaLink="false">http://adamczuk.net.pl/?p=399</guid>
		<description><![CDATA[Przegląd znanych skryptów typu Lightbox. Rewolucyjny sposób prezentowania treści.]]></description>
			<content:encoded><![CDATA[<p><a href="http://adamczuk.net.pl/wp-content/uploads/2010/11/lightbox.jpg"><img src="http://adamczuk.net.pl/wp-content/uploads/2010/11/lightbox.jpg" alt="" title="lightbox" width="200" height="100" class="align left size-full wp-image-401" /></a>Popularny w ostatnich latach efekt <strong>Lightbox</strong> znalazł wielu naśladowców. Nowe skrypty pozwalają nie tylko na otwieranie pojedynczych zdjęć, ale również galerii, materiałów wideo, elementów flash czy wykonywania żądań AJAX. Mało kto pamięta, że wszystko zaczęło się jeszcze w 2005 roku, kiedy pierwszy skrypt Lightbox stworzył <a href="http://www.lokeshdhakar.com">Lokesh Dhakar</a>.<br />
<span id="more-399"></span></p>
<h3>Początek historii</h3>
<p>Pierwotny skrypt <a href="http://www.huddletogether.com/projects/lightbox/">Lightbox</a> nie używa efektów żadnej biblioteki JS do prezentacji. Prosty pomysł, troszkę kodu JavaScript i kilka plików graficznych. Wszystko to wystarczyło do uzyskania nowatorskiego na tamte czasy efektu. Skrypt pozwalał na oglądanie plików graficznych.</p>
<p>Niedługo potem powstała druga wersja skryptu. <a href="http://www.lokeshdhakar.com/projects/lightbox2/">Lightbox 2</a><br />
używa znanej biblioteki <a href="http://www.prototypejs.org/">prototype</a> oraz efektów <a href="http://www.prototypejs.org/">scriptaculous</a>. Wprowadzone zmiany to możliwość przechodzenia między oglądanymi zdjęciami, płynna animacja podczas prezentacji obrazów i wiele opcji konfiguracyjnych. Minusem tego rozwiązania była waga używanych technologii. Obydwie biblioteki nie były lekkie, co zostało poprawione w następcach tego projektu.</p>
<h3>Alternatywne skrypty</h3>
<p><a href="http://adamczuk.net.pl/wp-content/uploads/2010/11/fancybox.jpg"><img src="http://adamczuk.net.pl/wp-content/uploads/2010/11/fancybox.jpg" alt="" title="fancybox" width="200" height="100" class="align right size-full wp-image-406" /></a><a href="http://fancybox.net/">Fancybox</a> to skrypt, który korzysta z biblioteki <a href="http://jquery.com/">jQuery</a>, lekkiego frameworka dla JavaScript. Skrypt pozwala na otwieranie obrazów, elementów HTML, ale także animacji flash, ramek czy żądań AJAX. Ustawienia wyglądu łatwo modyfikuje się poprzez arkusze stylów, ale to nie powinno nikogo szokować. Ciekawym pomysłem jest obsługa rolki w myszce czy suwaka na trackpadzie, a także strzałek na klawiaturze. Bardzo użyteczne skróty.</p>
<p><a href="http://jquery.com/demo/thickbox/">ThickBox</a> w wersji 3.1 nie jest wprawdzie rozwijany, ale ciągle pozostaje dostępny w sieci. Skrypt łączył swoje działanie z biblioteką jQuery. Podobnie jak inne rozwiązania oferuje otwieranie obrazów, treści liniowych, ramek i żądań poprzez AJAX.</p>
<p>Z kolei <a href="http://www.phatfusion.net/projects.html">Multibox</a> korzysta z konkurencyjnej biblioteki <a href="http://mootools.net/">MooTools</a>. Skrypt wspiera otwieranie elementów flash, materiałów wideo oraz treści HTML,</p>
<p><a href="http://adamczuk.net.pl/wp-content/uploads/2010/11/greybox.jpg"><img src="http://adamczuk.net.pl/wp-content/uploads/2010/11/greybox.jpg" alt="" title="greybox" width="200" height="100" class="align left size-full wp-image-407" /></a><a href="http://orangoo.com/labs/GreyBox/">GreyBox</a> to jedyny znany mi skrypt, który nie potrzebuje zewnętrznego frameworka JS. Ogromna zaleta tego rozwiązania to końcowa wielkość. Popularne wyskakujące okienko, które nie ssie waży całe 22 kB. GreyBox otwiera zdjęcia oraz inne treści, w tym strony internetowe.</p>
<p>Nick Stakenburg napisał skrypt <a href="http://www.nickstakenburg.com/projects/lightview/">Lightview</a>, który korzysta z wspomnianych wcześniej bibliotek prototype i scriptaculous. Istotnie należy przyznać, że możliwości tego rozwiązania są imponujące. Otwieranie wielu typów mediów, szerokie możliwości stylizacji elementów wizualnych, automatyzacja kolejnych działań to główne cechy tego skryptu. Lightview wykorzystuje różne techniki optymalizacji, w tym wcześniejsze ładowanie obrazów. Poza wymienionymi cechami skrypt obsługuje wiele przycisków klawiatury.</p>
<p><a href="http://www.p51labs.com/lightwindow/">Lightwindow</a> to kolejny skrypt wykorzystujący biblioteki prototype i scriptaculous. Główne cechy otwieranie wielu rodzajów mediów i treści, wiele możliwości opisu wyświetlanych elementów, a także duża elastyczność przy zmianach obrazów, w tym automatyczne dostosowywanie rozmiaru. Lightwindow wykrywa typ prezentowanej treści oraz  pozwala na wysyłanie formularzy.</p>
<p><a href="http://adamczuk.net.pl/wp-content/uploads/2010/11/colorbox.jpg"><img src="http://adamczuk.net.pl/wp-content/uploads/2010/11/colorbox.jpg" alt="" title="colorbox" width="200" height="100" class="align right size-full wp-image-410" /></a><a href="http://colorpowered.com/colorbox/">ColorBox</a> to lekki plugin dla jQuery, który oferuje wiele możliwości, poczynając od otwierania obrazów, pokazów slajdów, a kończąc na treściach ramek czy żądań Ajax. Sam skrypt jest lekki, wygląd prezentowanego efektu modyfikują style kaskadowe, a zmiany ustawień domyślnych można wykonać bez ingerencji w kod bazowy skryptu. Wywołania skryptu można łączyć z kodem jQuery, a całość kodu XHTML jest zgodna ze standardami sieciowymi.</p>
<p><a href="http://adamczuk.net.pl/wp-content/uploads/2010/11/nyromodal.jpg"><img src="http://adamczuk.net.pl/wp-content/uploads/2010/11/nyromodal.jpg" alt="" title="nyromodal" width="200" height="100" class="align left size-full wp-image-411" /></a>Inny plugin dla jQuery to <a href="http://nyromodal.nyrodev.com/">NyroModal</a>, który podobnie jak wiele innych klonów Lighboxa otwiera różne media. Dodatkowo zawsze zapewnia otwieranie treści wewnątrz okna przeglądarki, obsługę błędów, modyfikowaną animację i widok.</p>
<p>Istnieje wiele innych skryptów, które nie zostały w tym artykule szerzej opisane, jak <a href="http://www.shadowbox-js.com/index.html">Shadowbox</a>, <a href="http://chriswanstrath.com/facebox/">Facebox</a>, <a href="http://www.pirolab.it/pirobox/">piroBox</a>, <a href="http://jquery.com/demo/grey/">GreyBox Redux</a>, <a href="http://www.no-margin-for-errors.com/projects/prettyphoto-jquery-lightbox-clone/">prettyPhoto</a> i pewnie kilkanaście innych.</p>
<h3>Podsumowanie</h3>
<p>Opisane i wymienione skrypty to tylko część przykładów jakie znajdziemy w sieci. Powstało wiele podobnych rozwiązań, które mniej lub bardziej różnią się od siebie. Jedne otwierają pojedyncze zdjęcia, drugie całe galerie. Część pozwala na uruchamianie pokazów slajdów, a inne na odtwarzanie materiałów wideo i flash.</p>
<p>Każdy przypadek użycia skryptu na stronie czy aplikacji jest inny. Czasami potrzeba prostego efektu, który nie wymaga konieczności dołączania ciężkich bibliotek JS, czy efektów, pokroju scriptaculous. Jeśli z kolei strona używa frameworka dla innych funkcjonalności to lepsze będzie znalezienie skryptu o większym możliwościach, który potrzebuje do działania danej biblioteki.</p>
<p>Wsparcie nowoczesnych przeglądarek dla standardów sieciowych jest coraz lepsze, a udział przestarzałych w rynku nieustannie maleje. Dzięki temu możemy być pewni, że kolejne skrypty i rozwiązania będą coraz lepsze i efektowniejsze.</p>
]]></content:encoded>
			<wfw:commentRss>http://adamczuk.net.pl/2010/11/04/znane-skrypty-typu-lightbox/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>wmd &#8211; alternatywa dla TinyMCE</title>
		<link>http://adamczuk.net.pl/2010/08/10/antyweb/</link>
		<comments>http://adamczuk.net.pl/2010/08/10/antyweb/#comments</comments>
		<pubDate>Tue, 10 Aug 2010 19:30:24 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Java Script]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[js]]></category>
		<category><![CDATA[markdown]]></category>
		<category><![CDATA[wmd]]></category>
		<category><![CDATA[wysiwym]]></category>

		<guid isPermaLink="false">http://adamczuk.net.pl/?p=339</guid>
		<description><![CDATA[Podstawowe informacje na temat edytora wmd. Format markdown to ciekawa alternatywa.]]></description>
			<content:encoded><![CDATA[<p><a href="http://adamczuk.net.pl/wp-content/uploads/2010/08/wmd.jpg"><img src="http://adamczuk.net.pl/wp-content/uploads/2010/08/wmd.jpg" alt="" title="wmd" width="300" height="100" class="alignleft left size-full wp-image-366" /></a>Język HTML oraz XHTML to główne technologie używane przy tworzeniu stron internetowych. Niestety nie wszyscy, którzy mają styczność z internetem to ludzie techniczni. Właśnie dla takich ludzi stworzono edytory <abbr title="What You See Is What You Get">WYSIWYG</abbr>, czyli dostajesz, co widzisz. Jednak ten wpis dotyczy edytora <abbr title="What You See Is What You Mean">WYSIWYM</abbr>, którym jest <a href="http://wmd-editor.com/">wmd</a>.<br />
<span id="more-339"></span><br />
<strong>Markdown</strong> to język znaczników przeznaczony do formatowania tekstu, który został stworzony przez Johna Grubera i Aarona Swartza. Podstawowy cel składni język to uproszczenie tworzenia i formatowania tekstu. Tekst zapisany w takim formacie jest przetwarzany to semantycznego XHTML. Nic nie stoi na przeszkodzie w zapisywaniu obydwu wersji na wypadek przyszłych aktualizacji tekstu.</p>
<p>Podstawowym problemem edytorów WYSIWYG jest generowanie niepoprawnego kodu. Wina stoi nie tylko po stronie parsowania tekstu przez skrypt, ale także oczekiwaniach użytkownika, co do samego formatowania tekstu. Zalety edytorów WYSIWYM to generowanie semantycznego kodu, który nie zawiera formatowania wewnątrz znaczników tekstu. Wygląd takiego tekstu zależy od zewnętrznych arkuszy stylów.</p>
<p>Edytor <a href="http://wmd-editor.com/">wmd</a> to doskonała alternatywa dla <a href="http://tinymce.moxiecode.com/">TinyMCE</a>, popularnego edytora WYSIWYG. Wprawdzie nie korzystałem z ostatnich wersji tego edytora od kilku lat, ale na potrzeby ostatnich projektów stosuję właśnie <strong>wmd</strong>. Markdown nie jest trudnym formatem i do podstawowych zastosowań zupełnie wystarcza.</p>
]]></content:encoded>
			<wfw:commentRss>http://adamczuk.net.pl/2010/08/10/antyweb/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>myBlog &#8211; prosta platforma blogowa</title>
		<link>http://adamczuk.net.pl/2010/07/20/myblog-prosta-platforma-blogowa/</link>
		<comments>http://adamczuk.net.pl/2010/07/20/myblog-prosta-platforma-blogowa/#comments</comments>
		<pubDate>Tue, 20 Jul 2010 16:21:04 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Java Script]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Projekty]]></category>
		<category><![CDATA[XHTML]]></category>
		<category><![CDATA[Blog]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[js]]></category>

		<guid isPermaLink="false">http://adamczuk.net.pl/?p=328</guid>
		<description><![CDATA[Nieoficjalne przedstawienie prostej, autorskiej platformy blogowej.]]></description>
			<content:encoded><![CDATA[<p>Istnieje wiele platform blogowych. Część z nich to niezależne silniki jak <a href="http://wordpress.org/">WordPress</a>, czy <a href="http://www.movabletype.org/">MovableType</a>, a inne to produkty zintegrowane z konkretnymi serwisami, jak <a href="http://www.blogger.com/">Blogger</a> czy <a href="http://www.tumblr.com/">Tumblr</a>. Istnieje również wiele polskich serwisów, które pozwalają na szybkie stworzenie dziennika internetowego i bezstresowe blogowanie. Najpopularniejsze to <a href="http://jogger.pl/">Jogger</a> i <a href="http://www.blox.pl/">Blox</a>. Zdarza się, że powyższe rozwiązania nie spełniają naszych oczekiwań, co wówczas prowadzi do wyważania otwartych drzwi.<br />
<span id="more-328"></span></p>
<p>Tworzenie aplikacji internetowych to skomplikowany, czasochłonny i nie zawsze opłacalny proces.</p>
<p><quote>Dlaczego wielu programistów pisze własne aplikacje, frameworki, biblioteki i inne rozwiązania?</quote></p>
<p>Po prostu wychodzą z przekonania, że sami zrobią to lepiej. Czasami zdarza się, że dzięki temu podejściu rodzą się prawdziwe perełki. Często wielkie molochy tracą klientów, użytkownicy znajdują produkty skrojone na miarę ich potrzeb i każdy może być zadowolony.</p>
<p>Pozostałe przypadki to zmarnowany potencjał, czas i zasoby, bo projekt umiera, zanim rozpoczął żywot. Dopóki nie rozpoczniesz tworzenia nowej jakości nie będziesz, miał pewności co do swojej wartości.</p>
<h3>Właściwy wpis</h3>
<p>Często zastanawia mnie kształt moich wypowiedzi formułowanych w stanie, jak najbardziej trzeźwym. Jestem przecież człowiek technicznych, któremu nie obce powinno być prasowanie, ale już bogaty język podczas wszelkich wypowiedzi, co najmniej zadziwia.</p>
<p>Człowiek uczy się przez lata, choć nie zawsze ma na to czas i chęci. Najlepszym przykładem moich osiągnięć jest <a href="http://squarezone.pl/">SquareZone</a>. Prosty, ale funkcjonalny serwis, który przystępnie oferuje informacje użytkownikom. Tym razem przyszedł czas na nowy przykład.</p>
<p><strong>MyBlog</strong> &#8211; nazwa kodowa powinna być bardziej tajemnicza, ale projekt jest w zbyt wczesnym stadium, mimo wielomiesięcznej pracy przy jego tworzeniu. Otóż wspomniana aplikacja oferuje lub będzie oferowała w przyszłości funkcjonalności znane z popularnych systemów blogowych.</p>
<p>Architektura systemu po części czerpała ze znanego WordPressa, jednak największym atutem omawianej aplikacji jest wydajność i zgodność ze standardami. Wszystkie testy i szczegóły zostaną przedstawione wkrótce. Niedługo postaram się przedstawić kolejne funkcjonalności oraz założenia rozwojowe.</p>
<p>Obecnie nie mam pewności czy kod źródłowy zostanie udostępniony publicznie, jednak wszelkie opinie na temat działania lub architektury są mile widziane.</p>
<p>Wersja demonstracyjna <a href="http://demo.ladamczuk.kei.pl">myBlog</a>dostępna jest w sieci.</p>
]]></content:encoded>
			<wfw:commentRss>http://adamczuk.net.pl/2010/07/20/myblog-prosta-platforma-blogowa/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nowe jQuery &#8211; nowe rozwiązania</title>
		<link>http://adamczuk.net.pl/2010/02/05/nowe-jquery-nowe-rozwiazania/</link>
		<comments>http://adamczuk.net.pl/2010/02/05/nowe-jquery-nowe-rozwiazania/#comments</comments>
		<pubDate>Fri, 05 Feb 2010 10:43:28 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Java Script]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[js]]></category>

		<guid isPermaLink="false">http://adamczuk.net.pl/?p=265</guid>
		<description><![CDATA[Krótka notka na temat nowego wydania jQuery 1.4.]]></description>
			<content:encoded><![CDATA[<p><a href="http://adamczuk.net.pl/wp-content/uploads/2010/02/jquery-light.jpg"><img src="http://adamczuk.net.pl/wp-content/uploads/2010/02/jquery-light.jpg" alt="" title="jquery-light" width="200" height="75" class="left" /></a>Na początku roku wydano jQuery 1.4, które wprowadza nowe funkcjonalności i poprawia znane błędy. Wydanie nowej wersji trwało stało się dla twórców powodem do wielkiego świętowania, czemu poświęcili osobną <a href="http://jquery14.com/">stronę</a>.</p>
<p>W ciągu 14 dni twórcy biblioteki opowiadali o zmianach jakie wprowadzili do nowej wersji. Szczególnie interesujący był <a href="http://jquery14.com/day-03/internal-changes-in-jquery-14-2">podcast</a>, w którym John Resig przedstawił zmiany w rdzeniu biblioteki. Zmniejszenie rozmiaru, wzrost wydajności i większa zgodność z przeglądarkami.</p>
]]></content:encoded>
			<wfw:commentRss>http://adamczuk.net.pl/2010/02/05/nowe-jquery-nowe-rozwiazania/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Ajax loading gif generator</title>
		<link>http://adamczuk.net.pl/2009/11/10/ajax-loading-gif-generator/</link>
		<comments>http://adamczuk.net.pl/2009/11/10/ajax-loading-gif-generator/#comments</comments>
		<pubDate>Tue, 10 Nov 2009 19:47:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Java Script]]></category>
		<category><![CDATA[Serwisy]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[generator]]></category>
		<category><![CDATA[image]]></category>
		<category><![CDATA[js]]></category>
		<category><![CDATA[loading]]></category>

		<guid isPermaLink="false">http://adamczuk.net.pl/?p=222</guid>
		<description><![CDATA[W jednym z projektów wykorzystałem skrypt GreyBox w celu otwierania obrazków. Jednak standardowy obrazek ładowania były beznadziejny. Skorzystałem ze znanej wszystkim użytkownikom wyszukiwarki i po kilku sekundach trafiłem na stronę, którą generowała obrazek ładowania strony. W panelu wybieramy typ naszego obrazka, kolory jego tło i pierwszego planu. Możemy jeszcze włączyć lub nie przezroczystość obrazka. Generowanie [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://adamczuk.net.pl/wp-content/uploads/2009/11/ajax-loading-generator.jpg" alt="ajax-loading-generator" title="ajax-loading-generator" width="300" height="100" class="left size-full wp-image-223" />W jednym z projektów wykorzystałem skrypt <a href="http://www.orangoo.com/labs/GreyBox/" title="GreyBox">GreyBox</a> w celu otwierania obrazków. Jednak standardowy obrazek ładowania były beznadziejny. Skorzystałem ze znanej wszystkim użytkownikom wyszukiwarki i po kilku sekundach trafiłem na <a href="http://www.ajaxload.info/">stronę</a>, którą generowała obrazek ładowania strony.<br />
<span id="more-222"></span><br />
W panelu wybieramy typ naszego obrazka, kolory jego tło i pierwszego planu. Możemy jeszcze włączyć lub nie przezroczystość obrazka. Generowanie obrazka trwa kilka sekund, a wszystko to za darmo.</p>
<p>Wśród typów obrazka rozpoznamy ten, który ma YouTube, nowy LightBox albo chociaż Lightwindow. Ten wpis jest prawdziwym dopełnieniem artykułu na temat stylowania lightboxa. Po zmianie kolorystki skryptu, możemy spokojnie dostosować do własnych potrzeb również obrazek ładowania.</p>
]]></content:encoded>
			<wfw:commentRss>http://adamczuk.net.pl/2009/11/10/ajax-loading-gif-generator/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>TinyMCE &#8211; wprowadzenie</title>
		<link>http://adamczuk.net.pl/2009/03/27/tinymce-wprowadzenie/</link>
		<comments>http://adamczuk.net.pl/2009/03/27/tinymce-wprowadzenie/#comments</comments>
		<pubDate>Fri, 27 Mar 2009 09:23:30 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Java Script]]></category>
		<category><![CDATA[js]]></category>
		<category><![CDATA[tinymce]]></category>
		<category><![CDATA[wysiwyg]]></category>

		<guid isPermaLink="false">http://adamczuk.net.pl/?p=173</guid>
		<description><![CDATA[Podstawowe informacje na temat edytora WYSIWYG - TinyMCE.]]></description>
			<content:encoded><![CDATA[<p>Jako programista i koder jestem zwolennikiem ręcznego pisania kodu. Co innego uzupełnianie składni czy podpowiadanie metod znane z profesjonalnych środowisk programistycznych, np. MS Visual Studio. Tak samo nie mam nic przeciwko wstawianiu gotowych bloków kodu, np. przez plugin QuickText dla edytora <a href="http://notepad-plus.sourceforge.net/">Notepad++</a>.</p>
<p>Jednak korzystanie z edytorów <acronym title="what you see is what you get">WYSIWYG</acronym> podczas tworzenia aplikacji internetowych to jedna z najgorszych praktyk. Edytory te prowadzą często do tworzenia nadmiarowego kodu. Bynajmniej nie chodzi tu tylko o przestarzałe znaczniki i inne wynalazki, które nie przechodzą poprawnie walidacji. Edytory WYSIWYG najzwyczajniej w świecie nie potrafią tworzyć w pełni semantycznego kodu XHTML. Jednak w pewnym stopniu mogą być przydatne.<span id="more-173"></span></p>
<h3>Wprowadzenie</h3>
<p><strong>TinyMCE</strong> to niezależny internetowy edytor WYSIWYG n<acronym title="what you see is what you get"></acronym>apisany w Javascript. TinyMCE jest wydawany przez <a href="http://www.moxiecode.com/">Moxiecode Systems AB</a> jako Open Source na licencji LGPL. Główną zaletą tego produktu jest łatwa integracja z dowolnym systemem zarządzania treścią.</p>
<p>W jednym z projektów klient chciał formatować treść swoich wpisów. Oczywiście rozsądne było założenie, że klient nie zna znaczników HTML, składni BBCode czy Textile. Po krótkim namyśle, postanowiłem skorzystać z gotowego rozwiązania jakim jest TinyMCE.</p>
<h3>Instalacja</h3>
<p>Na początek musimy ściągnąć potrzebny <a href="http://tinymce.moxiecode.com/download.php">TinyMCE</a>, najlepiej w najnowszej wersji. Pozostaje nam wypakowanie archiwum w wybranej lokalizacji i podlinkowanie w kodzie naszej strony.</p>
<pre><code>&lt;script language="javascript" type="text/javascript" src="js/tiny_mce/tiny_mce.js"&gt;&lt;/script&gt;</code></pre>
<p>W moim przypadku był to katalog <code>js/tiny_mce</code>, w którym znajdował się właściwy plik <code>tiny_mce.js</code>. Uruchomienie edytora jest równie proste. Należy jedynie pamiętać o objęciu całości przez <code>{literal}</code> i <code>{/literal}</code>, jeżeli korzystamy z szablonów Smarty, ponieważ przy tworzeniu obiektu tinyMCE stosowane są klamry.</p>
<pre><code>&lt;script language="javascript" type="text/javascript"&gt;
  tinyMCE.init({
    mode : "textareas"
  });
&lt;/script&gt;</code></pre>
<p>Instalacja to dopiero początek. Cała magia skryptu kryje się w mnogości opcji konfiguracyjnych.</p>
<h3>Konfiguracja</h3>
<p>Kilkanaście kluczowych opcji pozwala na praktycznie dowolne ustawienie wyglądu i zachowania naszego edytora. Dokumentacja TinyMCE zawiera <a href="http://wiki.moxiecode.com/index.php/TinyMCE:Configuration">spis</a> wszystkich parametrów konfiguracyjnych.</p>
<p>Opcja <strong>mode</strong> pozwala na ustawienie, jakie elementy naszej aplikacji będą edytorami. Wartość <strong>textareas</strong> powoduje przekształcenie wszystkich znaczników w edytory WYSIWYG.</p>
<pre><code>tinyMCE.init({
  mode : "textareas"
});</code></pre>
<p>Możliwe jest również przekształcenie w edytor dowolnego elementu na naszej stronie. W tym wypadku ustawiamy wartość <strong>exact</strong> oraz podajemy dodatkowy parametr <strong>elements</strong>, w celu powiadomienia, które elementy chcemy zmienić w edytor.</p>
<pre><code>tinyMCE.init({
  mode : "exact",
  elements : "post-text"
});</code></pre>
<p>Jeżeli potrzebujemy polskich podpowiedzi (hints) lub innych elementów to możliwy jest wybór języka. Jednak konieczne jest ściągnięcie odpowiednich plików z serwera TinyMCE i umieszczenie ich w naszych katalogach. Resztę załatwia opcja <strong>language</strong> z wartością danego języka. W naszym przypadku będzie to <strong>pl</strong> dla języka polskiego.</p>
<pre><code>tinyMCE.init({
  ...
  language : "pl"
});</code></pre>
<p>Następnie powinniśmy ustawić <strong>theme</strong>, który odpowiada za ilość funkcji, dostępnych w edytorze. Wartość  <strong>advanced</strong> pozwala na dużą elastyczność, zarówno w doborze funkcji jak i innych ustawieniach. Druga możliwość to <strong>simple</strong>, która udostępnia edytor z podstawowymi funkcjami.</p>
<pre><code>tinyMCE.init({
  ...
  theme : "advanced"
});</code></pre>
<p>Wartość <strong>advanced</strong> jest domyślna, a nasz edytor może zawierać ponad 50 różnych funkcji! Zapewne większości użytkowników niepotrzebne są niektóre funkcje, dlatego możemy skorzystać z kolejnej opcji konfiguracyjnej.</p>
<p>Jeżeli potrzebujemy tylko wybrane funkcje i potrafimy zmieścić je w dwóch lub jednym pasku to wystarczy dodać kolejny fragment kodu.</p>
<pre><code>tinyMCE.init({
  ...
  theme_advanced_buttons1 : "bold,italic,underline,separator,strikethrough",
  theme_advanced_buttons2 : "undo,redo,|,link,unlink",
  theme_advanced_buttons3 : ""
});</code></pre>
<p>W pierwszym pasku mamy Pogrubienie, Pochylenie, Podkreślenie oraz Przekreślenie rozdzielone separatorem pionowym. W kolejnym pasku znajdują się Cofnij i Ponów oraz Dodaj link i Usuń link, także rozdzielone separatorem. Trzeci pasek jest zdefiniowany jako pusty. Dla krótszej notacji można stosować <code>|</code> zamiast <code>separator</code>.</p>
<p>Możemy również wybrać pozycję pasków oraz wyrównanie przycisków. Dopuszczalne wartości dla ustawienia pasków to <strong>top</strong>, <strong>bottom</strong> oraz <strong>external</strong>, przy czym druga jest domyślna, a trzecia  wymaga dodatkowych opcji w celu ustawienia pasków w zewnętrznej warstwie. Jeśli chcemy wyrównać przyciski to możemy skorzystać z wartości <strong>left</strong>, <strong>right</strong> lub <strong>center</strong>, przy czym domyślnie przyciski umieszczone są na środku paska.</p>
<pre><code>tinyMCE.init({
  ...
  theme_advanced_toolbar_location : "top",
  theme_advanced_toolbar_align : "left"
});</code></pre>
<h3>Podsumowanie</h3>
<p>Artykuł przedstawia ogólne informacje na temat TinyMCE. Zdaję sobie sprawę, że omówiłem jedynie podstawowe opcje konfiguracyjne, ale w większości użytkowników jest to wystarczające. Więcej informacji możemy znaleźć w <a href="http://wiki.moxiecode.com/index.php/TinyMCE:Index">dokumentacji</a>.</p>
<p>TinyMCE jest bardzo elastyczne i pozwala na praktycznie dowolną konfigurację. Nie należy jednak przesadzać, ponieważ czasem coś może nie działać tak jak tego oczekujemy.</p>
]]></content:encoded>
			<wfw:commentRss>http://adamczuk.net.pl/2009/03/27/tinymce-wprowadzenie/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>

