في symfony: كيفية استخدام الحاجيات مع أشكال I18N في الخلفية (العقيدة)

StackOverflow https://stackoverflow.com/questions/1824788

سؤال

لا أستطيع أن يكون كل I18N والحاجيات محرر TinyMCE على الحقول المدولة. لو أنني وضعت على حد سواء، سوف يكون لي الحقول المدولة لكافة الحقول الكائنات الخاصة بي "، ولكن لا محرر TinyMCE بالنسبة لهم. وسوف يكون قدر المجالات محرر TinyMCE وأنا أعلن، ولكن ثيو لا تتوافق مع أي لغة، وأنها ستكون في بداية أو في نهاية المطاف. انها عملت تماما قبل أن تدويل الكائنات

وهنا مثال من التعليمات البرمجية:

و// التكوين / العقيدة / 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)}

و// ليب / شكل / العقيدة / 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);

}

وهكذا اعتقد عندما استخدم $ هذا-> widgetSchema [ 'مقدمة']، و "مقدمة" اسم لا تتوافق مع جميع I18N "مقدمة" المجالات. حاولت كل من "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