Post
#1
|
|
|
Grupa: Moderatorzy Postów: 36 565 Pomógł: 6315 Dołączył: 27.12.2004 |
Hejka,
czy istnieje w ZendForm opcja preview lub readonly? Chodzi mi konkretnie o taką sytuację: Mamy formularz. Wszystkie pola są do edycji. No i super fajnie. Ale wchodzi do edycji użytkownik, który ma prawdo do edycji tylko wybranych pól. Czyli ustawiam mu dla pól, których nie może edytować, atrybut preview/readonly i tych pól już nie może ruszyc. W formularzu będą one widoczne tylko jako etykiety z tekstem wartosci tego pola, a po stronie serwera pola te nie będą przechodziły walidacji ani nie będą zbierać wartości z post. idzie coś takiego zrobic w ZendForm czy trzeba kombinować? |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 879 Pomógł: 189 Dołączył: 14.06.2006 Skąd: Bytom Ostrzeżenie: (0%)
|
W dokumentacji zostało o tym napisane, jak nadawać atrybuty (IMG:style_emoticons/default/winksmiley.jpg)
Małe przeszukanie internetu i wiem jak zabezpieczyć takie pola. Metoda setIgnore na danym elemencie. Oczywiście oświadczam, że nie znam ZF, przyjdzie batman to odpowie lepiej. |
|
|
|
Post
#3
|
|
|
Grupa: Moderatorzy Postów: 36 565 Pomógł: 6315 Dołączył: 27.12.2004 |
Cytat W dokumentacji zostało o tym napisane, jak nadawać atrybuty O jakich atrybutach mówisz? To jak ustawiac atrybuty to ja wiem, a jesli ci chodzilo a htmlowy readonly to naprawde nie o to mi chodzilo.Cytat Metoda setIgnore na danym elemencie. Widziałem tę metodę. Ale ona powoduje jedynie ze element jest ignorowany ale nadal jest wyswietlany jak był. |
|
|
|
Post
#4
|
|
|
Grupa: Zarejestrowani Postów: 2 885 Pomógł: 463 Dołączył: 3.10.2009 Skąd: Wrocław Ostrzeżenie: (0%)
|
Aby wyłączyć z walidacji wybrane pola można użyć setRequired(false); tutaj przykład, natomiast, aby ukryć (właściwie dosłownie nie wywalisz z formularza pól) można zmienić atrybut klasy css, np. $element->setAttrib('class','hidden'); (+ w cssie określenie pseudoklasy css hidden). Nic innego mi nie przychodzi do głowy, jednak te dwa zabiegi powinny razem dać zamierzony efekt. Ach, metodą analogiczną dla addElement jest removeElement <-- poszukaj, bo nie stosowałem jeszcze tego (IMG:style_emoticons/default/smile.gif)
|
|
|
|
Post
#5
|
|
|
Grupa: Moderatorzy Postów: 36 565 Pomógł: 6315 Dołączył: 27.12.2004 |
setRequred() zarządza wymagalnością pola. A są jeszcze inne walidatory
Podsumowując bo widzę za idiote mnie biorą (IMG:style_emoticons/default/winksmiley.jpg) : wiem jak ustawic lub nie ustawic walidator wiem jak ustawic dowolny atrybut html dla elementu wiem jak dodac element wiem jak usunac element nie chce ustawiac atrybutum, który schowa mi element, bo ja chce ten element widziec, ale jako tekst Pytam sie, czy jest magiczny guzik, ktory utawi mi formularz w tryb preview. Jak nie ma, to bede zmuszony połączyc rozne rzeczy by to osiągnac. |
|
|
|
Post
#6
|
|
|
Grupa: Zarejestrowani Postów: 879 Pomógł: 189 Dołączył: 14.06.2006 Skąd: Bytom Ostrzeżenie: (0%)
|
@nospor wybacz, ale najzwyczajniej w świecie nie zrozumiałem Twojego zamysłu. Nie biorę Ciebie za idiotę, chciałem pomóc.
Teraz już chyba rozumiem i pozostaje mi napisać, że nie ma nic takiego w zendzie. Da się zrobić i nie trzeba kombinować. Chcesz coś takiego lub takiego? Linki są poprawne, ich serwer miał problemy (zawsze jest cache google) teraz wydaje się działać już normalnie. Ten post edytował destroyerr 23.02.2010, 15:57:38 |
|
|
|
Post
#7
|
|
|
Grupa: Zarejestrowani Postów: 2 885 Pomógł: 463 Dołączył: 3.10.2009 Skąd: Wrocław Ostrzeżenie: (0%)
|
Według mojej najlepszej wiedzy - nie ma takiego "magicznego guzika".
|
|
|
|
Post
#8
|
|
|
Grupa: Moderatorzy Postów: 36 565 Pomógł: 6315 Dołączył: 27.12.2004 |
@destroyer
pierwszy link raczy mnie komunikatem Cytat This ZF Tool is Temporarily Down for Maintenance Przy idiocie dałem przymruzenie oka, by bylo wiadomo, ze mowie to na pół serio i się nie gniewam (IMG:style_emoticons/default/smile.gif) Jak poprawisz linka to wieczorem przejrzę obydwa @darko dopytuję sie tak dlatego, ze swego czasu (jeszcze w php4) napisalem klase formularza i tam byl "magicnzy guzik". Nie bylo to skomplikowane do napisania i sie zastanawialem czy tez potezny ZF tez tak ma (IMG:style_emoticons/default/winksmiley.jpg) |
|
|
|
Post
#9
|
|
|
Grupa: Zarejestrowani Postów: 52 Pomógł: 10 Dołączył: 6.10.2008 Skąd: Lublin Ostrzeżenie: (0%)
|
a może wystarczy ci usunięcie dekoratorów "viewHelper" i i "htmlTag" a wartośc pola wrzucić w "description" ?
|
|
|
|
Post
#10
|
|
|
Grupa: Moderatorzy Postów: 36 565 Pomógł: 6315 Dołączył: 27.12.2004 |
nie, gdyż wówczas wyłozy sie na walidatorach. Trzeba jeszcze wyłączyc walidatory (IMG:style_emoticons/default/winksmiley.jpg)
|
|
|
|
Post
#11
|
|
|
Grupa: Zarejestrowani Postów: 2 885 Pomógł: 463 Dołączył: 3.10.2009 Skąd: Wrocław Ostrzeżenie: (0%)
|
Też kiedyś napisałem podobną klasę i formularz w łatwy sposób spełniał rolę podglądu dla np. artykułów. Niestety, jak bawię się ZF już trzeci miesiąc, tak jeszcze nie znalazłem "magicznego guzika" spełniającego podobną funkcję. No, ale zawsze można sobie taki "guzik" samemu napisać rozszerzając klasę Zend_Form.
|
|
|
|
Post
#12
|
|
|
Grupa: Zarejestrowani Postów: 313 Pomógł: 24 Dołączył: 9.08.2008 Skąd: Kielce Ostrzeżenie: (0%)
|
w klasie dziedziczącej po Zend_Form robisz coś takiego
chyba bardziej 'automatycznie' się nie da oczywiście pamiętaj aby do funkcji zapisywania danych dostęp mieli tylko uprawnieni użytkownicy. Ten post edytował pgrzelka 28.02.2010, 02:14:33 |
|
|
|
Post
#13
|
|
|
Grupa: Zarejestrowani Postów: 879 Pomógł: 189 Dołączył: 14.06.2006 Skąd: Bytom Ostrzeżenie: (0%)
|
Problem jest taki, ze Zend_Form_Element nie ma funkcji setDisabled. Jesli miales na mysli ustawienie atrybutu, to nospor juz pisal, ze wie jak to zrobic i ze nie rozwiazuje to jego problemu.
|
|
|
|
Post
#14
|
|
|
Grupa: Zarejestrowani Postów: 2 885 Pomógł: 463 Dołączył: 3.10.2009 Skąd: Wrocław Ostrzeżenie: (0%)
|
Tak mi przyszło do głowy, że możesz przekazać formularz do widoku i tam możesz sobie w dowolny sposób decydować, które elementy i jak wyświetlić, w zależności od potrzeb.
|
|
|
|
Post
#15
|
|
|
Grupa: Moderatorzy Postów: 36 565 Pomógł: 6315 Dołączył: 27.12.2004 |
@darko to była moja pierwsza mysl jaka przyszła mi do głowy, zanim jeszcze założyłem temat (IMG:style_emoticons/default/winksmiley.jpg)
Pewnie na niej się skonczy. |
|
|
|
Post
#16
|
|
|
Grupa: Moderatorzy Postów: 2 921 Pomógł: 269 Dołączył: 11.08.2005 Skąd: 127.0.0.1 |
Oczywiście oświadczam, że nie znam ZF, przyjdzie batman to odpowie lepiej. Dziękuję za uznanie. Nie zostanie to zapomniane (IMG:style_emoticons/default/winksmiley.jpg) W moim przypadku rozwiązałem podobny problem w nico inny sposób. U mnie wymogiem było stworzenie kilku wersji tego samego formularza w zależności od uprawnień użytkownika. Admin widzi wszystkie pola, użytkownik tylko niektóre, a o reszcie nie ma pojęcia. Udało mi się to osiągnąć poprzez dziedziczenie. Na "samej górze" znajduje się formularz admina, zawierający wszystkie pola. "Pod nim" na zasadzie dziedziczenia znajdują się formularze poszczególnych ról. W klasach tych usuwam niektóre pola poprzez removeElement. W twoim przypadku zamiast usuwać, mógłbyś podmienić element na hidden, który dane ma zapisane w description. Następnie mała zabawa z CSS i description wyświetla się jako zwykły tekst obok etykiety. |
|
|
|
Post
#17
|
|
|
Grupa: Moderatorzy Postów: 36 565 Pomógł: 6315 Dołączył: 27.12.2004 |
Dziękuję panowie, wasze odpowiedzi w pewnym sensie pomogły (IMG:style_emoticons/default/smile.gif)
|
|
|
|
![]() ![]() |
|
Aktualny czas: 13.06.2026 - 19:24 |