في symfony: كيفية استخدام الحاجيات مع أشكال I18N في الخلفية (العقيدة)
-
22-07-2019 - |
سؤال
لا أستطيع أن يكون كل 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 والميدان إلى ما قبل الحقل مقدمة.