Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [OO] Formularze a obiekty
scanner
post
Post #1





Grupa: Zarząd
Postów: 3 503
Pomógł: 28
Dołączył: 17.10.2002
Skąd: Wrocław




Dziaiaj podczas dyskusji z PMadejem wynikł temat obiektowej obsługi formularzy. Zaświtał mi w głowie taki schemacik, jaki podaję niżej. Oczywiscie nie gwarantuję, ze zadziała - ale myślę, że wystarczająco obrazuje mój tok myśłenia. Co sądzicie do tagiego podejścia do tematu walidacji dancy hz formularzy?

BTW: w kodzie wielu rzeczy nie ma, ale nie w tym sęk...
[php:1:5d9c559937]<?php
class Form
{
var $arrFormElements = NULL;
function Form()
{
$this->FormElements = array();
}

function CreateField( $strName )
{
$this->arrFormElements[$strFieldName] = new FormField();
}
}
class FormField
{
var $strName = '';
var $strType = '';
var $mixData = '';
var $blnRequired = false;
var $blnValid = false;
var $blnPattern = NULL;
var $mixPatternName = '';
var $arrErrors = NULL;

function FormField()
{
$this->arrErrors = array();
}

function Create()
{
$smarty->display( 'form_elements/'.$this->strFieldType.'.tpl' );
/**
* Zakładamy, ze mamy teplatesy typu: textarea, input, button itp.
*/
}

function ValidatePattern( )
{
if( $this->blnRequired )
{
$this->blnValid = !is_empty( $this->mixData );
if( !$this->blnValid )
{
$this->arrErrors[] = 'Must be filled';
}
}
if( !is_null( $this->$blnPattern ) )
{
$this->blnValid = preg_match($this->$blnPattern, $this->$blnData);
if( !$this->blnValid )
{
$this->arrErrors[] = 'Must be corrected '.$this->strPatternName.' value!';
}

}
}
}

/**
* Example of use
*/
$Form = new Form();
$Form->CreateField( 'pkwiu', true );
$Form->arrFormElements['pkwiu']->strType = 'input_text';
$Form->arrFormElements['pkwiu']->strData = $_POST['pkwiu'];
$Form->arrFormElements['pkwiu']->strPattern = '([0-9]{2}.[0-9]{1,2}.[0-9]{1,2}-[0-9]{1,2}.[0-9]{1,2})';
$Form->arrFormElements['pkwiu']->strPatternName = 'PKWiU';

$Form->arrFormElements['pkwiu']->ValidatePattern();
if( !$Form->arrFormElements['pkwiu']->blnValid )
{
$Form->arrFormElements['pkwiu']->Create();
foreach( $Form->arrFormElements['pkwiu']->arrErrors as $strError )
{
echo '<br />'.$strError;
}
}
?>
[/php:1:5d9c559937]
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
DeyV
post
Post #2





Grupa: Zarząd
Postów: 2 277
Pomógł: 6
Dołączył: 27.12.2002
Skąd: Wołów/Wrocław




Sądzę, że to bardzo dobry pomysł.
Już jakiś czas temu zastanawaiłem się nad takim systemem wykorzystującym system szablonów, jednak 'nadmiar wolnego czasu' zmusił mnie do pozostania przy tym co mam teraz, czyli formularze w oop, ale nie współpracujące z smarty.

Jednak ostatnio bardzo ucieszyła mnie informacja, że system z którego korzystam wciąż jest rozwijany.
Co więcej - pojawiła się w nim, może nie pełna, ale jednak, możliwość łączenia formularzy przygotowanych przez niego właśnnie z systemami teplates. Co prawda nie wiem jeszcze jak to się sprawdza w praktyce - wiem jednak, że sam system zaoszczędził mi bardzo wiele pracy.

http://pof.sourceforge.net/
Zawiera również kilka ciekawych pomysłów, z których warto by chyba było skorzytać przy rozwoju tego projektu.
Go to the top of the page
+Quote Post

Posty w temacie
- scanner   [OO] Formularze a obiekty   5.04.2004, 22:28:19
- - halfik   hmmm... interesujące, sam nigdy się nie zastanawia...   5.04.2004, 23:10:50
- - scanner   W wolnych chwilach sponbuję rozbudowac to w coś wi...   5.04.2004, 23:17:19
- - PMadej   CytatW wolnych chwilach sponbuję rozbudowac to w c...   6.04.2004, 00:30:57
- - DeyV   Sądzę, że to bardzo dobry pomysł. Już jakiś czas ...   6.04.2004, 00:41:15
- - hawk   Hmm, ogólnie to co pokazuje Scanner i to co jest p...   6.04.2004, 08:37:49
- - hawk   Jeszcze dodam że walidacja powinna być zrobiona zg...   6.04.2004, 08:41:21
- - scanner   To co ja proponuję to tylko szkic, który powstał w...   6.04.2004, 09:18:59
- - halfik   Cytat2. Tworzymy tablicę z nazw pół i ich wartości...   6.04.2004, 10:36:31
- - DeyV   przeszukiwanie szablony byłoby, IMHO, bardzo złym ...   6.04.2004, 11:58:57
- - Ace   a nie latwiej jest... klasa generujaca formularz z...   6.04.2004, 13:23:21
- - halfik   heh, wygląda na to, ze należałoby jednak wszsytko ...   6.04.2004, 17:35:23
- - scanner   Musże przemyśleć kwestie czy stawiac na uniwersaln...   6.04.2004, 18:16:42
- - DeyV   Tu pojawi się problem potrzeb. Bo o ile np. takie...   6.04.2004, 18:41:26
- - halfik   hmm... chyba nie ma wyjścia i trzeba dobrać się np...   7.04.2004, 06:16:29
- - PMadej   no i przyszla kolej na moje swiateczne wypociny i ...   13.04.2004, 17:38:10
- - PMadej   problemy o ktorych wspomnialem na koncu poprzednie...   14.04.2004, 15:12:05
- - hawk   Mi się generalnie nie podoba opcja z generowaniem ...   14.04.2004, 16:51:31
- - Seth   Tez nie jestem zachwycony tego typu klasami gdyz j...   14.04.2004, 17:01:20
- - hawk   No czyli wypisz wymaluj WACT. Wada jest taka, że c...   14.04.2004, 18:52:51
- - marcin96   Czyli - jeśli dobrze rozumuję - chodzi o coś takie...   14.04.2004, 19:06:38
- - halfik   heh... faktycznie, to trzeba by wkręcić w jakiś sy...   14.04.2004, 19:07:38
- - marcin96   Cytatheh... faktycznie, to trzeba by wkręcić w jak...   14.04.2004, 19:18:12
- - hawk   Cytat2. Parsowanie pliku ustawień wizualnych ...   14.04.2004, 21:43:20
- - PMadej   ja tylko wyszczegolnie watek ktory zaniknal w toku...   14.04.2004, 22:06:22
- - hawk   Ten wątek wcale nie zaniknął. Byłoby to coś w styl...   15.04.2004, 08:52:16
- - PMadej   CytatDla przykładu: 1) jest formularz, pytanie o l...   15.04.2004, 20:06:41
- - hawk   Hmm, z drugiej strony ja zawsze myślałem że takie ...   15.04.2004, 22:15:14


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 5.10.2025 - 18:59