initPopover deaktivieren

  • Hallo,

    Bei meinem Nicht-Bootstrap-Template erhalte ich bei gewissen Views (z.B Article-View) einen JavaScript-Fehler. Ich habe festgestellt, dass dieser von der initPopover Funktion stammt. Diese wird anscheinend bei gewissen Views in den Header eingefügt.


    Wie kann ich dieses initPopover-Skript entfernen?


    Ich gehe davon aus, dass das Skript von der Komponente geladen wird, kann die entsprechenden Code-Stellen jedoch nicht finden...


    Lg

  • Im Normalfall lädt

    Code
    1. JHtml::_('bootstrap.popover'

    oder aktueller

    Code
    1. HTMLHelper::_('bootstrap.popover'

    Die PopOver-Funktionalität. Zu finden inMethode popover(...) in /libraries/cms/html/bootstrap.php

    https://github.com/joomla/joom…s/html/bootstrap.php#L344


    Man müsste also alle Vorkommen overriden und immer mal wieder prüfen, ob neu installierte Erweiterungen, die mitbringen.


    Es gibt auch die Möglichkeit, die HMTLHelper-Methoden "umzubiegen"/"zu killen". Mit dieser Plugin-Idee, die du dir halt entsprechend umbauen musst.

    https://github.com/mbabker/bs3…bootstrap3/bootstrap3.php


    Also

    Code
    1. JHtml::register('bootstrap.popover', 'PlgSystemBootstrap3::popover');

    einbauen und Methode

    Code
    1. public static function popover($selector = '.hasPopover', $params = array())
    2. {
    3. return;
    4. }

    Das Plugin sollte dann möglichst früh laufen, was man durch Sortierung der System-Plugins via Backend bewerkstelligen kann.


    Für Installation sollte es reichen die beiden Dateien in Ordner /plugins/system/bootstrap3/ hochzuladen und mittels Erweiterungen > Überprüfen zu installieren.

    https://github.com/mbabker/bs3…ter/plg_system_bootstrap3


    Da es dafür ja keine Updates gibt, kannst dann frei darin rumwerken. Ich verwende die Idee seit Jahren. Weiß deshalb, dass man bei ein paar JHtml-Helper-Methoden sehr viel kreativer sein muss ;-) Bsp. generell die 'bootstrap.framework' zu killen, weil die auch auf so nicht erreichbaren Wegen geladen werden könnte. Das Grundprinzip funktioniert aber immer irgendwie.