Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [ZendFramework] zend_form
larson7221
post
Post #1





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 3.04.2008

Ostrzeżenie: (0%)
-----


Witam jestem początkującym w zend framework i jestem ciekawy jak można w tym frameworku zrobić coś takiego
jak jest w panelach administracyjnych czyli np przy wyświetlaniu newsów
[checkbox] | np tytuł | opcje
[checkbox] | np tytuł | opcje
[checkbox] | np tytuł | opcje
<input type="submit" value="usuń zaznaczone" >

dotychczas programując w PHP robiłem to bardzo prosto
jakaś tam pętla
  1. while($r=mysql_fetch_array($query))
  2. {
  3. echo '<input type="checkbox" name="usun[]" value="'.$r['id'].'">';
  4. // tutaj jakieś nazwy itp
  5. }

no wiecie w każdym razie o co mi chodzi . W zendzie formularze robi się za pomocą
zend form można sobie zrobić tam klasę popuzupełniąć to metodami i wyświetlić do widoku
A co z formularzami tego typu jak ja podałem ? czyli generowanymi z bazy danych
mam to zrobić w widoku czy jest jakiś ładniejszy sposób na to ?

jeśli ktoś by był tak miły i miał to w swoich projektach proszę o przykładowe rozwiązanie ja już sobię oblukam jak to jest zrobione pozdrawiam ;D


ps sorki za taki chaos w moim pytaniu

Ten post edytował larson7221 4.03.2012, 23:01:32
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
irmidjusz
post
Post #2





Grupa: Zarejestrowani
Postów: 279
Pomógł: 60
Dołączył: 25.02.2012

Ostrzeżenie: (0%)
-----


Generalnie zendowe formularze mają to do siebie, że czasem są upierdliwe do stylowania wyglądu. Ale wszystko się da zrobić (IMG:style_emoticons/default/biggrin.gif)

1. W najprostszych przypadkach, można przypisać odpowiednim elementom formularza atrybuty ID oraz CLASS i w arkuszu CSS kombinować jak elementy poustawiać, aby wyglądały jak chcemy.

2. Jak powyższe to za mało, to możesz zmienić ustawienia dekoratorów elementów formularza oraz dekoratorów samego formularza. Czasem sama zmiana kolejności użytych dekoratorów pozwala osiągnąć zamierzony efekt. Tym sposobem wyrenderowany formularz nie zawiera domyślnych tagów <dd>, <dl> itd., tylko powiedzmy <ul>, <li>, <div> i tak dalej - co sobie sam ustalisz, z odpowiednimi nazwami klas itd.

3. Największą kontrolę w określaniu wyglądu formularza masz wówczas, gdy do jego renderowania użyjesz dekoratora viewScript, bo to polega na tym, że tworzysz dla takiego formularza osobny plik widoku (.phtml) i w nim konstruujesz cały HTML ręcznie. W takim widoku dostępne są wszystkie dodane do formularza elementy i atrybuty samego formularza oraz view helpery - jest to standardowy szablon przetwarzany przez Zend_View.

Można to zrobić np. tak:
w metodzie init() formularza (albo konstruktorze, czy po prostu na obiekcie forma, bo metoda jest pubiczna) wywołujesz:

  1. //tu przykład wewnątrz init() formularza
  2. public function init() {
  3. $this->setDecorators(array(
  4. array('ViewScript', array('viewScript' => 'widok_formularza.phtml'))
  5. ));
  6. }


Powyższy kod zastępuje domyślne dekoratory formularza jednym, który używa do wyrenderowania formularza szablonu widok_formularza.phtml.

Ten szablon musi znajdować się w ścieżce, w której znajdzie go Zend_View; możesz też ustawić taką ścieżkę do własnego folderu, w którym trzymasz ten plik, wywołując metodę addScriptPath() obiektu Zend_View zwracanego przez Zend_Form::getView():

  1. //dalej przykład w metodzie init()
  2. $this->getView()->addScriptPath('tutaj/sciezka/do/folderu/z/plikiem/szablonu);


I teraz zostaje tylko utworzenie szablonu widok_formularza.phtml. Przykłady jak to robić:

http://framework.zend.com/manual/en/zend.f...tors.viewScript
http://www.karolnowicki.pl/zend-framework/...w-zend_form-se/

po więcej szukaj w google: zend_form viewScript

Przydatne materiały o dekoratorach formularzy są w manualu zenda i np. tutaj:
http://devzone.zend.com/1240/decorators-with-zend_form/

Go to the top of the page
+Quote Post

Posty w temacie


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: 28.12.2025 - 20:09