示例#1
0
	public function executeChangeLanguage(sfWebRequest $request)
	{
		$form = new sfFormLanguage(
		$this->getUser(),
			array('languages' => array('en', 'fr'))
		);
		$form->process($request);
		return $this->redirect('localized_homepage');
	}
示例#2
0
 /**
  * action for language switch
  * @author Christian Schätzle
  */
 public function executeChangeLanguage(sfWebRequest $request)
 {
     $form = new sfFormLanguage($this->getUser(), array('languages' => array('en', 'de')));
     $form->process($request);
     $referer = $this->getRequest()->getReferer();
     if (preg_match('/yiid/', parse_url($referer, PHP_URL_HOST))) {
         return $this->redirect($referer);
     } else {
         return $this->redirect('index/index');
     }
 }
    $t->fail('__construct() throws a RuntimeException if you don\'t pass a "languages" option');
} catch (RuntimeException $e) {
    $t->pass('__construct() throws a RuntimeException if you don\'t pass a "languages" option');
}
$form = new sfFormLanguage($user, array('languages' => array('en', 'fr')));
$t->is($form->getDefault('language'), 'en', '__construct() sets the default language value to the user language');
$w = $form->getWidgetSchema();
$t->is($w['language']->getOption('languages'), array('en', 'fr'), '__construct() uses the "languages" option for the select form widget');
$v = $form->getValidatorSchema();
$t->is($v['language']->getOption('languages'), array('en', 'fr'), '__construct() uses the "languages" option for the validator');
// ->process()
$t->diag('->process()');
// with CSRF disabled
$t->diag('with CSRF disabled');
sfForm::disableCSRFProtection();
$form = new sfFormLanguage($user, array('languages' => array('en', 'fr')));
$request->setParameter('language', 'fr');
$t->is($form->process($request), true, '->process() returns true if the form is valid');
$t->is($user->getCulture(), 'fr', '->process() changes the user culture');
$request->setParameter('language', 'es');
$t->is($form->process($request), false, '->process() returns true if the form is not valid');
$t->is($form['language']->getError()->getCode(), 'invalid', '->process() throws an error if the language is not in the languages option');
sfToolkit::clearDirectory($sessionPath);
// with CSRF enabled
$t->diag('with CSRF enabled');
sfForm::enableCSRFProtection('secret');
$form = new sfFormLanguage($user, array('languages' => array('en', 'fr')));
$request->setParameter('language', 'fr');
$request->setParameter('_csrf_token', $form->getCSRFToken('secret'));
$t->is($form->process($request), true, '->process() returns true if the form is valid');