Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

ZF i forme ili ti crud :D

[es] :: PHP :: ZF i forme ili ti crud :D

[ Pregleda: 1140 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Mister_rap
SE at Viacom

Član broj: 8822
Poruke: 2540
*.dynamic.sbb.rs.

Jabber: mister_rap@jabber.com


+21 Profil

icon ZF i forme ili ti crud :D03.06.2009. u 18:07 - pre 193 meseci
Pozdrav,

Naime nemam nikakav znacajan problem, ali gledam da ako se nekad dokopam malo vremena olaksam neke stvari i prepravim strukturu osnove koju koristim.
Enivej ja uglavnom radim na backu i koristim extjs integirsan sa zf-om, ali sam nekad primoran da mi admin ui bude cist html+js+css.

Tu upadam u probleme i cini mi se da gubim dosta vremena na gluposti pa bih voleo da cujem kako vi resavate ovakve ('trivijalne') probleme.
Upoznat sam sa mogucnostima Zend Form ali mi se cini prilicno ne prakticnim za stilizaciju ui-a pa zato ovu komponentu izbegavam, ali bih voleo da me neko demantuje pa da joj se konacno posvetim kako valja... :D

Dakle zanima me na koji nacin vi realizujete sledeci scenario:

Korisnik ide na edit i prikazuje mu se templejt sa 15tak input polja, od toga par njih kombo boxovi sa x stavki, naravno u svakom treba da bude selektovana odredjena kategorija...

Ili, kako gradite tabelu sa paginacionim sistemom. Da li je to foreach petelja ili imate neko js resenje ili sta vec ?!

Nadam se da sam bio koliko toliko jasan pa bih voleo da cujem kakav je vas pristup...
 
Odgovor na temu

Nikola Poša
Backend (PHP) developer
Beograd

Član broj: 173839
Poruke: 1616
*.adsl-a-1.sezampro.yu.



+33 Profil

icon Re: ZF i forme ili ti crud :D03.06.2009. u 21:34 - pre 193 meseci
Ja klasu Zend_Form koristim samo za back-end validaciju, nikako za ispis, jer ne mogu da skapiram one dekoratere, itd. Uvek imam samo klasu (model) koji se izvodi iz Zend_Form, i u konstruktoru definišem elemente od kojih se ta forma sastoji, i za svaki od njih, opciono, po neki filter i validator. A onda imam odvojen templejt, odnosno deo templejta, u kome se nalazi samo (x)HTML kod te forme, kojeg posle integrišem u neki glavni templejt skript. Naravno, imena polja u toj formi odgovaraju onima iz gore pomenutog modela. I onda u kontroleru, sve standardno, dohvatim submit-ovana polja iz forme, predam ih klasi Zend_Form na validaciju, npr. $forma->isValid($_POST), i onda u zavisnosti od rezultata, radim dalje... Dakle, poenta je to da tu klasu koristim samo u svrhe filtriranja i validacije.

A to kad imaš checkbox-ove u formi, to je već "zavrnuto" kad ideš sa Zend_Form (barem meni )... Naime, baš sam skoro u jednom mom projektu, koji inače nije rađen sa ZF-om, ali sam koristio nekoliko klasa iz tog paketa, između ostalog i Zend_Form, trebao da vršim validaciju jedna dva polja u formi, ali samo ako je čekiran jedan checkbox. I onda sam, posle par sati bezuspešnih pokušaja, video da nema vajde da mi taj checkbox bude element forme u mojoj klasi (modelu) koja se izvodi iz Zend_Form, pa sam taj problem rešio tako što sam najpre kreirao jednu pomoćnu f-ju u tom modelu:
Code:

protected function preValidation($data)
{
    if ($data['sms_obavestenja'] == 'on') {
        $this->getElement('mreza')->setRequired(true);
        $this->getElement('broj_mobilnog')->setRequired(true);
    }
}

I onda sam redefinisao onaj glavni metod isValid():
Code:

public function isValid($data)
{
    $this->preValidation($data);
        
    return parent::isValid($data);
}

To $data je u stvari ono $_POST koje šaljem formi na validaciju, i poenta je da sam radio tu pre-validaciju, kako bih video da li je taj checkbox štikliran, i ako jeste, onda sam ta dva polja koja su zavisna od tog checkbox-a "proglasio" za required, kako bi forma vršila validaciju ta dva polja. Jednostavno...

Tako da, što se tiče checkbox-ova, stvarno ne znam šta da ti kažem, ja njih izbegavam da "ugrađujem" u Zend_Form...

A za paginaciju koristim moju klasu NP Pagination, odnosno samo onu glavnu klasu iz tog paketa, za generisanje tih linkova za straničenje, a podatke iz baze dovlačim sa LIMIT-ima, u zavisnosti od onog page parametra iz URL-a. Mada čini mi se da bi ona klasa iz ZF-a za tu namenu, mogla da odradi posao i kad se koristi van celog ZF-a...

[Ovu poruku je menjao Nikola Poša dana 03.06.2009. u 23:55 GMT+1]
 
Odgovor na temu

Nikola Poša
Backend (PHP) developer
Beograd

Član broj: 173839
Poruke: 1616
*.adsl-a-1.sezampro.yu.



+33 Profil

icon Re: ZF i forme ili ti crud :D03.06.2009. u 22:55 - pre 193 meseci
btw Sad tek vidim da si ti u tvom post-u spomenuo combo box, a ja sam to nekako "preveo" u checkbox, tako da ti ova moja priča o chekbox-ovima verovatno ništa ne znači... :S

I naravno, opušteno možeš da ideš sa Zend_Form kada imaš combo box-ove (padajuće liste), njima ćeš obično da dodeliš Zend_Validate_InArray za validaciju, kako bi mogao da ograničiš korisnika na izbor samo onih vrednosti koje se nalaze u tom nizu vrednosti, a naravno, value atributi opcija u padajućoj listi će imati vrednosti upravo elemenata tog niza koji prosleđuješ Zend_Validate_InArray konstruktoru, npr.:
Code:
$foo->addValidator(new Zend_Validate_InArray(array('foo', 'bar', 'foobar')));

A u templejtu:
Code:
<select name = "foo">
   <option value = "foo">Foo</option>
   <option value = "bar">Bar</option>
   <option value = "foobar">Foo-bar</option>
</select>
 
Odgovor na temu

Mister_rap
SE at Viacom

Član broj: 8822
Poruke: 2540
*.dynamic.sbb.rs.

Jabber: mister_rap@jabber.com


+21 Profil

icon Re: ZF i forme ili ti crud :D03.06.2009. u 23:55 - pre 193 meseci
Pazi,

Ovo mi je manje vise sve jasno ali ocito da mi je pitanje bilo nekako previse pocetnicki formulisano...
Vidim ja da ZF Form necu brzo korisiti za nesto ozbiljnije, jer sve to mogu uz manje koda cini mi se sa klasicnim html-om kad moram.
Naravno o benefitima koje imam sa ext js-om i da ne govorim ali vec pomenuh da je nekad visa sila u pitanju :D

Ono sto me zanima pored svih mogucih input polja je koliko je kompleksno napraviti ovakvo nesto..

Code:

    <fieldset>
            <div class="forms">
                                      <div class="row">
                        <label>Status:</label>
                                <div class="inputs">
                                    <span class="input_wrapper blank">
                                        <select name="status">
                                                                                            <option value="1">OK</option>
                                                                                            <option value="0">NO</option>
                                            </select>
                                        </span>
                                </div>
                    </div>
                                                        
                    <div class="row">
                        <label>Name:</label>
                                <div class="inputs">
                                    <span class="input_wrapper">
                                                                               <input class="text" name="name" type="text" />
                                                                         </span>
                                </div>
                    </div>
                                                
                    <div class="row">
                        <div class="buttons">
                            <ul>
                                <li><span class="button send_form_btn"><span><span>ADD</span></span><input name="" type="submit" /></span></li>
                                                                <li><span class="button cancel_btn"><span><span>CANCEL</span></span><input name="" type="reset" /></span></li>
                                                                </ul>

                                                            </div>
                                                        </div>
                                                        <!--[if !IE]>end row<![endif]-->


                                                        </div>
                                                        <!--[if !IE]>end forms<![endif]-->

                                                    </fieldset>


Mislio sam da li imate integraciju sa nekim libom, i naprosto nesto sto ono napises jednom i skoro da se samo "vozi".
Sto se tabela tice da bude sortabilna primi recimo json, bude in place editabilna i tako to....

Nisam gledao tvoju paging klasu ali bih da izbegnem i zendovu i svoju :D I oslonim se na neki grid sistem ili tako nesto... :P
 
Odgovor na temu

Nikola Poša
Backend (PHP) developer
Beograd

Član broj: 173839
Poruke: 1616
*.adsl-a-1.sezampro.yu.



+33 Profil

icon Re: ZF i forme ili ti crud :D04.06.2009. u 10:31 - pre 193 meseci
Citat:
Mister_rap: Ono sto me zanima pored svih mogucih input polja je koliko je kompleksno napraviti ovakvo nesto..

E pa sad, ako misliš koliko je komplikovano napraviti formu takvog izgleda, koristeći one Zend_Form dekoratere, ja mislim da je jako komplikovano... A napraviti klasu, koja će da čuva, filtrira i vrši validaciju tih polja iz forme, ili još preciznije, klasu (model) koji će da mapp-ira tu formu, to uopšte nije problem...
Kao što sam već i rekao, ja izgled forme kreiram sam, npr. tako kao što si ti napisao, a onda polja iz forme samo "spakujem" u tu neku klasu koja se izvodi iz Zend_Form, kako bih lakše radio validaciju...

Citat:
Mister_rap:
Sto se tabela tice da bude sortabilna primi recimo json, bude in place editabilna i tako to....

Pa ja taj posao obično radim "peške", koristim samo onu Zend-ovu klasu Zend_Json_Encoder/Decoder, da lakše prenosim tu AJAX komunikaciju... A i naravno, ništa bez jQuery-ja. I posle uglavnom, ide samo copy-paste, za neki sledeći projekat, uz naravno odgovarajuće izmene...

A i moraću malo da pogledam taj ext JS, čuo sam da je mnogo dobra stvar... Kako tačno radiš s njim, odnosno, kako si ga integrisao sa ZF-om?

Citat:
Mister_rap: Nisam gledao tvoju paging klasu ali bih da izbegnem i zendovu i svoju I oslonim se na neki grid sistem ili tako nesto... :P

Znam šta hoćeš da kažeš, i ja sam u potrazi za takvim nečim, jer vidim da više "nema 'leba" od toga da sam izmišljam neke stvari, kad sigurno ima neko bolje i profesionalnije rešenje...

Eto, valjda će još neko da se javi na ovoj temi, da čujemo i mišljenja, savete drugih ljudi...

 
Odgovor na temu

Mister_rap
SE at Viacom

Član broj: 8822
Poruke: 2540
*.dynamic.sbb.rs.

Jabber: mister_rap@jabber.com


+21 Profil

icon Re: ZF i forme ili ti crud :D04.06.2009. u 13:39 - pre 193 meseci
Da, ali recimo za html based UI onda treba baciti pogled na nesto tipa http://www.trirand.com/blog/ samo ne znam kolika je filozofija promeniti izgled njegovih tabela i sl...

Kod ExtJs-a je zakon sto postoje komponente za skoro sve i idealan je za backend i ako ne izlazis iz njegovih okovira prilicno jednostavan za integraciju.
Napises neke klase koje koristis, RPC i napises dosta ExtJs koda
Narvno vodis racuna o kodu i rejuzabilitiju...

I onda samo vozis, i modifikujes ponekad, filozofija je dok sve to kreiras, ali na kraju imas profesionalno resenje i nemas cimanja sa html-om jedino ako klijent ima specificne zahteve

Pogeldaj malo primere bice ti jasnije o cemu pricam :P
 
Odgovor na temu

Nikola Poša
Backend (PHP) developer
Beograd

Član broj: 173839
Poruke: 1616
*.adsl-a-1.sezampro.yu.



+33 Profil

icon Re: ZF i forme ili ti crud :D04.06.2009. u 16:53 - pre 193 meseci
Da, ni taj plugin nije loš. Postoji baš dosta tih moćnih rešenja za realizaciju nekog UI-a putem JS-a... A za promenu izgleda valjda treba "čeprkati" po onim CSS fajlovima u svakoj od tema, ne znam...

Ali najpre ja da proučim taj ExtJs...
 
Odgovor na temu

misk0
.: Lugano :. _.: CH :.

SuperModerator
Član broj: 634
Poruke: 2824
*.adsl.ticino.com.

ICQ: 46802502


+49 Profil

icon Re: ZF i forme ili ti crud :D04.06.2009. u 22:02 - pre 193 meseci
Radim jednu RIA aplikaciju i poceo sam koristiti ExtJS koji me svakim danom sve vishe i vishe odusevljava. Sto se tiche kontrola na formi, njihove validacije i slicno - fantasticno funkcionishe. Postoji velik broj vec ugradjenih validacija (e-mail, url, slova, brojevi) a mozes i napisati svoje. Sve preporuke.

sorry na offtopicu.

:: Nemoj se svadjati sa budalom, ljudi cesto nece primjetiti razliku ::
 
Odgovor na temu

[es] :: PHP :: ZF i forme ili ti crud :D

[ Pregleda: 1140 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.