Problem nach Update auf 2.12.2 mit Modul Code V3.0.5

LudwigSt

Quote from: jacobi22 on August 02, 2019, 03:55:17 PM
Mußt du den Code erneut bearbeiten, ist die Ersetzung erneut zu verwenden. Sonst gehts wieder schief.
Ich kann doch nicht bei jedem mal speichern diese textarea wieder anpassen, so oft wie ich ändere und speichere, ist das vollkommen inpraktikabel.
Arbeite im Moment mit Brackets oder Notepad++ und kopiere die Änderungen dann mit PHPMyAdmin direkt in die Datenbank. Geht auch, ist aber etwas lästig.
LG Ludwig

Wissen ist Macht - aber nix wissen macht auch nix.

dbs

Nur in 2.12.2 gibt es in der modify.htt dieses JS welches nach textarea schaut.
Vielleicht sollte man das nochmal überarbeiten. ZB könnte dort nach textarea + einzigartigen string geschaut werden?
[url="https://onkel-franky.de"]https://onkel-franky.de[/url]

Gast

QuoteAlso mir persönlich wäre es am liebsten, wenn es einen Editor gäbe, bei dem man html und php gemischt eingeben könnte. #Wunschkonzert

Sollte ab WB 2.12.2 aber gehen, z.b. nach diesem Schema hier:

echo '<h2>','Preisanfrage-Formular','</h2>';
?>
Das ist eine Zeile mit reinem HTML<br />
<?php 
echo " und nun wieder PHP-Code";


P.S.: das Problem mit dem </textarea> bleibt aber  ;-)

Gast

Nur zur Klarstellung....
gespeichert wird der komplette Code in der Datenbank, der ist ja von der Syntax her korrekt.

Wenn du dann solch Falschausgabe hast, schau in das EditArea-Fenster, ganz unten, die zuletzt funktionierende Zeile ist noch okay, die nachfolgende hat das Problem. In deinem Fall wäre das diese Zeile

echo '</textarea>';

diese ersetzen wie oben angegeben mit

echo '&lt;/textarea&gt;';

dann speichern

Mußt du den Code erneut bearbeiten, ist die Ersetzung erneut zu verwenden. Sonst gehts wieder schief.
Solltest du am Probieren sein, ist es besser, wenn man den Code direkt in der Datenbank ändert und im Backend die Seite nur neu läd, um zu kontrollieren

Für Dietmar:
Einfachste Möglichkeit wäre wohl, den POST zu bearbeiten und < bzw > zu ersetzen oder auch nur </textarea>. Bisher habe ich noch keinen anderen Tag gefunden, der da Quer schlägt.
In meinen Modulen verwende ich für die Template-Editoren auch Editarea, aber mit einer anderen Einbindung plus Übergabe an Twig. Ich meine, es wäre mir aufgefallen, wenn es da auch schief läuft, denn da sind schon recht komplexe Templates dabei.


QuoteDas habe ich jetzt über PHPMyAdmin so geändert, da ich ja den Editor nicht benutzen kann. Ergebnis: Code wird im Editorfenster normal angezeigt, aber nach Abspeichern ist der gesamte Code bis auf die ersten Zeilen gelöscht und weg. Also leider keine Lösung.

Deutet auf einen Fehler im Code hin. Ich zeig dir gern ein Video, das es funktioniert ;-)

LudwigSt

Quote from: Luisehahne on August 02, 2019, 02:16:26 PM
Meine ersten Gedanken sind, ein HTML Template anlegen und im Code Modul aufrufen, Damit lassen sich sogar Variablen für Platzhalter übergeben.
Also mir persönlich wäre es am liebsten, wenn es einen Editor gäbe, bei dem man html und php gemischt eingeben könnte. #Wunschkonzert  :-D
LG Ludwig

Wissen ist Macht - aber nix wissen macht auch nix.

LudwigSt

