podstawy tworzenia modułów

Transkrypt

podstawy tworzenia modułów
Serwery i aplikacje WWW
 Wprowadzenie do CMS Made Simple
 Podstawy tworzenia modułów – tworzenie plików akcji
 Proste operacje na obrazach w Javascript
 Przegląd frameworków Javascript
Paweł Ochota
WPROWADZENIE DO CMS MADE SIMPLE
Wygląd po instalacji:
CMS Made Simple (CMSMS) jest otwartym (licencja GPL) systemem
zarządzania treścią, umożliwiającym tworzenie profesjonalnych witryn WWW
zgodnych z najnowszymi standardami sieciowymi oraz ułatwia dodawanie
nowych treści i zarządzanie nimi.
Został zaprojektowany z użyciem PHP, frameworka do baz danych ADODB
a także szablonów Smarty, które umożliwiają proste tworzenie
modułów wielojęzycznych i oddzielenie warstwy kodu od wyglądu witryny.
Dodatkowo wykorzystuje on Ajax i frameworki takie jak jQuery.
Panel administracyjny:
CMSMS jest coraz częściej wybierany przez małe firmy i deweloperów
ze względu na prostotę użytkowania panelu administracyjnego, łatwe
tworzenie nowych modułów i szablonów, możliwość włączenia tzw.
„przyjaznych linków” a także dużą bazę gotowych rozszerzeń, która ciągle się
rozrasta.
Ostatnia stabilna wersja, demo systemu, dokumentacja, forum
i pliki do pobrania są dostępne pod adresem:
http://www.cmsmadesimple.org/
Paweł Ochota
WPROWADZENIE DO CMS MADE SIMPLE
Panel administracyjny
dostępny z poziomu adresu witryny, np. www.example.com/admin
Zakładki w panelu:
- CMS
- Treść
- Wygląd
- Użytkownicy i grupy
- Rozszerzenia
- Administracja serwisu
- Moje preferencje
Dynamiczne powiadomienia
Dodatkowo:
- Pomoc
- Powiadomienia
- Podgląd witryny
- Wyloguj
Zakładka CMS:
- Home (start)
- Podgląd witryny
- Wyloguj
Pomoc dla
CMS MS
Paweł Ochota
Zakładki do
zarządzania
systemem
WPROWADZENIE DO CMS MADE SIMPLE
Dodawanie treści
Dodawanie nowych pozycji w menu naszej witryny jest w CMSMS bardzo proste. Wystarczy
wybrać w panelu zakładkę „Treść” a w niej pozycję „Strony”. Przykładowy widok menu:
- Strona
- Szablon
- Typ
- Właściciel
- Aktywny
- Domyślny
- Przesuń
- nazwa elementu w menu
- wybór szablonu, każdy podelement w menu może mieć inny szablon
- wyróżniamy m.in.: Treść, Nagłówek sekcji, Separator, Zewnętrzny link
- pokazuje kto jest twórcą elementu
- umożliwia wyłączenie/włączenie elementu w menu
- element, który pojawi się przy pierwszym wyświetleniu strony, strona główna
- zmiana kolejności elementów w menu
Dodatkowo: Zobacz, Kopiuj, Edytuj, Usuń, Zaznaczenie
Paweł Ochota
WPROWADZENIE DO CMS MADE SIMPLE
Dodawanie treści
Tworząc nowy element mamy możliwość używania edytora WYSIWYG zamiast kodu HTML,
co ułatwia dynamiczne tworzenie układów tekstów wraz z obrazkami, odnośnikami, tabelami
itp. Dodawanie i edycja treści są zatem bardzo podobne do edycji dokumentów w pakietach
biurowych i równie proste.
Wybór języka
dla treści
Czy element menu ma
być częścią listy
rozwijanej
Zamiast edytora
WYSIWYG można
używać kodu HTML
Paweł Ochota
WPROWADZENIE DO CMS MADE SIMPLE
Wybór szablonu witryny
CMSMS daje nam opcje dynamicznej zmiany szablonu witryny a także modyfikacji obecnego
wyglądu za pomocą kodu HTML i arkuszy styli CSS. Umożliwia nam to zakładka „Wygląd”.
Do jednego szablonu możemy podpiąć wiele styli, zmieniając np. wygląd menu z poziomego
na pionowy. Mamy również możliwość włączenia do szablonu specjalnych elementów ujętych
w nawiasy klamrowe { i } takich jak {content} - dodający treść z menu, {menu} – wstawia menu
w określoną część witryny czy też {footer} – dodający stopkę znajdującą się w „Globalnych
blokach HTML”.
Paweł Ochota
WPROWADZENIE DO CMS MADE SIMPLE
Użytkownicy i grupy
Niewątpliwą zaletą CMS Made Simple jest możliwość podziału obowiązków w systemie.
Tworząc nowych użytkowników możemy przydzielić ich do jednej z trzech grup:
- ma prawa do dodawania/usuwania użytkowników, zmieniania treści, edytowania
szablonów i przede wszystkim ma dostęp do globalnych ustawień strony, wyboru
języka, zmian znaczników meta itp..
- Editor
- może jedynie dodawać i edytować treść na stronie
- Designer - ma możliwość edycji szablonów, dodawania styli CSS itp..
- Admin
Każdą grupę można edytować dodając lub odejmując jej poszczególne prawa jakie mogą
wykonywać. Istnieje również możliwość dodania własnej grupy i przypisania jej dowolnych
praw. Można w ten sposób utworzyć grupę, która będzie np. „pomostem” między Editorem a
Designerem.
Paweł Ochota
WPROWADZENIE DO CMS MADE SIMPLE
Moduły
CMSMS jest oparty o rozszerzenia zwane modułami. Sam system bazowy byłby bardzo
ograniczony bez nich, ponieważ modułami są np. menu czy wyszukiwarka a nawet cały
system szablonów. W zakładce „Rozszerzenia” możemy sprawdzić zainstalowane w systemie
moduły przechodząc do elementu „Moduły”:
Mamy tutaj możliwość odinstalowania/instalowania modułów, zmiany uprawnień każdego z
nich, eksport do pliku XML a także możliwość instalacji modułu z takiego pliku.
Paweł Ochota
WPROWADZENIE DO CMS MADE SIMPLE
Menadżer modułów
Każdy moduł możemy zainstalować ściągając go uprzednio ze strony projektu (lub tworząc
własny) i wrzucając go za pomocą klienta FTP do katalogu „modules” na serwerze. Warto
jednak sprawdzić czy poszukiwanego modułu nie znajdziemy w menadżerze modułów. To
wygodny sposób na rozszerzanie możliwości CMSMS. „Menadżer modułów” znajdziemy w
zakładce „Rozszerzenia”, całość przypomina typowe repozytorium z pakietami:
Paweł Ochota
WPROWADZENIE DO CMS MADE SIMPLE
Ustawienia globalne
W zakładce „Administracja serwisu” mamy możliwość ustawienia wyglądu i języka panelu
administracyjnego. To również wygodne miejsce na zadeklarowanie znaczników <meta>
witryny czy włączenia dodatkowych bibliotek Javascript. Mamy tutaj również możliwość
sprawdzenia opcji serwera, weryfikacji zainstalowanego systemu oraz dziennik administratora,
który zapisuje każdą akcję wykonaną w panelu administracyjnym.
Paweł Ochota
PODSTAWY TWORZENIA MODUŁÓW
 Klasyfikacja modułów
 Prosty moduł typu plug-in: „Hello World!”
 Tworzenie plików akcji
