Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [Symfony] Walidacja w TinyMCE
blackroger
post
Post #1





Grupa: Zarejestrowani
Postów: 176
Pomógł: 0
Dołączył: 8.11.2008

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


Problem wydaje się być banalny ale siedzę już 3h próbując na różne sposoby i nie mogę sobie z tym poradzić. Mam zwalidować za pomocą walidatora Choice, wartość która znajduje się w TinyMCE. Chodzi o to żeby uzytkownik nie mógł zmienić wartości. Od razu piszę, że wiem, że takie coś można również zrobić za pomocą Callbacka, ale Choice też może być. Czyli mamy jakiś tekst w TinyMCE i teraz problem tkwi w tym że wartości te nie chcą się zgadzać.

  1. $field_value = $this->getObject()->$column_name;
  2.  
  3. $this->widgetSchema[$column_name] = new sfWidgetFormTextareaTinyMCE();
  4. $this->validatorSchema[$column_name] = new sfValidatorChoice(
  5. 'choices' => array(0 => $field_value)),
  6. 'invalid' => 'Zła wartość. Nie masz wystarczających praw.'
  7. ));
  8.  


Domyślam się, że problem leży prawdopodobnie w kodowaniu tylko ja już nie wiem co jak zakodować, żeby tekst przesyłany z POST był równy temu, który jest w bazie.

Poniżej wypisuje co już zrobiłem:
- dodałem do formularza 'accept-charset="utf-8"
- dodałem do konfiguracji Tiny encoding: "utf-8"
- porównałem za pomocą print_r() obydwa teksty i zobaczyłem ze en pobierany z bazy w miejsce spacji wstawia &nbsp więc, więc pozamieniałem je wszystkie na ' '.
Przykład:
- tekst pobrany przez getObject():

  1. <p> </p>
  2. <p>re</p>
  3. <p>t</p>
  4. <p>tr</p>
  5. <p>r</p>
  6. <p>tpr</p>
  7. <p> </p>


-tekst pobrany przez getParameter()

  1. <p> </p>
  2. <p>re</p>
  3. <p>t</p>
  4. <p>tr</p>
  5. <p>r</p>
  6. <p>tpr</p>
  7. <p> </p>


Jak ktoś zna sposób krótszy i szybszy niż mój aby zablokować możliwość zmiany wartości w konkretnych polach formularza to proszę o pomoc. Samo readonly nie wystarcza (wiadomo dlaczego), a pole musi być przesyłane.
Proszę o pomoc.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
blackroger
post
Post #2





Grupa: Zarejestrowani
Postów: 176
Pomógł: 0
Dołączył: 8.11.2008

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


Rozumiem Cię. Tylko najgorsze jest to, że cały formularz jest generowany automatycznie w zależności od pozwoleń dla danego pola i innego typu rzeczy. Wszystko jest ustalane w klasie formularza postępując zgodnie z dobrymi zasadami. To tam nadawane są inputy z różnymi atrybutami. Generowany formularz leci do akcji tam jest sprawdzany i zapisywany. Teraz, gdybym chciał zrobić tak jak piszesz musiałby większość mechanizmów przenieść do akcji lub powtórzyć je w niej.
Rozumiem że najłatwiej byłoby po prostu nie zapisywać tej przesyłanej wartości, ale wtedy muszę analizować po stronie akcji które pole jest z jakim pozwoleniem, a to dodatkowe objętości kodu. W momencie jak to wszystko leci to z góry wiadomo że tylko jedna wartość przejdzie a wszystkie pozostałe elementy są już sprawdzone. Problemem nie jest sprawdzanie kilkudziesięciu bajtów, ale może pojawić się problem gdy sprawdzane będą całe artykuły poprzez tinyMCE.


btw. okazało się że jakimś cudem znalazły się w bazie znaki w innym kodowaniu i to psuło sprawę.

Ten post edytował blackroger 23.09.2010, 00:41:01
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: 6.10.2025 - 20:35