奇妙な問題に直面しています。次のように、コンポーネントのfrontend-viewのカスタムフィールドを定義しようとしています。
defined('JPATH_BASE') or die;
jimport('joomla.form.formfield');
jimport('joomla.form.helper');
JFormHelper::loadFieldClass('list');
class JFormFieldAssignToUser extends JFormFieldList
{
protected $type = 'assigntouser';
protected function getInput()
{
$html = array();
$user = JFactory::getUser();
$html[] = JHtml::_('select.option', "Test", "Test");
$html = array_merge(parent::getOptions(), $html);
return $html;
}
}
これを自分のxmlに追加します。
<field name = "assigntouser"
type = "assigntouser"
label = "TEST"
description = "TEST"
filter = "safehtml"
default = "">
<option value = "">TEST</option>
</field>
それを私のレイアウトに含めます:
<?php echo $this->form->renderFieldset("testfieldset"); ?>
しかし、それはこのエラーを表示するだけです:
注意:/var/www/web1/htdocs/layouts/joomla/form/renderfield.phpの35行目の配列から文字列への変換
Joomlaのbackendに追加された同じ方法で設計されたフィールドは問題なく動作します...
JFormFieldList
ではgetOptions(..)
ではなくgetInput(...)
を使用したいと思います。
getInput
は、完全な<select />
入力を文字列として返します。 getOptions
は、選択オプションに<option />
文字列の配列を入力します。