DataTypes

Musisz być zalogowany aby uzyskać dostęp do forum. Możesz się zalogować tutaj

Autor Wiadomość

Marcin Ważny

Postów: 51 od 04/01/2008

Poniedziałek 17 Sierpień 2009 8:42:46 pm

DataTypes

Witam wszystkich !

Mam pytanie odnośnie typów danych, a dokładnie o pole typu checkbox. W konfiguracji tego pola, można ustawić wartość domyślną, aby pole było zaznaczone lub nie. Czy jest możliwość, aby w miarę łatwo, szybko i bezproblemowo przerobić wartość domyślną z checked na value. Mam nadzieję, że wszyscy zrozumieli o co mi chodzi. Chciałbym, aby pole checkbox było polem wielokrotnego wyboru. Czy da się to jakoś szybko i sprawnie zrobić? Próbował ktoś już tworzyć bardziej zaawansowany formularz z polem checkbox jako wielokrotnego wyboru? Jeśli tak proszę o podpowiedzi za które z góry dziękuje.

Pozdrawiam
Marcin

Marcin Ważny

Postów: 51 od 04/01/2008

Piątek 21 Sierpień 2009 8:15:29 pm

Re: DataTypes

Witam

Sam sobie odpowiem i przy okazji inni, może z tego skorzystają, jak będą mieć potrzebę taką jak ja ;). Więc tak ponieważ pole checkbox w ezpublish, może posiadać tylko wartość logiczną, więc, aby nie mieszać wykorzystałem typ danych jakim jest ezselection. W swojej klasie utworzyłem pole ezselection z możliwością wielokrotnego wyboru "select multiple", i nadpisałem jego wyświetlanie, jako checkbox ;), oczywiście nie w szablonie datatypes/ezselection.tpl tylko w szablonie widoku full mojej nowej klasy. Nie chciałem na stałe, nadpisywać pole select, gdyż w przyszłości też może się przydać.
Oto rozwiązanie:

szablon override/templates/full/klasa_zaawansowany_formularz.tpl



...

<p>telefon</p>
{attribute_view_gui attribute=$node.data_map.telefon_kontaktowy}

<p>email</p>
{attribute_view_gui attribute=$node.data_map.email}

<p>{$node.data_map.pytanie.contentclass_attribute.name|wash}</p>

{default attribute_base=ContentObjectAttribute}
{section var=Options loop=$node.data_map.pytanie.class_content.options}
<input type="checkbox"
name="{$attribute_base}_ezselect_selected_array_{$node.data_map.pytanie.id}[]"
value="{$Options.item.id}" />{$Options.item.name|wash( xhtml )}
{/section}
{/default}

...


Dla innych pól zastosowałem standardowe wyświetlanie poprzez attribute_view_gui, natomiast dla atrybutu "pytanie" (ezselection) jak widać ;).


EDIT:
Jeśli pola przerobione z select na checkbox nie są obowiązkowe (wymagane), należy dodać w szablonie:
<input type="hidden" name="{$attribute_base}_ezselect_selected_array_{$node.data_map.forma_slubu.id}[]" value="" />
przed checkbox'ami, ponieważ w przypadku nie zaznaczenia żadnego checkbox'a nie zostanie przeslana zadna informacja o tym polu, przez co zebrane informacje nie zapisza sie nie zostanie wyslany email, ani nawet nie zostanie zwrocona informacja o bledzie.


Pozdrawiam
Marcin


Musisz być zalogowany aby uzyskać dostęp do forum. Możesz się zalogować tutaj