J'essaie d'ajouter une liste de sélection multiple à mon composant backend, mais je n'arrive pas à le faire fonctionner. J'ai essayé de chercher sur les forums joomla et j'ai essayé ce qu'ils ont suggéré, mais ça ne marche toujours pas.joomla 2.5 enregistrer plusieurs listes de sélection?
Voici ce que je l'ai fait:
/models/fields/categories.php
foreach ($result as $item) {
$options[] = JHtml::_('select.option', $item->id, $item->title);
};
$drawField = '';
$drawField .= '<select name="'.$this->name.'" id="'.$this->name.'" class="inputbox" size="10" multiple="multiple">';
$drawField .= JHtml::_('select.options', $options, 'value', 'text', $strVal, true);
$drawField .= '</select>';
return $drawField;
/models/forms/edit.xml
<field name="catid" type="categories" multiple="true" size="40" class="inputbox" label="COM_PRODUCTS_FORM_LBL_EDIT_CATID" description="COM_PRODUCTS_FORM_DESC_EDIT_CATID" required="true" filter="safehtml" />
/modèles/modifier. php
protected function loadFormData()
{
$data = JFactory::getApplication()->getUserState('com_products.edit.edit.data', array());
if (empty($data)) {
$data = $this->getItem();
$data->catid = explode(',',$data->catid);
}
return $data;
}
/tables/edit.php
public function check() {
if (property_exists($this, 'ordering') && $this->id == 0) {
$this->ordering = self::getNextOrder();
}
$this->catid = implode(',',$this->catid);
return parent::check();
}
Il enregistre le champ catid en tant que "Array" dans le backend. Pourtant quand je mets manuellement 143.148 comme valeur de champ, il ne met pas en évidence ces champs, donc évidemment mon implode/explosion ne fonctionne pas .. Toute aide serait appréciée !!
Merci :)