Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [Symfony] Lokalizacja liczb
Theqos
post
Post #1





Grupa: Zarejestrowani
Postów: 49
Pomógł: 8
Dołączył: 5.12.2008

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


Witam,

Doszedłem w swoim projekcie do problemu lokalizacji liczb zmiennoprzecinkowych. O ile niemam problemu z ich wyswietlaniem, format_number wyswietla mi przecinek odcielajacy czesc dziesietna od calkowitej, to juz przy wprowadzaniu danych mam problem. sfNumberValidator przyjmuje mi tylko wartosci z kropka, a z przecinkiem traktuje jako NaN. No i brakuje czegos takiego jak sfI18N::getDateForCulture dla liczb. Dodatkowo przy edycji jakiejs liczby, wartosc domyslna rowniez jest z kropka (object_input_tag widocznie nierespektuje ustawien lokallizacji).

Narazie uzywam symfony 1.0. Nie znam jeszcze nowego frameworka formularzy z 1.2, ale z tego co widze w kodzie validatora (sfValidatorNumber.class.php) to rowniez nie intersuja go ustawienia lokalizacji. Dlatego chcialbym sie spytac jak wy radzicie sobie w takiej sytuacji, bo niechce zmuszac userow do wprowadzania kwot z kropkami (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Pozdrawiam.

Ten post edytował Theqos 5.12.2008, 12:14:04
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Theqos
post
Post #2





Grupa: Zarejestrowani
Postów: 49
Pomógł: 8
Dołączył: 5.12.2008

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


Interesujacy pomysl. Na probe napisalem sobie taki prosty filtr:
Kod
class numberFilter extends sfFilter
{
  public function execute($filterChain)
  {
    $request = $this->getContext()->getRequest();

    $params = $request->getParameterHolder()->getAll();

    foreach ($params as &$param)
    {
      $param = str_replace(',','.',$param);
    }
    
    $filterChain->execute();

    $pattern = '/value=\"(\d*)\\.(\d*)\"/i';
    $replacement = 'value="$1,$2"';

    $response = $this->getContext()->getResponse();
    $response->setContent(preg_replace($pattern, $replacement, $response->getContent()));
}
}


No i nie wiem czy to troche nie overkill filtrowac cale dlugie strony, jak input taga z liczbami mam tylko w paru miejscach. Daloby sie jakos ograniczcyc filtr do akcji albo modulu? Filtrowanie wszystkich parametrow to tez pewnie nietrafiony pomysl, szczegolnie ze mi zamienia ',' na '.' w miejscach gdzie tego nie potrzebuje (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
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: 26.12.2025 - 09:59