​$doc->addScriptDeclaration script nur einmal einfügen

  • "Machs wie Joomla!"

    Ordner anlegene Modulordner/html/
    Datei anlegen Modulordner/html/dingsbums.php

    Spoiler anzeigen
    Code
    abstract class JHtmlDingsbums{ protected static $loaded = array(); public static function tralala() {  // Bereits ausgeführt, also zurück/return  if (!empty(static::$loaded[__METHOD__]))  {   return;  }  // Noch nicht ausgeführt:   ------- JS-CODE einbinden ... addScriptDeclaration etc. ------  // Danach Switch für Lade-Methode tralala() auf true:  static::$loaded[__METHOD__] = true; }}

    Bspw. im Modul-Helper frühzeitig ein

    Code
    JHtml::addIncludePath(__DIR__ . '/html');


    Kann aber auch direkt vor untigem Einbinde-Aufruf

    Und Einbinde-Aufruf dann an passender Stelle

    Code
    JHtml::_('dingsbums.tralala');

    Natürlich muss man das nicht unbedingt über Joomla-JHtml-Klasse machen, da du auch in jeder andern Klasse eine static-Variable ($loaded) als Switch für eine oder mehrere Lade-Methode(n) darin anlegen kannst. Also auch in der Modul-Helper-Klasse selbst, ohne JHtml-Gedingse.

    Sieh selbst, wann sich der ""Aufwand"" lohnt und wie/wo am effizientesten.