Dziś jest sobota, 10 stycznia 2009 roku (z kalendarza...)

Open Power Forms - pierwsze efekty

Icon

25.11.2005, 19:53

Webmaster

Komentarze (15)

Powrót

Biblioteka Open Power Forms zaczyna wreszcie nabierać kształtów. Dzisiaj solidnie nad nią posiedziałem i stworzyłem działający zalążek wirtualnych formularzy, esencji całego projektu. Potrafi on już dokonywać kontroli poprawności danych, wyświetlać komunikaty błędów oraz automatycznie przywracać treść pola w przypadku złego wypełnienia.

W międzyczasie domontowałem także routery żywcem wzięte z kodu OPB, obsługę ciastek i sprawdzanie danych z GET/POST/COOKIE. No... w zasadzie jest to podstawa i dopiero na tym zrobione są wirtualne formularze, więc w sumie od tego zacząłem, ale co tam. Open Power Forms jest w zasadzie jedną wielką nakładką na inny projekt: Open Power Template, tworząc z jego klasy jeden wielki interfejs pośredniczący między aplikacją WWW, a użytkownikiem. Obsługuje on dosłownie wszystko: kontrolę danych, gromadzenie informacji o internaucie, generowanie kodu HTML, obsługę ciastek i nagłówków HTTP... jednym słowem rodzi się prawdziwy kombajn do obsługi protokołu HTTP :). OPF wymaga także interfejsu językowego z OPT, bowiem nie może pracować bez plików językowych ze względu na to, że generuje komunikaty o poprawności danych.

Przy tej okazji chciałbym poczynić parę uwag odnośnie samego Open Power Template. Zbliżamy się do wersji 1.0.0 (szkoda, że poza moim bratem nikt jakoś nie kwapi się do testowania) i powoli usuwam z kodu różne niedorzeczności. Pisanie Open Power Forms wymusiło kilka zmian w nowowprowadzonym interfejsie ioptI18n oraz komponentach. Teraz nie trzeba w każdej z ich metod oczekiwać, że pierwszym parametrem będzie obiekt klasy optClass. Zamiast tego dodane są do nich metody setOptInstance, które docelowo powinny takowy zapamiętywać w jakimś wewnętrznym polu. Teraz zauważyłem, że ułatwia to i upraszcza sytuację. Ponadto przy komponentach wprowadziłem dodatkowy parametr: name. Nie trzeba już otwierać całego znacznika, aby ustawić tak oczywistą rzecz, jak nazwa pola formularza :). Jeszcze muszę poprawić upierdliwy błędzik w systemie wejścia, a mianowicie usunięcie pliku cache, jeśli podczas jego generowania wystąpi błąd. Wtedy wszystkie te zmiany pójdą do SVN'a.

W przypisach jest link do demonstracji Open Power Forms.

Powrót

Komentarze

Napisał normanos w piątek, 25 listopada 2005 o 23:31

oj juz nie gadaj :) ja OPT uzywam w 4 projektach :) wiec sie testuje. moze nie tak profesjonalnie bo ja sie malo znam ale na tyle ile potrzebuje na tyle mi swietnie dziala :)

OPF - ciekawy pomysl ale znow tony kodu dla zrobienia formularzyka. byc moze przydatne jak ktos musi tego zrobic na prawde sporo.

Napisał NuLL w sobotę, 26 listopada 2005 o 00:22

Ja tez korzystam z OPT - ale w dwoch projektach - widzialem jakies warny ale to usunalem we wlasnym zakresie - sorki ale zapomnialem o tym poinformamowac.

Napisał NuLL w sobotę, 26 listopada 2005 o 00:54

Sorry za dwa komentarze z rzedu, ale wg mnie jesli to co przychodzi z userem ( ip ) jest elementem response'a to jest to jakas tragiczna pomylka. IMHO brak obiektu typu request sie klania. Dla mnie IP i wszystko co przychodzi z userem to element zadania.3

Napisał Slump w sobotę, 26 listopada 2005 o 01:38

A ja z kolei ponazekam :)
Po 1. Bardzo nie podoba mi sie (graficznie) lamanie parametrow w sposob:
Poprzednia
strona

Jest tego wiecej, nie lepiej dac to w 1 linii, moim zdaniem graficznie i estetycznie w niektorych przypadkach bedzie to prezetowalo sie znacznie lepiej niz obecny zapis.
Po 2. To juz moje odczucie ale czy jeskli wartosc parametru jest pusta zastapienie pustego miejsca napisem brak, lub --- czy czyms w ten desen??
To tyle odemnie.
Robota jak zawsze przednia.

Napisał Slump w sobotę, 26 listopada 2005 o 01:42

Reflektuje sie za ptk 1.
Oczywiscie dziala ok, jednak podczas uzywania panelu pocznego historia/zakladki) wystepuje w/w niedogodnosc, czy nie mozna jej wyeliminowac??

