Frage

Ich kann nicht verwalten sowohl i18n und tinyMCE Widgets auf internationalisierte Felder haben. Wenn ich beide setzen, werde ich internationalisierte Felder für alle meine Objekte Felder, aber keine tinyMCE für sie. Ich werde so viele tinyMCE Felder hat, wie ich erklärte, aber thew wird nicht an Sprache entspricht, werden sie am Anfang oder am Ende sein. Es funktionierte perfekt, bevor ich die Objekte internationalisiert

Hier ist ein Beispiel für den Code ein:

// config / Lehre / 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 / Lehre / 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);

}

Also ich denke, wenn ich $ this- verwenden> widgetSchema [ 'Intro'], das "Intro" Name entspricht nicht alle i18n "Intro" Felder. Ich habe versucht, sowohl ‚en_intro‘ und ‚intro_en‘, aber es macht keine Magie tun. Vielleicht könnten Sie mir helfen?

War es hilfreich?

Lösung

So fand ich, wie dies zu tun, und ich dachte, es könnte jemanden interessieren sollte:

Anstelle von

 $this->widgetSchema['intro'] = ...

Setzen Sie

$this->widgetSchema['en']['intro'] = ...

mit allen Sprachen.

Andere Tipps

Auch können Sie:

$this->widgetSchema->moveField('en',sfWidgetFormSchema::BEFORE,'intro');

bewegen Sie das i18n-Label und Feld vor Intro Feld.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top