Paweł Ochota
PODSTAWY TWORZENIA MODUŁÓW
Możliwości
• Wielojęzyczność udostępnianych treści
• Rozszerzanie funkcjonalności systemu bazowego
• Rozszerzanie funkcjonalności innych modułów
• Reagowanie na zdarzenia w systemie
• Wprowadzanie infrastruktury dla przyszłych modułów
Klasyfikacja
Wyróżniamy moduły typu:
• Plug-ins
• Content
• Infrastructure
• Administrative
• Event Handlers
• Filters
- dodatki dla FrontEndu np. Search, News
- wpływające na treść główną strony, np. Cataloger
- mające wpływ na inne moduły np. nuSOAP
- moduły administracyjne dla panelu np. ThemeManager
- reagujące na zdarzenia
- rozszerzające inne moduły
Paweł Ochota
PODSTAWY TWORZENIA MODUŁÓW
Prosty moduł typu plug-in
1. Utwórz katalog na serwerze: $CMSROOT/modules/HelloWorld
Aby utworzyć własny moduł musimy utworzyć na serwerze w miejscu gdzie zainstalowaliśmy
CMSMS w katalogu „modules” folder, o nazwie będącej nazwą naszego modułu. Zwyczajowo
rozpoczyna się go dużą literą, dla naszego przykładu nazwiemy go HelloWorld.
2. W katalogu HelloWorld utwórz plik: HelloWorld.module.php
Tworzymy plik główny dla modułu. Pierwszy człon nazwy musi być identyczny jak nazwa
katalogu w którym się on znajduje. Następnie kończymy go słowem „module” z rozszerzeniem
.php, pliki modułów są skryptami PHP wzbogaconymi o dodatkowe klasy systemu, szablony
Smarty i funkcje biblioteki ADODB.
WAŻNE!
Plik musi mieć kodowanie zgodne z kodowaniem całej witryny (można to sprawdzić w
Ustawieniach globalnych CMSa), domyślnie jest to UTF-8.
Paweł Ochota
PODSTAWY TWORZENIA MODUŁÓW
Prosty moduł typu plug-in
3. Wpisz do pliku HelloWorld.module.php następujący kod:
<?php
class HelloWorld extends CMSModule {
function GetName() {
return „HelloWorld”;
}
function IsPluginModule() {
return true;
}
function DoAction($action, $id, $params, $returnid = -1) {
echo ‘Hello World!’;
}
}
?>
Tworzymy więc klasę o nazwie identycznej jak nazwa modułu, dziedziczy ona po głównej
klasie CMSMS o nazwie CMSModule, dzięki czemu mamy możliwość wykorzystania gotowych
już metod ułatwiających sterowanie modułem. Niezbędne rzeczy do zadeklarowania przez nas
to metoda GetName(), która zwróci nazwę modułu w menadżerze w panelu, IsPluginModule w
której zaznaczamy czy dany moduł ma być typu Plug-in czy nie, oraz najważniejsza
DoAction(), zawierająca to co de facto chcemy żeby plugin robił. W naszym wypadku, żeby
wyświetlił ciąg: „Hello World!”
Paweł Ochota
PODSTAWY TWORZENIA MODUŁÓW
Prosty moduł typu plug-in
4. W panelu administracyjnym przejdź do zakładki „Rozszerzenia” i zaznacz „Moduły”.
Zainstaluj moduł „HelloWorld”.
5. Moduł należy wpleść w szablon lub w treść elementu w menu. Wykorzystamy drugi
sposób. Przechodzimy do zakładki „Treść” w niej w „Strony” i dodajemy nowy element
menu. W treści wpisujemy: {cms_module module='HelloWorld'}.
Paweł Ochota
PODSTAWY TWORZENIA MODUŁÓW
Prosty moduł typu plug-in
6. Zapisujemy nową treść i testujemy nasz moduł klikając na podgląd strony w panelu.
W domyślnym szablonie będzie to wyglądało następująco:
Nasz plug-in jest już gotowy. Możemy w nim używać nie tylko kodu PHP, za pomocą instrukcji
echo można wysyłać dowolny inny kod, czy to HTML czy Javascript. Zostanie to pokazane
przy tworzeniu plików akcji.
Paweł Ochota
PODSTAWY TWORZENIA MODUŁÓW
Prosty moduł typu plug-in
Plug-iny są najprostszymi modułami jakie możemy utworzyć w CMS Made Simple, można je
rozbudowywać do woli, jednak już na pierwszy rzut oka można stwierdzić, że duże moduły nie
sprawdzą się w postaci pluginów. Pojawiają się następujące problemy:
- Brak wsparcia dla innych języków
- Duży kod ciężko pielęgnować, potrzeba separacji kodu na akcje i metody
- Brak wyraźnego oddzielenia między warstwą kodu a wyglądem
- Brak możliwości aktualizacji modułu
- Brak jakiegokolwiek powiązania z bazą danych
W dalszej części skupimy się na tworzeniu plików akcji, które pozwolą nam rozdzielić zadania,
które będzie wykonywał moduł. Odpowiedzi na pozostałe zagadnienia można znaleźć na
głównej stronie CMS Made Simple: http://www.cmsmadesimple.org/
Paweł Ochota
PODSTAWY TWORZENIA MODUŁÓW
Struktura modułu
Pliki modułu.
Rozpoznawane są człony:
- method
- action
Główny katalog
instalacyjny
Katalog na
serwerze
Pliki szablonów
Smarty
Katalog
modułu
Pliki językowe
Paweł Ochota
PODSTAWY TWORZENIA MODUŁÓW
Tworzenie plików akcji
CMSMS umożliwia rozdzielenie zadań w module poprzez zastosowanie plików akcji. Plik akcji
nazywamy wg poniższego schematu:
action.nazwa_akcji.php
Plik akcji jest skryptem PHP, który zawsze na początku musi zawierać instrukcję warunkową:
if( !isset($gCms) ) exit;
Sprawdza ona czy istnieje obiekt $gCms, który tworzony jest zazwyczaj w pliku
method.install.php modułu. Jeżeli go nie ma to skrypt się nie wykona.
Poniżej pokazano prosty plik akcji wraz z kodem HTML (tak samo można z Javascript):
<?php
if( !isset($gCms) ) exit;
echo ‘
<strong>Hello World!</strong>
<br />
<em>Hello \‘World\’ po raz drugi</em>’;
?>
Kod HTML i Javascript umieszczamy instrukcją echo w apostrofach (pamiętajmy o znaku „\”
gdy chcemy wyświetlić apostrof!).
Paweł Ochota
PROSTE OPERACJE NA OBRAZACH
W JAVASCRIPT
 Wczytywanie obrazu – obiekty typu Image
 Znacznik <canvas>
 Przykład: Skala szarości
 Przykład: Negatyw