Napisał Zyx w sobotę, 26 listopada 2005 o 08:09

Dzięki za komentarze! NuLL -> obiekt "opfRequest" istnieje (w tym jest dokonywane sprawdzanie danych). Jeśli nie pasuje, mogę bez problemu przenieść tam obiekt klasy "opfVisit".

OPF generalnie projektuję dla stron z dużą ilością formularzy (chociażby panele admina), gdzie taka automatyzacja naprawdę się przyda. Mnie np. szlag by trafił, gdybym miał zrobić taki rozbudowany formularz ręcznie (a to się zdarza). Jeśli to nie jest potrzebne, zawsze można dokonywać kontroli bezpośrednio przez klasę opfRequest i nie bawić się:

<?php
  $request -> map('pole', OPF_POST, new opfStandardContainer(
  new opfConstraint(MAP_TYPE, MAP_STRING)
));
?>


Slump -> myśleliśmy nad twoimi komentarzami dość długo, ale za Chiny nie możemy rozgryźć, co masz na myśli pisząc o tym łamaniu parametrów :).

Napisał hwao w sobotę, 26 listopada 2005 o 11:42

chodzi o to ze text sie wyswietla nie w lini tylko jeden wyraz wyzej drugi nizej (chodzi o html i lamanie textu w <td>).

Hmm mnie teraz troche sie wydaje ze nazwa Forms jest troche mylaca poniewaz to "troche" wiecej.

Co do OPT1.0 stable, to z checia potestuje i czekam az sie ukaze.

Napisał Zyx w sobotę, 26 listopada 2005 o 12:10

Rany boskie, slump... ty to masz czasem problemy... tabelka jest za wąska i przeglądarka sama przerzuca część wiersza niżej...

Hwao -> to testuj wersje RC. Przecież to są, jakby nie patrzeć "RELEASE CANDIDATE".

Napisał shw w sobotę, 26 listopada 2005 o 13:27

Zyx - a myslales, zeby zrobic z tego cos na wzor webforms z asp.net?

Napisał Slump w sobotę, 26 listopada 2005 o 16:22

Ja to zyx wiem, sytalem tylko czy opb nie moze na sztywno nazucic przegladarce aby nie lamala :)

Ok kolejne pomysly:

+ Czy przegladarka ma włączone cookies.
+ Detekcja ostatniego pliku cookies.
+ Rendering engine przeglądarki

Napisał eXtreme w sobotę, 26 listopada 2005 o 18:36

Slump:
Detekcji, czy są włączone ciasteczka zrobić się w taki sposób nie da.
Detekcja ostatniego pliku cookies - ? Ostatnio wysłane ciacho? :)

Napisał bela_666 w sobotę, 26 listopada 2005 o 20:15

da się, ustawić ciastko, zobacz czy ciastko istnieje ;)

Napisał eXtreme w niedzielę, 27 listopada 2005 o 07:46

bela_666 -> napisałem, że w taki sposób (czyli pobranie z jakichś danych wysyłanych przez przeglądarkę) się nie da. Sposób z wysyłaniem i sprawdzaniem znam, ale tu trzeba przeładowania strony.

Napisał Zyx w niedzielę, 27 listopada 2005 o 09:56

Nazwa silnika jest czasem podawana przy identyfikatorze przeglądarki, ale na co to by było komu - nie mam pojęcia. Jest sama nazwa i to powinno w zupełności wystarczyć.

Ad. ciastek -> z tym jest właśnie problem, bo jeśli przeglądarka jawnie nie prześle, że ich nie akceptuje, to jest lipa. Jedynym sposobem jest przeładowanie strony.

Napisał LETKI w piątek, 2 grudnia 2005 o 08:42

Ja wolę swój prosty i prymitywny systemik szablonów :) - Dlaczego? Bo to mój i mam z tego satysfakcję :)

Strona 1 z 1 :: 1

Skomentuj

NickInformacja
E-mailTylko do użytku wewnętrznego.
WWWNie zapomnij o http://
LayoutNapisz tu, czy widzisz dzienny czy nocny layout.
WpisFormatowanie wiki
Internauto, pamiętaj! Wolność to nie samowola - dbaj o kulturę wypowiedzi oraz dyskusji w sieci.

Na Zyxist.com panuje swoboda wyrażania opinii oraz krytyki pod dowolnym adresem. Jedyny warunek: musi być ona kulturalna i rzeczowa. Na chamstwo, prostactwo lub jawne obrażanie kogokolwiek nie ma tu miejsca i takie komentarze są bardzo szybko usuwane. Jeśli zamierzasz polemizować z treścią wpisu, wpierw uważnie ją przeczytaj.

© Tomasz "Zyx" Jędrzejewski 2005 - 2009 | Wykonanych zapytań: 2 | Serwer wirtualny zapewnia