web-dev-qa-db-fra.com

Comment ajouter une fonctionnalité jQuery dans le backend d'un module?

Je fais un module où l'utilisateur peut sélectionner certains noms de fabricants à partir du backend et les noms seront affichés dans l'index avec quelques fichiers CSS de Nice.

Je veux demander si je peux ajouter un peu de jQuery dans la page backend, pour le rendre plus facile pour l'utilisateur. Je veux créer une zone de texte où compteront le nombre de fabricants sélectionnés par l'utilisateur (maximum 30) et une liste de tous les fabricants actuellement sélectionnés. Je vais poster une image pour la rendre encore plus claire:

enter image description here

3
IseNgaRt

Vous devrez créer un champ de formulaire personnalisé pour cela.

Donc, premièrement, changez le type du champ dans votre XML comme suit:

<field name="brands" type="brands" label="Foreign Brands" />

Puis dans votre XML, remplacez votre <fieldset> avec:

<fieldset addfieldpath="/modules/mod_mymodule/fields">

Ensuite, créez un nouveau fichier PHP appelé brands.php dans:

modules/mod_mymodule/fields

defined('JPATH_BASE') or die;

jimport('joomla.form.formfield');

class JFormFieldBrands extends JFormField
{
    protected $type = 'brands';

    public function getInput()
    {
       $doc = JDocument::getDocument();
       $js = '
              jQuery(document).ready(function($){
                  // Your JS code
              });
       '; 
       $doc->addScriptDeclaration($js);

       $options = array(
           'A.Dominguez' => 'A.Dominguez',
           'A.Feretti'   => 'A.Feretti',
           // Add more here
       );

       $select = JHtml::_('select.genericlist', $options, $this->name, null, 'value', 'text', $this->value, $this->id);

       return $select;
    }
}
4
Lodder