web-dev-qa-db-fra.com

Comment puis-je modifier la classe de champs SELECT générée par Joomla?

J'ai désactivé chosen.js De sorte que toutes mes balises <select> Soient du code HTML ordinaire, mais je suis jusqu'à présent incapable de changer la classe par défaut de inputbox en une de mes choix ( dans les filtres Outils de recherche de la page de mes composants).

J'ai examiné un certain nombre de réponses et de didacticiels sur le remplacement des formulaires, mais je ne comprends pas les exemples ou je recherche le mauvais type de remplacement.

En fin de compte, je veux changer la classe de tout <select> Généré dans libraries\cms\html\select.php. J'ai essayé d'ajouter le chemin/fichier à mon modèle, mais je ne parviens pas à le faire. Je vois que cela génère le champ avec $options Comme ci-dessous, mais je ne peux pas déterminer où CELA est déterminé et fourni.

$options Array (
    [format.depth] => 0
    [format.eol] => 

    [format.indent] =>  
    [id] => filter_event_group_id
    [list.attr] => class="inputbox" onchange="this.form.submit()"
    [list.translate] => 
    [option.key] => value
    [option.text] => text
    [list.select] => 
)

Mes tentatives de le spécifier dans le fichier XML à partir de Type de champ de formulaire échouent également - la page reste vierge, bien que ce fût un coup dans le noir, car mon champ est en réalité un Type de champ de formulaire SQL qui, apparemment, ne prend PAS en charge le paramètre Class, contrairement à Select.

<field name="created_by" class="MyChosenClassname" type="sql"...`

La question est donc de savoir comment ajouter correctement cette substitution à mon modèle ou comment spécifier le nom de la classe à utiliser dans les balises <select> Générées?

3
GDP

Je trouve plus facile d'ajouter une classe personnalisée à l'aide de jQuery.

il suffit de mettre cet extrait de code javascript dans la section head de votre modèle. La plupart des fournisseurs de templates/frameworks prennent en charge le code javascript personnalisé pour pouvoir être ajouté facilement.

$(document).ready(function(){ 
    $('select').addClass('custom_class'); 
});
1
Mohamed Abdelaziz

Vous devriez juste pouvoir ajouter l'attribut class au champ XML, comme ceci:

<field name="foo" class="MYCLASS" type="list" label="My List">
    <option value="0">Option 1</option>
    <option value="1">Option 2</option>
</field>
0
Lodder