web-dev-qa-db-fra.com

Remplacer les méthodes de classe JHtml (HTMLHelper)

Je développe un modèle Joomla personnalisé et j'ai unset un grand nombre des dépendances de base, telles que jQuery et Bootstrap dans le modèle index.php Du modèle.

Le problème est maintenant que les extensions principales appellent certaines fonctionnalités de Bootstrap, comme ceci:

JHtml::_('tooltip', $tooltip, $options);

qui à son tour appelle la bibliothèque Bootstrap et unset ne fonctionne pas car il a essayé de supprimer le fichier avant son appel.

Je voudrais donc remplacer certaines des méthodes de la classe JHtmlBootstrap, afin qu'elles ne retournent rien, comme ceci:

abstract class JHtmlBootstrap
{
    public static function tooltip() {
        return;
    }
}

Je sais que je vais devoir écrire un plugin, mais je ne suis pas sûr de la meilleure approche.

2
Lodder

Créez un plugin système et utilisez JHtml::register() pour enregistrer vos méthodes personnalisées.

defined('_JEXEC') or die;

use Joomla\CMS\HTML\HTMLHelper;
use Joomla\CMS\Plugin\CMSPlugin;

class PlgSystemExample extends CMSPlugin
{
    public function onAfterInitialise()
    {
        HTMLHelper::register('bootstrap.tooltip', array(__CLASS__, 'noTooltips'));
    }

    public static function noTooltips()
    {
    }
}
3
Sharky