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
destroyerr
post
Post #2





Grupa: Zarejestrowani
Postów: 879
Pomógł: 189
Dołączył: 14.06.2006
Skąd: Bytom

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


Skoro do formularza dochodzi informacja jakie pole nie może zostać zapisane (bo na tej podstawie stosujesz walidację wyboru dla tego pola), to już wiemy jakie pole wyciąć, albo jakiego nie zapisać. Przykład:
  1. <?php
  2.  
  3. class SomeForm extends BaseForm
  4. {
  5. protected $fieldsToCut = array();
  6.  
  7. public function configure()
  8. {
  9. $field_value = $this->getObject()->$column_name;
  10. $this->widgetSchema[$column_name] = new sfWidgetFormTextareaTinyMCE();
  11.  
  12. $this->fieldsToCut[] = $column_name;
  13. }
  14.  
  15. public function bind(array $values = array(), array $files = array())
  16. {
  17. $values = array_diff_key($values, array_flip($this->fieldsToCut));
  18.  
  19. parent::bind($values, $files);
  20. }
  21. }
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: 11.10.2025 - 01:36