Quote from: jacobi22 on August 02, 2019, 02:11:41 PM
Maskiere die gesperrten Tags, z.b. so:

&lt;textarea&gt;
= <textarea>

Das habe ich jetzt über PHPMyAdmin so geändert, da ich ja den Editor nicht benutzen kann. Ergebnis: Code wird im Editorfenster normal angezeigt, aber nach Abspeichern ist der gesamte Code bis auf die ersten Zeilen gelöscht und weg. Also leider keine Lösung.
LG Ludwig

Wissen ist Macht - aber nix wissen macht auch nix.

Luisehahne

Meine ersten Gedanken sind, ein HTML Template anlegen und im Code Modul aufrufen, Damit lassen sich sogar Variablen für Platzhalter übergeben.

Dietmar
Note: Once the code has been generated, it is easy to debug. It's not a bug, it's a feature!

Gast

Maskiere die gesperrten Tags, z.b. so:

&lt;textarea&gt;
= <textarea>

bzw der Schließer

&lt;/textarea&gt;
= </textarea>

&lt; = <
&gt; = >

Luisehahne

Das Problem, das Code Modul ist nicht dafür gedacht HTML Code auszugeben. Alle Scripte im Codemodul werden in ein textarea eingefügt und per eval ausgeführt. Und das erzeugt bei der Ausgabe ungültige verschachtelte textarea Aufrufe.

Quoteecho '<p>';
                  echo '<label class="w3-text-grey">','Nachricht','</label>';
                  echo '<textarea class="w3-input w3-border" style="resize:none" form="mail" id="text" name="text">','Ich habe Interesse und bitte um ein Angebot.';
                  echo '</textarea>';
               echo '</p>';

Fortsetzung folgt...

Dietmar
Note: Once the code has been generated, it is easy to debug. It's not a bug, it's a feature!

LudwigSt

So hatte ich das ursprünglich. Dann dachte ich, der Fehler läge darin begründet und habe fein säuberlich jede Zeile mit einem "echo" versehen - Die Arbeit hätte ich mir sparen können...

Gebt ihr dann hier bitte Bescheid, wenn das gefixt ist? Danke!
LG Ludwig

Wissen ist Macht - aber nix wissen macht auch nix.

dbs

Bis Dietmar das gemacht könntest du deinen Code ändern.
Statt jede Zeile mit echo zu beginnen sammelst du die Zeilen.

$form = 'deine erste zeile mit dem <style> zeug';
$form .= 'jede weitere zeile hat ein Punkt vor dem = und fügt es zu der vorhergehenden Zeile dazu';
$form .= 'dritte zeile usw ...';

echo $form;  // hier gibt er nun alle gesammelten Zeilen aus


$form kann auch $keksdose heißen
[url="https://onkel-franky.de"]https://onkel-franky.de[/url]

Luisehahne

Note: Once the code has been generated, it is easy to debug. It's not a bug, it's a feature!

LudwigSt

Ja, genau dort steigt er auch bei mir aus. Da wird wohl jemand "Hand anlegen" müssen?
LG Ludwig

Wissen ist Macht - aber nix wissen macht auch nix.

dbs

Kann ich bestätigen. An dieser Stelle scheint er es wörtlich zu nehmen:
echo '</textarea>';
[url="https://onkel-franky.de"]https://onkel-franky.de[/url]

LudwigSt

Hallo WB'ler,

seit dem Update von 2.12.0 auf 2.12.2 habe ich ein Problem mit einem Formular, daß mir das Bearbeitungsfenster zerschießt.

Das Code-Modul ist bei mir in der WB 2.12.0 V3.0.2
und in der 2.12.2 V3.0.5.

Daher vermute ich den Fehler dort. Es ist mir nicht möglich, die Seite im Backend zu bearbeiten. Der Quelltext steht ausserhalb des Bearbeitungsfensters zwischen "Editor an- ausschalten" und "Speichern". Der Speichern - Button ist ohne Funktion.

