Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [ZendFramework]pusta tablica POST ?
elmozaur
post
Post #1





Grupa: Zarejestrowani
Postów: 518
Pomógł: 18
Dołączył: 21.07.2008

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


Witam.

Googlajac w poszukiwaniu odpowiadajacego mi rozwiazania znalazlem cos takiego:
http://dariuszsadowski.blogspot.com/2011/0...iu-o-sesje.html

Zrobilem copy paste kodu ze zmianami takimi aby chodzilo to w zend+Smarty.

I tu pojawil sie problem: gdy klikam na flage , wysylany jest formularz ale w metodzie preDispatch() klasy class App_Controller_Action_Helper_LangSwitch
gdy odbieram cala tablice POST okazuje sie ze jest ona pusta.

3 Pytania:
- Czy ten Action_Helper trzeba jeszcze gdzies "aktywowac/inicjowac"?
- dlaczego POST moze byc pusty?
- jak poprawnie pobierac request
$req = $this->getRequest();
$req = $this->_request();

dziekuje i pozdrawiam
G
Go to the top of the page
+Quote Post
KrzysiekWildfire
post
Post #2





Grupa: Zarejestrowani
Postów: 93
Pomógł: 11
Dołączył: 27.10.2010
Skąd: Kutno/Poznań

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


Przejrzałem to co tam jest, i moim zdaniem jest to zbyt skomplikowane. Jeżeli miałbym już zrobić coś takiego jak tam, to zrobiłbym to z poziomu bootstrap'u:

  1.  
  2. protected function _initTranslation ()
  3. {
  4. $lang = new Zend_Session_Namespace('lang');
  5. $lang->setExpirationSeconds('3600'); //Tu ustalasz po jakim czasie język wróci do Polskiego
  6. if($lang->lang === null){
  7. $lang->lang = 'pl_PL';
  8. }
  9. $locale = new Zend_Locale($lang->lang);
  10. $translate = new Zend_Translate(array('adapter' => 'tmx',
  11. 'content' => APPLICATION_PATH . '/configs/translations.tmx',
  12. 'locale' => $locale)); //W tym przypadku korzystam z pliku tmx (typ xml'a) do translacji
  13. Zend_Registry::set('Zend_Translate', $translate);
  14. }


Do tego trzeba stworzyć kontroler do obsługi zmiany języka:
  1. <?php
  2. class LangController extends Zend_Controller_Action{
  3. public function indexAction(){
  4. if ($this->_request->isPost()){
  5. if ($this->_request->getPost('lang','0')!='0'){
  6. $lang = new Zend_Session_Namespace('lang');
  7. $lang->lang = $this->_request->getPost('lang');
  8. $this->_redirect('/');
  9. }
  10. }
  11. }
  12. }


I powinno wszystko działać - i też jest w oparciu o sesje. BTW to nie jest najlepszy sposób na obsługę języków ze względu na boty wyszukiwarek internetowych.
Powodzonka

Ten post edytował KrzysiekWildfire 25.06.2011, 13:05:45
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 02:43