J2ME, Android. Aplikacje dla urządzeń mobilnych.
ASP.NET  DOKUMENTACJA  FLASH  J2EE SERVLET JSP  J2ME MOBILE  JAVASCRIPT  OPROGRAMOWANIE  PHP  SERWER  SQL  TRENDY  WYSZUKIWARKI  XML 
Paris tourist attractions Tour Montparnasse

AOLserver (2)

Bardzo ciekawą możliwością AOLservera jest pisanie modułów pisanych w TCL. Pozwala to na szybkie tworzenie gotowych rozwiązań lub obsługę pewnych typów plików.

Moduły TCL są to pliki o rozszerzeniu .tcl, które znajdują się w katalogu modules/tcl. Moduły mogą być pojedynczymi plikami lub całymi katalogami (w przypadku większych modułów jest to wygodniejsza forma).

Moduły w TCLu

 
 spis treści:
Moduły w TCLu1. Moduły w TCLu
2. Przydatne moduły
3. Rozbudowane przykłady
4. Podsumowanie
Moduły jako katalogi trzeba wprowadzić do konfiguracji:
 ns_section "ns/server/$server/modules" 
ns_param nazwakatalogu Tcl
Pliki w katalogach czytane są w kolejności alfabetycznej, poza plikiem init.tcl, który czytany jest na początku. W pliku tym zazwyczaj czyta się konfigurację oraz inicjuje semafory i zdarzenia.

Prostym przykładem modułu jest moduł do tworzenia statystyk odwiedzin w oparciu o przedrostek.

Listing 7. Proste statystyki
 proc tclstat_proc {} { 
set id [lindex [ns_conn urlv] 1]
set url /[join [lrange [ns_conn urlv] 2 end] /]
# tutaj trzeba dodac zliczanie, np przez baze danych
ns_returnredirect $url
}

ns_register_proc GET /tclstat tclstat_proc
Ten kod sprawi, iż odwołania do www.domena.pl/tclstat/123/gfx/logo.jpg przekierowane zostanie na www.domena.pl/gfx/logo.jpg po uprzednim dodaniu wpisu do listy odwiedzin o identyfikatorze 123.

Innym ciekawym zastosowaniem modułów w TCL jest prosty moduł do obsługi katalogów domowych:

Listing 8. Obsługa katalogów użytkowników
 proc homedirs {} { 
ser urlv [ns_conn urlv]
set user [lindex $urlv 0]
if {[catch {
# zamiana ~user na /home/user
set homedir [file native $user]
}]} {
# jesli wystapil blad, uzytkownik nie istnieje
ns_returnnotfound
return
}
set url [join [lrange $urlv 1 end] /]
set file [file join $homedir public_html $url]
if {[file exists $file]} {
file stat $file st
if {[$st(type)=="directory"]} {
if {[file exists $file/index.html]} {
# index.html - plik statyczny
ns_returnfile 200 text/html $file/index.html
} elseif {[file exists $file/index.adp]} {
# index.adp - plik dynamiczny
ns_return 200 text/html [ns_adp_parse -file $file/index.adp]
} else {
# brak index.html / index.adp
ns_returnforbidden
}
} else {
if {[string match *.adp $file]} {
# obsluga stron dynamicznych
ns_return 200 text/html [ns_adp_parse -file $file]
} else {
# obsluga plikow
ns_returnfile 200 [ns_guesstype $file] $file
}
}
}
}

ns_register_proc GET /~* homedirs
ns_register_proc POST /~* homedirs
Jest to prosty i niekompletny przykład, ale pokazuje ciekawe zastosowania ns_register_proc. Ten moduł akurat wygodniej zaimplementować w C korzystając z funkcji Ns_SetUrlToFile(). Funkcję tą można również wykorzystać w module do vhostingu. Załączony na CD przykład pokazuje jak można w mniej niż 100 linijek napisać kompletny moduł do vhostingu.
strona 1 2 3 4 następna      Autor: Wojciech Kocjan
Zobacz również:
PHP i Oracle   Kurs Apache (6)   Instalacja PHP 3.x dla Apache 1.3.x + obsługa MySql (Linux)   Zlot polskich programistów PHP   Co to jest Moblog, MySpace.com?   PHP Solutions (11) 5/2005. PHP w zastosowaniach Enterprise   Największe błędy programistyczne w PHP (1)  

Masz problem ze swoją komórką? Zapytaj, przeczytaj opinie o telefonie:
ViewSonic V35   Research In Motion BlackBerry Curve 8300   LG Cookie Music   Samsung SGH-A400   Samsung C3060R   Siemens C61   O2 XDA Star   Sagem MC 939 WAP   Motorola C113a   Vodafone 360 H1  



(C) 2000-2012 webdeveloper.pl  |  Napisz do nas