User Tools

Site Tools


kodform4:kratkiuvod

Kratki uvod u kodform4 (verzija alfa1 - 24.07.2006.)

Kod form je bibilioteka za procesiranje formi (ne znam tocan prijevod od form ali nadam se da se razumijemo). trenutno radi samo servesko procesiranje. Pod time mislim da generira formu te je nakon submitanja procesira pomocu filtera i vlidatora. Isto tako olaksava pracenje i ispis greski.

Sto se tice zahtjeva trebate imati PHP 5 instaliran. Ja radim s PHP 5.1.4 i na toj verziji radi. Mislim da ne bi smjeli imati problema na bilo kojojo verziji 5.1.x.

Kod form je jednostavna bibilioteka i zahtjeva da ju samo raspakirate (unzip i untar) u neki direktori. Npr.

gunzip kodform4_alfa1.tar.gz
tar -xvf kodform4_alfa1.tar

Primjer codeex1 generira jednostavnu login formu.

require_once 'path_to_kodform4/lib/Kod_Form.php';

Trenutno jedini file koji trebate je Kod_Form.php u lib direktoriju. No to ce se najvjerojatnije promjeniti u buducnosti (file buja).

$form = new Kod_Form("login", 0, "");

Stvaranje forme. Prvi argument je id forme (u HTML-u je namjenjen za id ili name atribut). Drugi je koju ce metodu submitanja koristiti ova forma (0 = post, 1 = get). Treci je koja ce se action pozvati (odgovara action atributu u HTML-u).

$fusername =& $form->addElement(new Kod_Field("username", "Username", Kod_Field::text, null, "Please enter username"));
$fusername->addValidator(new Regex_Validator("'\w*'", "Username can hold only numbers and letters"));
$fusername->addValidator(new Size_Validator(10, 4, "Username must be 4 to 10 letters long."));

Ovaj kod je ovako malo zbunjujuci pa cu napisati istu stvar malo jednostavnije:

$fusername = new Kod_Field("username", "Username", Kod_Field::text, null, "Please enter username");

Eto stvaramo polje za unos korisnickog imena. Ovaj objekt je klase Kod_Field. Ona u svom konstruktoru uzima 5 argumenta. Prvi je id polja. Drugi vidljivo ime polja. Treci tip polja (trenutno moze biti text, password ili hidden). Cetvrti je pocetna (default value) vrijednost ili null ako je nema. I peti je null ako se polje ne mora obavezno unjeti. U suprotnom to je poruka o gresci ako polje nije unjeto. Interno 5 argument generira Required_Validator objekt i dodaje ga ovom polju.

$fusername->addValidator(new Regex_Validator("'\w*'", "Username can hold only numbers and letters"));
$fusername->addValidator(new Size_Validator(10, 4, "Username must be 4 to 10 letters long."));

Ovdje dodajemo dva validatora (ne znam bolji prijevod za ovo). Prvi Regex_Validator je vrlo generalni i mocan (zato jer koristi regular expressios) te zahtjeva da username bude formiran od slova i brojeva. Drugi Size_Validator smo provjerava duzinu upisanog teksta. Konkretno u ovom slucaju tekst ne smije biti veci od 10 i manji od 4 znaka.

$form->addElement($fusername);

Da bi sve to imalo smisla treba polje dodati u formu.

Sve ovo vrijedi i za password polje pa tu necu razglabati. Samo cu napomenuti da je jos moguce dodati filtere koji u biti filtriraju vrijednosti polja prije nego sto validatori krenu u akciju. Vrlo cesti filter je Trim_Filter (trenutno jedini implementiran) a radi iste stvari kao i trim funkcija u PHPu.

$form->addElement(new Kod_Submit("slogin", "Login"));

Eto da bi mogli submitati formu treba nam i jedan submit element (Kod_Submit). Prvi argument je id submita a drugi je vidljivo ime (display name). I sve je lijepo dodano u formu s addElement.

if($form->isSubmited() && $form->isValid()){
	?>
	<div>You are in. ( Your username: <?php print $form->username->getValue();?>, Your password: <?php print $form->password->getValue();?>)</div>
	<div><a href="">Logout</a></div>
	<?php
	exit(0);
}

Provjera da li je forma submitana te da li su svi podati valjani. Ako to je napisi nesto i svrsi :) .

print $form->display();

Ovime se ispisuje forma. Tu treba napomenuti da se koristi defaultni template (predlozak). No moguce joj je kao argument poslati path na vas template no to je vec prica za neki drugi text.

kodform4/kratkiuvod.txt · Last modified: d.m.Y H:i (external edit)