Symfony:バックエンドでi18nフォームでウィジェットを使用する方法(doctrine)
-
22-07-2019 - |
質問
国際化されたフィールドにi18nウィジェットとtinyMCEウィジェットの両方を配置することはできません。 両方を配置すると、すべてのオブジェクトのフィールドに国際化されたフィールドがありますが、tinyMCEはありません。私は宣言したのと同じくらい多くのtinyMCEフィールドを持ちますが、thewはどの言語にも対応しません。それらは最初または最後になります。 オブジェクトを国際化する前に完全に機能しました
コードの例を次に示します。
// config / doctrine / schema.yml
MyObject:
actAs:
I18n:
fields: [title, subtitle, intro, text]
columns:
title: {type: string(500)}
subtitle: {type: string(500)}
intro: {type: string(4000)}
text: {type: string(16000)}
// lib / form / doctrine / MyObject.class.php
public function configure()
{
$this->embedI18n(array('en', 'fr', 'es'));
$this->widgetSchema->setLabel('fr', 'Français');
$this->widgetSchema->setLabel('en', 'Anglais');
$this->widgetSchema->setLabel('es', 'Español');
$this->widgetSchema['intro'] = new sfWidgetFormTextareaTinyMCE(
array(
'width'=>600,
'height'=>100,
'config'=>'theme_advanced_disable: "anchor,image,cleanup,help"',
'theme' => sfConfig::get('app_tinymce_theme','simple'),
),
array(
'class' => 'tiny_mce'
)
);
$this->widgetSchema['text'] = new sfWidgetFormTextareaTinyMCE(
array(
'width'=>600,
'height'=>100,
'config'=>'theme_advanced_disable: "anchor,image,cleanup,help"',
'theme' => sfConfig::get('app_tinymce_theme','simple'),
),
array(
'class' => 'tiny_mce'
)
);
$js_path = sfConfig::get('sf_rich_text_js_dir') ? '/'.sfConfig::get('sf_rich_text_js_dir').'/tiny_mce.js' : '/sf/tinymce/js/tiny_mce.js';
sfContext::getInstance()->getResponse()->addJavascript($js_path);
}
だから、$ this-> widgetSchema ['intro']を使用すると、" intro"名前はすべての国際化「イントロ」に対応していません。フィールド。 「en_intro」と「intro_en」の両方を試してみましたが、魔法はありません。 多分あなたは私を助けることができますか?
解決
だからこれを行う方法を見つけて、誰かに興味があるかもしれないと思った:
の代わりに
$this->widgetSchema['intro'] = ...
挿入
$this->widgetSchema['en']['intro'] = ...
すべての言語で。
他のヒント
また使用できます:
$this->widgetSchema->moveField('en',sfWidgetFormSchema::BEFORE,'intro');
i18nラベルとフィールドをイントロフィールドの前に移動します。
所属していません StackOverflow