Doctrine forms – редактирование i18n контента

Данная заметка не открывает ничего нового, тем не менее, подобные вопросы постоянно возникают, в том числе и у меня.

Суть проблемы: есть i18n таблица (вернее пара таблиц, например content и content_translation). Хочется быстро и просто сделать в админке редактирование данных для нескольких языков.

Оказывается, Doctrine form “из коробки” это умеет. Необходимо лишь выполнить несложное конфигурирование:

<?php
class ContentForm extends BaseContentForm
{
  public function configure()
  {
    // ...
    $this->embedI18n(array('en', 'ru'));
    $this->widgetSchema->setLabel('en', 'Английская версия');
    $this->widgetSchema->setLabel('ru', 'Русская версия');
    // ...
  }
}
?>

Этот прием описан в Jobeet, день 19: http://www.symfony-project.org/jobeet/1_4/Doctrine/en/19#chapter_19_sub_admin_generator, но, похоже, мало кто дочитывает до этого места.

This entry was posted in Профессиональное and tagged , , , . Bookmark the permalink. Post a comment or leave a trackback: Trackback URL.

11 Comments

  1. Albatros
    Posted 2010/07/07 at 5:55 pm | Permalink

    попал сюда надеясь увидеть решение грабли почему такие формы вдруг перестали работать…

    • Albatros
      Posted 2010/07/07 at 6:02 pm | Permalink

      а именно при редактировании редактировании записи с двумя переводами почемуто всё валится с ошибкой что MySQL не может найти у себя поле… которое пропискно как I18n: fields['title']…
      почемуто толи доктрина, толи генерённая админка вдруг забывает что это поле переводное… и тащит его из основной таблицы…
      ререлиз sf 1.4.6 (откат на 1.4.5 не исправил ситуацию)

      • hudson
        Posted 2010/07/07 at 6:12 pm | Permalink

        Что-то у вас определено не так. У меня заработало “из коробки”. Я не думаю что проблема в symfony. Во всяком случае это не первая по распространенности причина ошибок. Хотя почему-то все в первую очередь грешат именно на фреймворк )

    • hudson
      Posted 2010/07/07 at 6:10 pm | Permalink

      Ммм. Эта тема не называется “решение проблем” как вы наверное заметили ) И ваши ожидания с реальным положением дел не имеют ничего общего.

      • Albatros
        Posted 2010/07/07 at 7:09 pm | Permalink

        да, оказался частный случай… но просто было забавно.
        а почему на фремворк… пустой проект, 1 файл модели… генерим всё, генерим админку… и опа… =)

        спасиб за быстрые ответы =)

  2. Albatros
    Posted 2010/07/07 at 7:06 pm | Permalink

    грабель решился… оказалось влиял порядок прописаных в модели шаблонов доктрины(actAs)
    примечательно что вот этот пример модели как раз не завёлся…
    http://www.doctrine-project.org/projects/orm/1.2/docs/manual/behaviors/en#nesting-behaviors

    эту беседу меня с собой можно удалить =)

    • hudson
      Posted 2010/07/07 at 7:09 pm | Permalink

      Мне она не мешает ) Т.е. хватило изменить порядок шаблонов?

      • Albatros
        Posted 2010/07/07 at 7:12 pm | Permalink

        да… как всегда ответ оказвается банальным… =)
        но как не приятно когда “вот тут оно работает”, “а вот точно такое, НЕТ!” =)

  3. Albatros
    Posted 2010/07/07 at 7:18 pm | Permalink

    hudson, может ты знаешь рецепт как в админгенераторе редактировать не все переводы, а выборочно по одному?… иначе когда 13 языков оно… э… не удобно… =)

Post a Comment

Your email is never published nor shared. Required fields are marked *

*
*

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">