![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 697 Pomógł: 47 Dołączył: 19.12.2003 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
Chciałbym przedstawić moją najnowszą klasę (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Parser szablonów... Przyznaję wzorowałem się głównie na chameleonie(chodzi o składnie), phpbb jest totalnie nieprzyjazny a Smarty totalnie zamotane (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Klasa obsługuje instrukcje warunkowe, sekce, funkcje, zmienne tablicowe oraz modyfikatory. Oczywiście sekcje i ify można dowolnie wiele razy zagnieżdżać. Wielowymiarowość tablic również działa... Wszystko działa podobnie jak u Bastiona. Są jednak małe wyjatki, funkcja setvar ma inna skadnie @setvar(nazwa zmiennej, wartosc) Wszelkie zmienne umieszczamy w blokach {zmienna} jednak jeśli mamy doczynienia z funkcjami aby uniknąć zagnieżdżania nawiasów klamrowych należy użyć znaku dolara... Kod Normalnie blok zapiszemy {blok} Ale gdy mamy np. instrukcje warunkową {@if($blok=='costam')} asf ss as {@fi} Dodałem takze kilka ulepszeń... Możemy deklarować zmienne tablicowe. np. Kod {@setvar('tablica',Array('pierwszy','drugi','bla' => 'trzeci'))} Dodałem również modyfikatory do funkcji setvar(i tylko do niej!) tak wiec możemy użyć zapisu Kod {@setvar('owoc','jablko')} {@setvar('owoc_hash',$owoc|md5)} lub po prostu Kod {@setvar('owoc_hash','jablko'|md5)} Umożliwiłem takze wielokrotne modyfikowanie np.. Kod {napis|strtolower|ucfirst|md5} Co spowoduje zamiane liter w zmiennej 'napis' na małe, następnie pierwsza litera zostanie zmieniona na wielką, na końcu całość zostanie zhashowana za pomoca md5 DOWNLOAD (wszystkie wersje zawierają przykłady) Moje projekty (EDIT: to bedzie dzialalo) Notka dla FiDa (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) czy mógłbyś przeprowadzić mini testy szybkości? Kompletnie się na tym nie znam (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Jest to 1 RC wersja ;] wszelkie pomysły mile widziane.. Parser nie obsluguje jeszcze zmiennych globalnych(kombinuje jak to tam dokleić (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) ) oraz funkcji @include() - ale ją dopisze jak wstane (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Teraz czas na sen ';) Ten post edytował SHiP 25.11.2006, 21:06:07 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 697 Pomógł: 47 Dołączył: 19.12.2003 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
Ok nowa wersja gotowa... DOWNLOAD
Dodałem funkcję @include oraz @cycle co do @cycle skladnia jest prosta Kod {@cycle('nazwa','pierwszyparam',drugiparam','trzeciparam','n param')} Wywolujemy po przez {@cycle('nazwa')} Po przez użycie nazw moge operować kilkoma cyclami na raz (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) ad 4. Poprawione (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) teraz powinny wszystkie tablice śmigać... Dodałem również możliwość pracy na tablicy w sekcji bez podawania indexu tj. Kod {@section('tablica')} Kolejna wartość: {tablica} {/section} Wszystko jest w przykładzie demo06.php Obsluga include być może zostanie zmieniona, musze jedynie napisać 2 wersje i sprawdzic która jest szybsza (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Parser jeszcze nie sprawdza czy plik został utworzony wiec za kazdym razem parsuje szablon od nowa ;] - jutro to poprawie... ps. nie polecam usuwać sobie kodu a później pisać go jeszcze raz (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) masakra |
|
|
![]() ![]() |
![]() |
Aktualny czas: 6.10.2025 - 19:41 |