17
Фев

Symfony: Ссылки между приложениями

В официальном блоге Symfony, есть статья как для версии 1.2, оганизовать ссылки между приложениями.
Например из бэкенда ставить ссылки на фронтенд.
Читаем на английском:
Cross Application Links

6
Фев

Symfony Forms I18n изменение поведения

Появилась задача унифицировать поведение всех форм, конкретней, чтобы в многоязычной форме автоматически устанавливалась текущая культура пользователя. Для красоты еще добавил иконку флага как идентификатор культуры.

Все формы у нас наследуются от BaseFormPropel, следовательно открываем файл в нашем проекте $project/lib/form/BaseFormPropel.class.php и в методе класса setup(), пишем нужный нам код.

abstract class BaseFormPropel extends sfFormPropel
{
  public function setup()
  {
    if ($this->isI18n())
    {
      $culture = sfContext::getInstance()->getUser()->getCulture();
      $this->embedI18n(array($culture));

      $icons = sfConfig::get('app_site_language_icons'); // get icon array
      $this->widgetSchema->setLabel($culture, '<img src="'.$icons[$culture].'" width="24" height="24" alt="" />');
    }
  }
}

В файле app.yml у меня хранятся соответствия названий культур и иконок флажков.

all:
  site:
    language_icons:
        ru: /images/flags/24/ru.png
        en: /images/flags/24/en.png
        de: /images/flags/24/de.png

В итоге получаем вот такой вид формы:

form-i18n