Paweł Ochota
PROSTE OPERACJE NA OBRAZACH W JAVASCRIPT
Klasa Image
Pozwala nam tworzyć obiekty typu Image w następujący sposób:
var image = new Image([szerokość],[wysokość]);
Gdzie szerokość i wysokość to parametry opcjonalne. Właściwości dla obiektów typu Image:
- src
- źródło, ścieżka do pliku z obrazem
- border
- ustawia obramowanie (wartość w pikselach)
- width
- szerokość obrazu
- height
- wysokość obrazu
- name
- nazwa obrazu zdefiniowana przez atrybut „name”
- vspace
- odstępy pionowe dookoła elementu
- hspace
- odstępy poziome dookoła elementu
- lowsrc
- ścieżka do pliku z miniaturką obrazu
- complete - wartość boolean, czy obraz został poprawnie załadowany
Pobierając elementy będące znacznikami <img> nie musimy tworzyć nowego obiektu typu
Image. Javascript jest językiem dynamicznie typowanym, poniższa zmienna będzie typu
Image:
var image = document.getElementsByTagName('img');
Paweł Ochota
PROSTE OPERACJE NA OBRAZACH W JAVASCRIPT
Klasa Image - przykład
Kod Javascript:
<script type="text/javascript">
function wczytaj() {
var image = document.getElementById('obraz');
image.src = "zima.jpg";
image.width = 100;
image.height = 70;
image.border = 2;
}
</script>
Kod HTML:
<body onload="wczytaj();">
<div style="width: 300px; height: 200px;">
<img id="obraz" src="" alt="" />
</div>
</body>
Jest to bardzo prosty przykład pokazujący w jaki sposób Javascript może operować na
obrazach.
Paweł Ochota
PROSTE OPERACJE NA OBRAZACH W JAVASCRIPT
Klasa Image - problem
Pojawił się poważny problem. Klasa Image nie posiada właściwości lub metod mogących
manipulować pikselami obrazu. Nie można zatem wykonywać operacji pobrania wartości
piksela czy też zmiany tej wartości. Sam Javascript nie poradzi sobie z tym problemem.
Z pomocą przychodzi HTML5
<canvas> jest znacznikiem należącym do nowej wersji języka HTML oznaczonej numerem 5.
Tworzy on wirtualne płótno na którym można szybko wprowadzać wektorową grafikę 2D. Za
pomocą Javascriptu można dynamicznie rysować na tym płótnie. Nadaje się on również do
tworzenia przyjaznych dla oka ankiet.
Uwaga!
Element <canvas> nie jest intepretowany przez przeglądarkę Internet Explorer w wersjach
wcześniejszych od 9. No cóż…
Paweł Ochota
PROSTE OPERACJE NA OBRAZACH W JAVASCRIPT
Canvas – prosty przykład
<html>
<head>
<script type="application/x-javascript">
function draw() {
var canvas = document.getElementById("canvas");
var ctx = canvas.getContext("2d");
ctx.fillStyle = "rgb(200,0,0)";
ctx.fillRect (10, 10, 50, 50);
ctx.fillStyle = "rgba(0, 0, 200, 0.5)";
ctx.fillRect (30, 30, 50, 50);
}
</script>
</head>
<body onload="draw()">
<canvas id="canvas" width="300" height="300"></canvas>
</body>
</html>
Rezultat:
Paweł Ochota
PROSTE OPERACJE NA OBRAZACH W JAVASCRIPT
Canvas
Element <canvas> umieszczamy pomiędzy znacznikami <body></body> witryny. Dla
przeglądarek nie obsługujących tego znacznika warto zostawić stosowną informację:
<canvas id="myCanvas">
Twoja przeglądarka nie obsługuje canvas.
</canvas>
Należy także podać wielkość kanwy za pomocą width i height (można to zrobić w Javascript).
Aby operować na <canvas> musimy wykorzystać Javascript. W sekcji <script> pobieramy
element:
var canvas = document.getElementById('myCanvas');
Potrzebny jest jeszcze dostęp do kontekstu bitmapy, uzyskamy go wykorzystując metodę
getContext():
var ctx = canvas.getContext('2d');
Narysujmy teraz prostokąt. Potrzebne będzie zdefiniowanie jego koloru za pomocą fillStyle() i
późniejsze wyrysowanie go za pomocą metody fillRect():
ctx.fillStyle = 'rgb(255,0,0)';
ctx.fillRect(0,0,200,100);
Podajemy w postaci trójki kolorów RGB. Można
skorzystać z funkcji rgba() wtedy należy podać
jeszcze 4 parametr dla kanału alpha.
wysokość
X
Y
szerokość
Paweł Ochota
PROSTE OPERACJE NA OBRAZACH W JAVASCRIPT
Canvas
Możemy utworzyć prostokąt za pomocą samego obramowania, metody strokeStyle() i
strokeRect() posiadają identyczne parametry jak poprzednie:
ctx.strokeStyle = 'rgb(255,0,0)';
ctx.strokeRect(0,0,200,100);
Aby wyczyścić prostokąt z naszej kanwy korzystamy z metody clearRect():
ctx.clearRect(0,0,200,100);
Inne metody pomocne przy rysowaniu obiektów:
beginPath()
- rozpoczyna nową ścieżkę
closePath()
- zamyka ścieżkę
moveTo(x,y)
- przejście do punktu o podanych współrzędnych
fill()
- wypełnienie ścieżki kolorem zdefiniowanym w fillStyle()
stroke()
- obrys ścieżki kolorem zdefiniowanym w strokeStyle()
lineTo(x,y)
- rysuje prostą do punktu x,y z aktualnego miejsca
arc(x,y,radius,startAngle,endAngle,anticlockwise)
bezierCurveTo(cp1x,cp1y,cp2x,cp2y,x,y)
- rysuje łuk
- krzywa beziera
Paweł Ochota
PROSTE OPERACJE NA OBRAZACH W JAVASCRIPT
Canvas – manipulowanie pikselami
Canvas umożliwia rysowanie obrazów klasy Image() tworzonych dynamicznie bądź też
pobieranych ze znacznika <img>. Jest to potrzebne gdy chcemy manipulować pikselami. Aby
narysować obraz korzystamy z metody drawImage():
ctx.drawImage(image,0,0);
obraz
Y
X
lub innej formy:
ctx.drawImage(image,0,0,width,height);
szerokość
wysokość
Mając już narysowany obraz na kanwie możemy pobrać tablicę pikseli metodą getImageData():
var imgd = ctx.getImageData(0,0,width,height);
X
Y
szerokość
wysokość
Wartości pikseli są umieszczone we właściwości data:
var pix = imgd.data;
Gdy wykonamy jakieś operacje na pikselach to wstawiamy je ponownie metodą putImageData():
ctx.putImageData(imgd, 0, 0);
X
Y
Paweł Ochota
PROSTE OPERACJE NA OBRAZACH W JAVASCRIPT
Przykład: Skala szarości
Najprostszy sposób na uzyskanie zdjęcia w odcieniach szarości jest zsumowanie składowych
RGB piksela i podzieleniu ich przez 3:
Grayscale = (R + G + B)/3
Wiemy już, że metoda getImageData() zwraca nam tablicę pikseli a właściwość data daje
nam dostęp do ich wartości. Możemy wykorzystać pętle for do poruszania się po tej tablicy:
for (var i = 0, n
pix[i] =
pix[i+1]
pix[i+2]
pix[i+3]
}
= pix.length;
wartosc;
= wartosc;
= wartosc;
= wartosc;
i <
//
//
//
//
n; i += 4) {
R
G
B
Alpha
W pętli poruszamy się co 4 indeksy, ponieważ wydzielono to w ten sposób, że każdy indeks
jest inną częścią piksela. Mamy już wystarczająco dużo wiedzy by uzyskać taki efekt:
Paweł Ochota
PROSTE OPERACJE NA OBRAZACH W JAVASCRIPT
Przykład: Skala szarości
Javascript:
<script type="text/javascript">
function grayscale(image) {
image.width = "200";
image.height = "200";
var canvas = document.getElementById('myCanvas');
canvas.width = image.width;
canvas.height = image.height;
var ctx = canvas.getContext('2d');
ctx.drawImage(image,0,0,image.width,image.height);
var imgd = ctx.getImageData(0, 0, image.width, image.height);
var pix = imgd.data;
for (var i = 0, n = pix.length; i < n; i += 4) {
var avg = (pix[i] + pix[i + 1] + pix[i + 2]) / 3;
pix[i] = avg;
pix[i+1] = avg;
pix[i+2] = avg;
}
ctx.putImageData(imgd, 0, 0);
}
</script>
Paweł Ochota
PROSTE OPERACJE NA OBRAZACH W JAVASCRIPT
Przykład: Skala szarości
HTML:
<body>
<img id="lena" src="lena.jpg" onload="grayscale(this);" />
<canvas id="myCanvas">
Twoja przeglądarka nie obsługuje elementu canvas.
</canvas>
</body>
Wynik:
Paweł Ochota
PROSTE OPERACJE NA OBRAZACH W JAVASCRIPT
Przykład: Negatyw
Javascript:
<script type="text/javascript">
function negative(image) {
image.width = "200";
image.height = "200";
var canvas = document.getElementById('myCanvas');
canvas.width = image.width;
canvas.height = image.height;
var ctx = canvas.getContext('2d');
ctx.drawImage(image,0,0,image.width,image.height);
var imgd = ctx.getImageData(0, 0, image.width, image.height);
var pix = imgd.data;
for (var i = 0, n = pix.length; i < n; i += 4) {
pix[i] = 255 - pix[i];
pix[i+1] = 255 - pix[i+1];
pix[i+2] = 255 - pix[i+2];
}
ctx.putImageData(imgd, 0, 0);
}
</script>
Paweł Ochota
PROSTE OPERACJE NA OBRAZACH W JAVASCRIPT
Przykład: Negatyw
HTML:
<body>
<img id="lena" src="lena.jpg" onload="negative(this);" />
<canvas id="myCanvas">
Twoja przeglądarka nie obsługuje elementu canvas.
</canvas>
</body>
Wynik:
Paweł Ochota
PRZEGLĄD FRAMEWORKÓW
JAVASCRIPT
 jQuery
 Prototype
 MooTools
 Dojo
 EXT JS
 Inne
„Framework - (rama projektowa, szkielet) to w programowaniu struktura wspomagająca
tworzenie, rozwój i testowanie powstającej aplikacji. Z reguły na framework składają się
programy wspomagające, biblioteki kodu źródłowego i inne podobne narzędzia.”
źródło: wikipedia.pl
Paweł Ochota
PRZEGLĄD FRAMEWORKÓW JAVASCRIPT
jQuery
„lekka biblioteka programistyczna dla języka JavaScript, ułatwiająca korzystanie
z JavaScript (w tym manipulację drzewem DOM). Kosztem niewielkiego spadku wydajności w
stosunku do profesjonalnie napisanego kodu w niewspomaganym JavaScripcie pozwala
osiągnąć interesujące efekty animacji, dodać dynamiczne zmiany strony, wykonać
zapytania AJAX. Większość pluginów i skryptów opartych o jQuery działa na stronach nie
wymagając zmian w kodzie HTML (np. zamienia klasyczne galerie złożone z miniatur
linkujących do obrazków w dynamiczną galerię). Wszystkie efekty osiągnięte z pomocą jQuery
można osiągnąć również bez jej użycia. Jednak kod okazuje się nieporównywalnie dłuższy i
bardziej skomplikowany.
jQuery pozwala w wygodny i zrozumiały sposób korzystać z następujących funkcjonalności:
• Selektory - umożliwiają wybranie dowolnego podzbioru węzłów modelu DOM
• Atrybuty - jQuery pozwala przetwarzać atrybuty węzłów dokumentu
• Manipulowanie modelem DOM
• Zmiana i przypisywanie stylu do elementów
• Rozbudowana obsługa zdarzeń, możliwość definiowania własnych
• Efekty - animacje
• AJAX - prosty interfejs realizujący asynchroniczne zapytania”
źródło: wikipedia.pl
Paweł Ochota
PRZEGLĄD FRAMEWORKÓW JAVASCRIPT
jQuery - przykład
Javascript:
window.onload = function() {
var btn = document.getElementsByTagName('button')[0];
btn.onclick = klik;
function klik() {
alert('Witaj, świecie!');
}
}
jQuery:
$(document).ready(function() {
$('button').click(function(){
alert('Witaj, świecie!');});
});
HTML:
<body>
<button>Klik!</button>
</body>
Paweł Ochota
PRZEGLĄD FRAMEWORKÓW JAVASCRIPT
Prototype
„Prototype JavaScript Framework – biblioteka programistyczna napisana w języku JavaScript
przez Sama Stephensona. Jest zaimplementowana w jednym pliku najczęściej nazywanym
prototype.js. Prototype jest dystrybuowany samodzielnie, jak i z takimi projektami jak Ruby on
Rails czy script.aculo.us
$()
Funkcja dolara jest używana jako skrót do metody getElementById. By odwołać się do obiektu
DOM w stronie HTML, zwykle używa się konstrukcji:
document.getElementById("id_elementu").style.color = "#ffffff";
Funkcja $() zmniejsza kod do niniejszej postaci:
$("id_elementu").setStyle({color: '#ffffff'});
$F()
Zwraca wartość pola formularza. Na przykład dla elementu text zwróci wartość pola.
$F("id_elementu_formularza")
$$()
Funkcja podwójnego dolara jest silnikiem selektorów CSS. Można używać takich samych
selektorów jakich się używa w arkuszu stylów. Na przykład, jeśli chcemy się odwołać do
znacznika <a> o klasie pulsate, można użyć polecenia:
$$("a.pulsate")
Funkcja zwróci kolekcję elementów.”
źródło: wikipedia.pl
Paweł Ochota
PRZEGLĄD FRAMEWORKÓW JAVASCRIPT
Prototype - przykład
var win = new Window({className: "dialog", width:200, height:100,
zIndex: 100, resizable: true, title: "Sample window",
showEffect:Effect.BlindDown, hideEffect: Effect.SwitchOff,
draggable:true, wiredDrag: true})
win.getContent().innerHTML= "<div style='padding:10px'> Lorem ipsum
dolor sit amet...</div>"
win.setStatusBar("Status bar info");
win.showCenter();
Paweł Ochota
PRZEGLĄD FRAMEWORKÓW JAVASCRIPT
MooTools
„MooTools – biblioteka JavaScript składająca się z modułów. Głównym plikiem, który stanowi
jądro frameworka MooTools, jest plik core.js. Pozostałe biblioteki są opcjonalne.
MooTools składa się z wielu modułów. Modułowa budowa pozwala użytkownikom pobrać tylko
części biblioteki, które zamierzają wykorzystać. Moduły te można podzielić następująco:
Core – zbiór funkcji użytkowych, niezbędnych dla pozostałych modułów,
Class – podstawowa biblioteka do tworzenia klas,
Natives – klasy natywne,
Element – obsługa elementów struktury DOM,
Effects – zaawansowane efekty API do animowania elementów,
Remote – narzędzia do obsługi XMLHttpRequest, ciasteczek i JSON,
Window – funkcje obsługi okna.
źródło: wikipedia.pl
Paweł Ochota
PRZEGLĄD FRAMEWORKÓW JAVASCRIPT
MooTools - przykład
Javascript:
window.onload = klik;
function klik() {
alert('Witaj, świecie!');
}
MooTools:
window.addEvent('domready', init);<br>
function init() {<br>
alert(„Witaj, świecie!");<br>
}
Paweł Ochota
PRZEGLĄD FRAMEWORKÓW JAVASCRIPT
Dojo
„Jedną z bibliotek programistycznych pozwalających na wydajniejsze wykorzystanie języka
JavaScript w tworzeniu aplikacji sieciowych jest Dojo Toolkit. Wyróżnia się ona dużym
naciskiem położonym na funkcje pozwalające na budowę atrakcyjnych interfejsów
użytkownika. Nie oznacza to bynajmniej, że Dojo nie posiada żadnych innych zastosowań.
Biblioteka oferuje też bogaty zestaw narzędzi służących do uzyskiwania dostępu do danych,
ich wizualizacji, a także do obsługi zdarzeń.
Architektura Dojo
Biblioteka Dojo Toolkit składa się z kilku osobnych komponentów. Obok zestawu
podstawowych funkcji, stanowiących trzon Dojo, są nimi również Dijit, DojoX, a także
dodatkowe narzędzia.
Dijit to pakiet widgetów ułatwiających tworzenie interfejsów graficznych. Dzięki niemu
interaktywną stronę internetową można zbudować z gotowych modułów, w razie potrzeby
tworząc własne lub rozwijając istniejące. Z kolei DojoX to kolekcja niewielkich,
wyspecjalizowanych projektów rozwijanych w ramach Dojo.”
źródło: webhosting.pl
Paweł Ochota
PRZEGLĄD FRAMEWORKÓW JAVASCRIPT
Dojo - przykład
<script type="text/javascript">
//The RadioButton widget is contained in the CheckBox file
dojo.require("dijit.form.CheckBox");
dojo.require("dojo.parser");
</script>
<p>
<span>Radio group #1:</span>
<input dojoType="dijit.form.RadioButton" type="radio" name="g1"
id="g1rb1" value="news">
<label for="g1rb1">news</label>
<input dojoType="dijit.form.RadioButton" type="radio" name="g1"
id="g1rb2" value="talk" checked="checked"/>
<label for="g1rb2">talk</label>
<input dojoType="dijit.form.RadioButton" type="radio" name="g1"
id="g1rb3" value="weather" disabled="disabled"/>
<label for="g1rb3">weather</label>
</p>
Paweł Ochota
PRZEGLĄD FRAMEWORKÓW JAVASCRIPT
EXT JS
„Został przygotowany jako narzędzie do tworzenia interfejsów dla wszelakich systemów
internetowych. W mniejszym stopniu przyda się on podczas tworzenia klasycznych stron
internetowych. Jego domeną są właśnie systemy - rozmaite panele administracyjne, CMS-y
oraz aplikacje internetowe. Wykorzystanie w nich Ext JS może okazać się strzałem w
dziesiątkę. Użytkownicy pokochają wygląd dostarczany przez framework, nawiązujący
sposobem obsługi do standardowych aplikacji desktopowych.
Dla webmasterów tworzących programy w modelu MVC jest to też dobry sposób na
oddzielenie warstwy prezentacji od warstwy logiki biznesowej. Ext JS zajmuje się wyłącznie
wizualizacją danych, podczas gdy właściwe działania realizowane są w tle, po stronie serwera.
Ext JS potrafi na bieżąco komunikować się z serwerem, bez przeładowywania całej strony,
wykorzystując do tego celu wbudowaną implementację XML oraz AJAX-a. Jest też niezależny
od platformy systemowej dostępnej na serwerze i od wykorzystywanego języka
programowania.”
źródło: internetmaker.pl
Paweł Ochota
PRZEGLĄD FRAMEWORKÓW JAVASCRIPT
EXT JS - przykład
Możliwości tego frameworka są ogromne, kod tego WebOSa nie zmieścił się na slajdzie ;)
Paweł Ochota
PRZEGLĄD FRAMEWORKÓW JAVASCRIPT
Inne
„Biblioteka script.aculo.us – jest udostępniana na Licencji X11, a bazą dla tej biblioteki jest
Prototype JavaScript Framework, więc często są one spotykane razem. Aculo.us rozszerza
Prototype JS o animacje oraz różne efekty wizualne, czy też o elementy interfejsu użytkownika
na bazie obiektowego modelu dokumentu DOM.
jQuery UI - jest rozszerzeniem biblioteki jQuery o bogaty zestaw komponentów graficznych i
widgetów (np.: pobieranie daty i kolorów, drag&drop, zakładki, paski postępu, masa efektów
graficznych i wiele innych znakomitych elementów), które w prosty sposób możemy
zaimplementować w naszym serwisie
Adobe Spry – framework JS / Ajax od firmy Adobe. Bardzo bogaty, posiadający wiele
elementów, m.in: efekty(animacje, przenikanie, potrząsanie, itd), wsparcie do przetwarzania
XML, JSON, HTML, XML, masa widgetów. Biblioteka polecana szczególnie dla designerów i
programistów XHTML/CSS, gdyż pozwala na szybkie uzyskanie efektu przy minimalnym
kontakcie z JavaScript.
mintAjax – polskie dzieło, ale na światowym poziomie. MintAjax jest rozbudowaną, łatwą w
użyciu i całkowicie darmową biblioteką JavaScript o małych rozmiarach przeznaczoną do
prostego, szybkiego i wygodnego tworzenia dynamicznych stron internetowych. Biblioteka to
m.in: rozbudowana obsługa zapytań AJAX, efekty graficzne, zaokrąglanie narożników,
mechanizm Drag&’Drop, kontrolki do obsługi zakładek, drzewek, dynamicznie sortowanych
tabel oraz wiele więcej. „
źródło: www.javascript-tutorial .pl
Paweł Ochota
KONIEC
Paweł Ochota

Podobne dokumenty