Die Seite sieht im Frontend ganz normal aus und das Formular arbeitet auch problemlos. Sobald ich den Teil mit dem Formular aus dem Quellcode lösche, tritt dieser Fehler nicht mehr auf.

Der Code des Formulares: echo '
        <style>
            fieldset{
      border: none;
    }
    label::after {
      content: "";
      display: block;
    }
   </style>
   ';
        echo '<div class="clearfix">','</div>';
        echo '<div class="w3-container w3-green w3-left-align w502">';
            echo '<h2>','Preisanfrage-Formular','</h2>';
        echo '</div>';
        echo '<form class="w3-margin-bottom w3-container w3-card-4 w3-left-align w50" id="mail" name="mail" action="/de/pages/mail.php" method="get">';

            echo '<br>';
           
                echo '<fieldset>';
echo '<p>';
echo '<label class="w3-text-grey">','Firma','</label>';
echo '<input class="w3-input w3-border" type="text" name="firma" id="firma" value="" required placeholder="Ihre Firma...">';
echo '</p>';
echo '<p>';
echo '<label class="w3-text-grey">','Name','</label>';
echo '<input class="w3-input w3-border" type="text" name="name" id="name" value="" required placeholder="Ihr Name...">';
echo '</p>';
echo '<p>';
echo '<label class="w3-text-grey">','Email','</label>';
echo '<input class="w3-input w3-border" type="email" name="mail" id="mail" value="" required placeholder="Ihre Email-Adresse...">';
echo '</p>';
echo '<p>';
echo '<label class="w3-text-grey">','Telefon','</label>';
echo '<input class="w3-input w3-border" type="tel" name="tel" id="tel" value="" required placeholder="Ihre Telefonnummer...">';
echo '</p>';

echo '<p>';
echo '<label class="w3-text-grey">','Betreff','</label>';
echo '<input class="w3-input w3-border" type="text" id="lnr" name="lnr" value="Preisanfrage '.$lagernr.'">';
               
echo '</p>';
echo '<p>';
echo '<label class="w3-text-grey">','Nachricht','</label>';
echo '<textarea class="w3-input w3-border" style="resize:none" form="mail" id="text" name="text">','Ich habe Interesse und bitte um ein Angebot.';
echo '</textarea>';
echo '</p>';
echo '<br />';

            echo '<div>';
                echo '<fieldset>';
                    echo '<input type="radio" id="nutzer" name="nutzer" value="gewerblicher Nutzer">','<label for="nutzer">',' gewerblicher Nutzer','</label>';
                    echo '<input type="radio" id="nutzer" name="nutzer" value="Händler">','<label for="nutzer">',' Händler','</label>';
                    echo '<input type="radio" id="nutzer" name="nutzer" value="privater_nutzer" disabled>','<label for="nutzer">',' privater Nutzer (kein Verkauf)','</label>';
                echo '</fieldset>';
            echo '</div>';

            echo '<div class="w3-row">';
                echo '<div>';
                    echo '<input id="dsgvo" class="w3-check" type="checkbox" required>';
                    echo '<label>','<u>','<a href="#">','Datenschutzerklärung','</a>','</u>',' gelesen und akzeptiert','</label>';
                    echo '<br />';
                    echo '<br />';
                echo '</div>';

            echo '</div>';
            echo '<p>','<button type="submit" class="w3-btn w3-padding w3-green" style="width:120px">','Absenden &nbsp; &#10095;','</button>','</p>';
            echo '</fieldset>';
        echo '</form>';


Kann das jemand verifizieren? Das ganze läuft in einer Testinstallation, die nicht öffentlich zugänglich ist, daher kann ich keinen Link beifügen.

Vielleicht liegt der Fehler auch im Forumlar. Falls jemand etwas findet, bin ich für jeden Hinweis dankbar.
LG Ludwig

Wissen ist Macht - aber nix wissen macht auch nix.