Учение Symfony: настраиваемая тема генерируемого модуля: не удается найти шаблоны для встроенного поля i18n - PullRequest
0 голосов
/ 05 сентября 2010

Я создал собственную тему, скопировав

plugins/sfDoctrinePlugin/data/generator/sfDoctrineModule/default"

в

plugins/sfDoctrinePlugin/data/generator/sfDoctrineModule/mytheme1"

Я изменил шаблоны в соответствии со своими потребностями (нет таблиц, отображаются пользовательские ошибки и т. Д.).

./symfony doctrine:generate-module --theme=mytheme1 frontend user User 

работает, как я ожидал, однако, если я добавлю

$this->embedI18n(array('en','fr')); 

к классу формы , генератор отображает встроенную форму I18n с помощью и.

Откуда это?Как я могу настроить это?где находятся файлы шаблонов для встроенных форм i18n?

Большое спасибо, Massimo

Ответы [ 2 ]

1 голос
/ 28 ноября 2010

Шаблон определяется в форматере схемы виджета вашей формы i18n. По умолчанию для него установлено значение sfWidgetFormSchemaFormatterTable, которое содержит определение того, что вы ищете:

class sfWidgetFormSchemaFormatterTable extends sfWidgetFormSchemaFormatter
{
  protected
    $rowFormat       = "<tr>\n  <th>%label%</th>\n  <td>%error%%field%%help%%hidden_fields%</td>\n</tr>\n",
    $errorRowFormat  = "<tr><td colspan=\"2\">\n%errors%</td></tr>\n",
    $helpFormat      = '<br />%help%',
    $decoratorFormat = "<table>\n  %content%</table>";
}

Вы можете изменить это, отредактировав инициализацию класса формы i18n. Например, если вы хотите отобразить поля в списке:

public function setup()
{
    parent::setup();

    $formatter = new sfWidgetFormSchemaFormatterList($this->getWidgetSchema());

    $this->getWidgetSchema()->addFormFormatter('list', $formatter);
    $this->getWidgetSchema()->setFormFormatterName('list');
}

Вы также можете определить свой собственный форматер, наследуемый от sfWidgetFormSchemaFormatter, чтобы он соответствовал вашим настройкам макета.

1 голос
/ 07 сентября 2010

Во-первых, не самая лучшая идея перегружать тему в самом плагине. Плагин не следует трогать, чтобы позволить будущие обновления. Вы можете легко перегрузить тему в своем приложении.

Во-вторых, в вашем посте чего-то не хватает: «в классе формы генератор отображает встроенную форму I18n с помощью и».

Может показываются отсутствующие индикаторы перевода?

...