web-dev-qa-db-ja.com

フロントエンドのJFormFieldList->通知:配列から文字列への変換

奇妙な問題に直面しています。次のように、コンポーネントの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に追加された同じ方法で設計されたフィールドは問題なく動作します...

1
MyFault

JFormFieldListではgetOptions(..)ではなくgetInput(...)を使用したいと思います。

getInputは、完全な<select />入力を文字列として返します。 getOptionsは、選択オプションに<option />文字列の配列を入力します。

3
David Hayes