web-dev-qa-db-fra.com

JFormFieldList dans Frontend -> Notice: Conversion de tableau en chaîne

Je suis confronté à un problème étrange. J'essaie de définir un champ personnalisé pour la vue frontend - de mon composant, comme ceci:

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;
    }
}

maintenant j'ajoute ceci à mon xml:

<field name        = "assigntouser" 
       type        = "assigntouser"    
       label       = "TEST"                
       description = "TEST"
       filter      = "safehtml"
       default     = "">
    <option value = "">TEST</option>
</field>

et l'inclure à ma mise en page comme ça:

<?php echo $this->form->renderFieldset("testfieldset"); ?>

Mais il ne montre que cette erreur:

Avis: Conversion de tableau en chaînes dans /var/www/web1/htdocs/layouts/joomla/form/renderfield.php à la ligne 35

Un champ, conçu de la même manière, ajouté au backend de Joomla, fonctionne sans problème ...

1
MyFault

Je pense que vous voulez utiliser getOptions(..) pas getInput(...) avec un JFormFieldList.

getInput renvoie l'entrée complète <select /> sous forme de chaîne. getOptions remplit les options de sélection avec un tableau de chaînes <option />.

3
David Hayes