我正在构建一个包含两种语言(英语和德语)的页面。为此,我使用SilverStripe页面(http://addons.silverstripe.org/add-ons/silverstripe/translatable)上提供的可翻译模块。在常规页面上,它就像一个魅力。
联系表单在控制器中创建。到$form->setTemplate
我为表单加载了一个自定义模板,该模板位于模板的include子目录中。在类文件中,我定义了不同的TextFields(模型部分),我想在表单模板中使用它。
这是控制器:
class MietenPage extends Page {
private static $db = array (
//Form
'ChoosPakage' => 'Varchar',
'FormEventHeadline' => 'Varchar',
'FormNoteHeadline' => 'Varchar',
'FormContactHeadline' => 'Varchar',
'FormAdditionalHeadline' => 'Varchar',
'FormCheckOverlay' => 'Varchar',
'FormCheckCaseDesign' => 'Varchar',
'FormCheckAGB' => 'Varchar',
'FormSubmit' => 'Varchar',
'AGBAlert' => 'Varchar'
);
public function getCMSFields() {
$fields = parent::getCMSFields();
//...
return $fields;
}
}
class MietenPage_Controller extends Page_Controller {
private static $allowed_actions = array('ContactForm');
public function ContactForm() {
$fields = new FieldList(
//...
);
$actions = new FieldList(
new FormAction('submit', 'Anfrage Senden!')
);
$form = new Form($this, 'ContactForm', $fields, $actions);
$form->setTemplate('ContactFormTemplate');
return $form;
}
public function submit($data, $ContactForm) {
$email = new Email();
//...
}
}
在我的模板中,我使用$ ContactForm调用表单。这完全没问题,包括所有功能。
我的问题是,我无法访问变量(如标题或提交按钮文本),这些变量将文本保存在我的自定义模板中 - 只返回空白。我认为它必须对范围做一些事情,但我无法解决这个问题。
答案 0 :(得分:0)
在您的示例中,我无法查看您的变量所在的位置以及您计划如何使用它们,但要创建多语言表单,您最好使用_t()功能:{{3} }
您可以将其用于任何'硬编码的'文本,在PHP和模板中。