web-dev-qa-db-fra.com

Puis-je ajouter un attribut de classe dans JHTMLGrid?

J'essaie d'ajouter un attribut de classe dans les cases à cocher.

https://docs.joomla.org/API15:JHTMLGrid/id

J'ai lu la documentation mais pas de chance aujourd'hui :(

S'il vous plaît vérifier l'image (Thats juste un exemple) enter image description here

Ma question est donc la suivante: pouvons-nous ajouter un attribut de classe dans JHtml::_('grid.id', $i, $item->id); ??

Est-il possible de faire cela sans piratage de base

Merci d'avance.

2
Joomler

Tout d'abord, cette documentation est très ancienne. Le dernier en date est ici .

Vous ne pouvez pas simplement ajouter une classe à cela. Vous devez créer votre propre JHtml* classe et le remplacer ici. Voici un exemple, vous pouvez renommer les noms de classe et de fichier si vous préférez.

composants/your_component/html/mygrid.php

abstract class JHtmlMygrid
{
    public static function id($rowNum, $recId, $class = null, $checkedOut = false, $name = 'cid', $stub = 'cb')
    {
        return $checkedOut ? '' : '<input type="checkbox" id="' . $stub . $rowNum . '"'.(is_string($class) ? ' class="'.$class.'"' : '').' name="' . $name . '[]" value="' . $recId
            . '" onclick="Joomla.isChecked(this.checked);" />';
    }
}

Ensuite, dans votre modèle de vue, par exemple myview/tmpl/default.php , ajoutez votre classe à JHtml chemins d'accès.

JHtml::addIncludePath(JPATH_COMPONENT.'/html');

Remarque: vous pouvez ajouter ce code au fichier principal de votre composant. Vous pourrez ensuite l'utiliser dans toutes les vues sans répéter cette ligne.

Et enfin, appelez-le dans votre fichier de modèle.

JHtml::_('mygrid.id', $i, $item->id, 'class-name');

Alors Joomla! appellera automatiquement votre méthode de classe JHtmlMygrid _ id.

4
Rene Korss