Hallo, Gast! (Registrieren)

Letzte Ankündigung: MyBB 1.8.38 veröffentlicht (30.04.24)


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste
[G] Fehler JavaScript jsTemplates (modal)
#1
Nach dem Upgrade von 1.8.19 nach .20 ist mir ein Fehler bei der folgenden JavaScript-Ausführung aufgefallen:

Dieser Happen Code ist neu in .20 und befindet sich im Template headerinclude:

Code:
var templates = {
modal: '{$jsTemplates['modal']}',
modal_button: '{$jsTemplates['modal_button']}'
};

Nach dem Aufrufen werden die beiden modal-Templates generiert und abschließend folgender Quelltext erzeugt:

Code:
var templates = {
modal: '<div class=\"modal\">
\
<div style=\"overflow-y: auto; max-height: 400px;\">
\
<h3>__message__</h3>
\
<div class=\"trow1\">
\
<div class=\"modal_buttons\">__buttons__</div>
\
</div>
\
</div>
\
</div>',
modal_button: '
\
<input type=\"submit\" class=\"button\" value=\"__title__\"/>'
};
(Mein modal-Template ist geändert und entspricht nicht mehr dem Original - ist hier aber irrelevant)

Es werden Zeilenumbrüche/Maskierungen "verrutscht". Sie gehören an das Ende jeder Zeile. Jeder Versuch die Templates zu bearbeiten oder mit den Zeilenumbrüchen zu spielen, etc bringt keine Abhilfe.

Die Browser-Konsole zeigt logischerweise folgenden Fehler:
"SyntaxError: ' ' string literal contains an unescaped line break".

Durch diesen Fehler bricht die gesamte JS-Funktionalität des Forums zusammen.

Setze ich die verrutschten Maskierungen manuell an das entsprechenden Zeilenende oder verwende den harten Template-Code, ist die Funktion wieder gegeben - d.h. die JavaScript-Funktion scheint hier fehlerhaft zu generieren.

Ist dies bekannt, gibt es eine Abhilfe, oder doch Layer-8-Problem? Smile

Vielen Dank für jeden Hinweis

[ExiTuS]
MyBB + innovative Themes:
NokiaPort.de Forum Nokia-Traditionsforum seit 2006.
Live Escape Game Forum Diskussionsplattform für Escape-Rooms.
Unlösbares Problem, Dilemma? -> das Nötel Smile
Zitieren
#2
(27.03.2019, 16:21)[ExiTuS] schrieb: (Mein modal-Template ist geändert und entspricht nicht mehr dem Original - ist hier aber irrelevant)

Oh nein, das ist absolut relevant. Wenn die modal-Templates unverändert von den master-Templates geladen werden, ist alles in Ordnung. Sobald sie aber im ACP bearbeitet wurden (eigentlich reicht es schon, sie unverändert abzuspeichern) schon kommt es zu diesem Fehler.
Offenbar haben die über das ACP abgespeicherten Templates etwas andere Zeilenumbrüche als die über XML importierten master-Templates.

Die modal-Templates werden in der global.php (#941-945) geladen.
PHP-Code:
$jsTemplates = array();
foreach (array(
'modal''modal_button') as $template) {
    eval('$jsTemplates["'.$template.'"] = "'.$templates->get($template10).'";');
    $jsTemplates[$template] = str_replace("\n""\\\n"addslashes($jsTemplates[$template]));


Wenn man die anderen Zeilenumbrüche herausfiltert, sollte es auch mit verändertem modal-Template funktionieren (hat es zumindest bei mir)
PHP-Code:
$jsTemplates = array();
foreach (array(
'modal''modal_button') as $template) {
     eval('$jsTemplates["'.$template.'"] = "'.$templates->get($template10).'";');
     $jsTemplates[$template] = str_replace(array("\n","\r"), array("\\\n"""), addslashes($jsTemplates[$template]));

Zitieren
#3
doylecc, kannst du das samt Fix an die Entwickler melden?
[Bild: banner.png]

Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Zitieren
#4
(27.03.2019, 19:03)StefanT schrieb: doylecc, kannst du das samt Fix an die Entwickler melden?

Ich denke ja.  Wink
https://community.mybb.com/thread-222491.html
Zitieren
#5
Vielen Dank. Smile
[Bild: banner.png]

Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Zitieren


Möglicherweise verwandte Themen…
Thema Verfasser Antworten Ansichten Letzter Beitrag
  [NG] Sortierung in der Modal Box MrBrechreiz 0 1.500 04.07.2017, 19:05
Letzter Beitrag: MrBrechreiz