質問

国際化されたフィールドに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ラベルとフィールドをイントロフィールドの前に移動します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top