BBcode tauschen

  • Affected Version
    WoltLab Suite 5.4

    Hallo zusammen,


    kann man eigentlich einen BBcode tauschen?

    Laut diesem Wunsch RE: Reihenfolge zweier Buttons im WYSIWYG-Editor tauschen soll das funktionieren, da der Wunsch abgeschlossen wurde, aber wie funktioniert das ganze?


    Ich möchte den img-Bbcode mit einem installierten bbcode ändern. Zum einen, da er diesen ersetzt und zum anderen soll der BBcode auch mobil sofort sichtbar sein und nicht erst nach dem Klick auf dem arrow.


    Hat jemand ein Workaround dafür?

    Beste Grüße

  • Hast du evtl. einen Workaround dafür ?


    Es wäre wirklich hilfreich, denn einige wichtige BBCodes werden in der mobilen Ansicht leider im Arrow versteckt, welche ich aber sehr gerne direkt anzeigen möchte.

    Beste Grüße

  • Wie es scheint, reicht es data-show-on-mobile= zu ändern.


    Ich habe mir da was zusammengebastelt, aber ich weiß nicht wie ich das im WSC nutzen kann: http://jsfiddle.net/3q67ntyu/4/

    Beste Grüße

    • Official Post

    qBass17

    JavaScript
    (() => {
      const toolbar = document.querySelector(".redactor-toolbar");
    
      const image = toolbar.querySelector('[rel="woltlabImage]');
      if (image) image.dataset.showOnMobile = "false";
    
      const telegram = toolbar.querySelector('[rel="revocodeTelegram"]');
      if (telegram) telegram.dataset.showOnMobile = "true";
    })();
  • Ich habe zu Danken, unglaublich wie sich alles unterscheidet und jemand sowas beruflich macht. Danke für die Zeit und bereitstellen.


    Alexander Ebert weder im Header als auch Footer scheint es zu funktionieren.



    Habe es auch so einmal Probiert

    Beste Grüße

    Edited 2 times, last by qBass17 ().

    • Official Post

    Oh, mir ist ein Fehler unterlaufen, es fehlt ein .parentElement, denn das Attribut steht auf dem Eltern-Element:

    JavaScript
    (() => {
      const toolbar = document.querySelector(".redactor-toolbar");
    
      const image = toolbar.querySelector('[rel="woltlabImage"]');
      if (image) image.parentElement.dataset.showOnMobile = "false";
    
      const telegram = toolbar.querySelector('[rel="revocodeTelegram"]');
      if (telegram) telegram.parentElement.dataset.showOnMobile = "true";
    })();
  • Vielen Dank dafür nochmal.

    Habe das ganze im Footer eingebaut.


    Die Konsole meldet:

    Quote

    Uncaught TypeError: toolbar is null
    <anonymous> ...../forum/thread/6-auch-test/?postID=49#post49:3471
    <anonymous> ...../forum/thread/6-auch-test/?postID=49#post49:3476

    Mittels Quelltext untersuchen, finde ich auch

    Im Seitenquelltext widerum nicht, liegt das daran oder muss das Javascript generell woanders eingebunden werden?

    Beste Grüße

  • Wenn die Toolbar erst nachgeladen wird, wird der Code vermutlich zu früh ausgeführt. Zudem fehlt hier imho die Prüfung, ob das Element überhaupt existiert, d.h. selbst wenn der Code pünktlich geladen werden würde, würdest du vermutlich auf allen Seiten ohne Editor diesen Fehler erhalten.

  • Bedeutet, dass das dann generell nicht funktioniert?

    Kann man kein Template dafür beariten? Wahrscheinlich wird das ganze via Javascript generiert oder?

    Beste Grüße

    Edited once, last by qBass17 ().

  • So scheint es möglich, allerdings ist es nicht zuverlässig. Mal klappt es, mal nicht.

    Beste Grüße

    • Official Post

    Als "Footer-Code" eintragen:

    Der Editor basiert noch auf jQuery und dies wird erst etwas verzögert ausgeführt.

  • Der Editor basiert noch auf jQuery und dies wird erst etwas verzögert ausgeführt.

    Das scheint noch mehr Fehler zu verursachen:

    Diese Variante verursacht komischerweise keine Fehler, aber ist ebenso unzuverlässig.

    So scheint es möglich, allerdings ist es nicht zuverlässig. Mal klappt es, mal nicht.

    Gibt es eine Möglichkeit die Button direkt zu editieren, in einer speziellen Datei?

    Beste Grüße

  • Das Ganze hat in den bisher genannten Varianten sowieso ein Problem: Es funktioniert nur einmal beim Laden der Seite, aber z.B. nicht beim Nachladen einer neuen Editor-Instanz. Daher mein Vorschlag: