Problem nach Update auf 2.12.2 mit Modul Code V3.0.5

LudwigSt

LG Ludwig

Wissen ist Macht - aber nix wissen macht auch nix.

markherrmann

Das </textarea> Problem des Codemoduls hab ich mittlerweile recht simpel gelöst.
Maskieren war mir nix, weil bei erneutem Aufruf der Seite statt des htmlcodes wieder das entsprechende < oder > Zeichen stand.

Die für mich einfachste und lauffähige methode besteht darin textarea zu splitten.
aus echo '</textarea>'; wird echo '</text'.'area>';

LudwigSt

Quote from: dbs on August 04, 2019, 10:04:59 AM
Code2 hat mit gemischtem Code nichts zu tun.
Das kannst du nur im Code Modul bzw. CodeX von evaki aus dem Link testen.
- Verstehe.
Quote
Wozu braucht man einen 5000px hohen Editor?
Mehr als die aktuellen 400px sollte es aus Gründen der Übersicht schon sein.
Quote
Den Anfasser rechts unten hast du aber gesehen, oder? Damit geht es so groß du willst.
Nein, den habe ich nicht gesehen, den gibt es bei mir auch nicht im Code2-Modul. Hier im Post-reply Fenster habe ich ihn allerdings gefunden.
Quote
Was sind das für Formulare wo man ständig ran muss um sie zu verändern?
Das Formular ist doch nur eine kleiner Bestandteil der gesamten Seite. Das Formular steht, und da muß ich auch nicht wieder ran. Es schlummert jetzt in Manu's Template  (Y)
Aber der gesamte Code hat jede Menge if / elseif / else  und andere Schleifen, wo ich noch dran bin bis das Ganze richtig fertig ist. Wie gesagt, ist es eine Testinstallation. Ich baue die Seiten gerade alle um auf w3.css und möchte auch noch im Code selber einiges erweitern und verändern.
Quote
Und warum macht man das nicht im N++ und kopiert es dann rüber?
Ja, das mache ich ja auch notgedrungen. Habe ich auch bereits erwähnt, dass ich wegen der besseren Übersichtlichkeit das mit Brackets, Atom oder N++ mache. Der Nachteil ist, daß ich die Datei immer auch lokal abspeichern muß, damit die Farben angewandt werden und die Synthax-Prüfung klappt.
QuoteFragen über Fragen  :)
Frage ruhig, ich antworte gerne. Nur so kommen wir weiter  :-D
LG Ludwig

Wissen ist Macht - aber nix wissen macht auch nix.

dbs

Code2 hat mit gemischtem Code nichts zu tun.
Das kannst du nur im Code Modul bzw. CodeX von evaki aus dem Link testen.

Wozu braucht man einen 5000px hohen Editor?
Den Anfasser rechts unten hast du aber gesehen, oder? Damit geht es so groß du willst.

Was sind das für Formulare wo man ständig ran muss um sie zu verändern?
Und warum macht man das nicht im N++ und kopiert es dann rüber?
Fragen über Fragen  :)
[url="https://onkel-franky.de"]https://onkel-franky.de[/url]

LudwigSt

Bin jetzt einmal raus aus dem Backend und wieder rein. Und siehe da: es geht wieder. Der Code ist wieder da. ABER die Fenstergröße ist bei automatisch die selbe, wie bei große Box. Schade  :|

Und gemischten Code (html/php) kann ich immer noch nicht eingeben. Müßte ich dazu die Änderung machen, die hier https://forum.WebsiteBaker.org/index.php/topic,31485.msg220246.html#msg220246 beschrieben ist und von @dbs verlinkt wurde?
LG Ludwig

Wissen ist Macht - aber nix wissen macht auch nix.

LudwigSt

Ich habe sämtliche Verzeichnisse des Code2-Moduls durchgeschaut. Alle Dateien haben das gleiche Datum 12.12.18. Genau gleich, wie im herunter geladenen ZIP-Ornder des Moduls
LG Ludwig

Wissen ist Macht - aber nix wissen macht auch nix.

LudwigSt

JQMIGRATE: Migrate is installed, version 3.0.1 ist die einzige Meldung, die in der F12 Konsole steht.
LG Ludwig

Wissen ist Macht - aber nix wissen macht auch nix.

dbs

Das ist ja Mist. Du kannst dir sicher sein, dass es nicht am Modul liegt. Lange getestet und immer im Einsatz.
Findest du Meldungen im Errorlog oder mit F12 in der JS Console?
[url="https://onkel-franky.de"]https://onkel-franky.de[/url]

LudwigSt

Quote from: dbs on August 04, 2019, 09:16:57 AM
Hi, entweder liegts an deiner Berechtigung oder es ist tatsächlcih wa schief.
Du kannst aber das Modul upgraden trotz gleicher Versionsnummer. Inhalte sollten also erhalten bleiben.
Habe das Code2-Modul jetzt einmal aktualisiert und jetzt habe ich die Möglichkeit, automatisch für die Fenstergröße zu wählen. Allerdings ist der gesamte Inhalt im Backend verschwunden. In der Datenbank ist er aber wohl noch vorhanden. Allerdings kann ich nun in der Box überhaupt nichts mehr eingeben. Ich hatte vor, den Code aus der DB zu kopieren und dort einzufügen - geht aber nicht ^^ Habe dann ein 2. Mal aktualisiert, ist aber genauso geblieben: ich kann dort nichts eingeben.

Update: Habe eine komplett neue Seite angelegt und das Code2-Modul gewählt - auch hier keine Möglichkeit, etwas einzugeben.
LG Ludwig

Wissen ist Macht - aber nix wissen macht auch nix.

LudwigSt

Quote from: jacobi22 on August 03, 2019, 01:15:18 PM
bitte kopiere das Code-Beispiel 1:1 aus diesem Beitrag -> https://forum.websitebaker.org/index.php/topic,31553.msg220860.html#msg220860
in deine Code-Section
Das habe ich genauso rein kopiert. Copy & Paste ist ja auch nicht so schwer  :wink: Allerdings erhalte ich in der Tat die Fehlermeldung
QuoteThere was an uncatched exception
syntax error, unexpected 'ist' (T_STRING)
in line (3) of (/modules/code2/view.php(44) : eval()'d code):
- vielleicht stimmt mit meiner Version vom Modul etwas nicht (siehe vorherigen Post).

Hier passt etwas nicht zusammen. Du zitierst den Code von Manu und nur dieser bunte Code wird dann ins Code-Modul eingefügt. Der Rest, der im übrigen reiner HTML-Code, ggf mit Platzhaltern ist, gehört dann in das Template, wie von Manu beschrieben. Solch Template ist keine ausführbare Datei und PHP-Code wie z.B.
Code: [Select]
echo "</span>";
hat dort nichts zu suchen


@jacobi22 Hier hast du mich offenbar mißverstanden. Ich habe ca. 4-500 Zeilen PHP-Code in diesem Abschnitt. Ich habe lediglich den Teil mit dem Formular gelöscht und durch Manus Code ersetzt. Den HTML-Teil vom Formular habe ich in das Template eingefügt. Und zwar als html ohne diese echos. Der ganze andere PHP Code ist im Abschnitt verblieben. Zu diesem verbliebenen Code gehört auch die von mir erwähnte Zeile mit dem <span>. Die Seite funktioniert auch so einwandfrei. Nur wenn ich sie mit dem Code-Modul abspeichere, wird alles gelöscht ab Zeile 4 und das ist die Zeile mit dem <span>. Du sagtest doch, die Zeile die nach der zuletzt verbliebenen folgt, ist dafür verantwortlich, daß das Code-Modul ab da alles löscht, weil dort ein Fehler ist. Dort ist aber kein Fehler. Ich denke schon, daß es wichtig wäre zu wissen, warum sich das Code-Modul so verhält. Meinen PHP-Code habe ich jetzt in einen Code2-Abschnitt eingefügt und den Code-Abschnitt einfach gelöscht. Das ist für mich die Lösung, aber nicht für die Allgemeinheit.
LG Ludwig

Wissen ist Macht - aber nix wissen macht auch nix.

dbs

Hi, entweder liegts an deiner Berechtigung oder es ist tatsächlcih wa schief.
Du kannst aber das Modul upgraden trotz gleicher Versionsnummer. Inhalte sollten also erhalten bleiben.

Hast du hier auch mal reingeschaut? Das Thema Core Modul Code und was darin möglich sein sollte hatten wir schon öfter.
https://forum.WebsiteBaker.org/index.php/topic,31485.msg220246.html#msg220246
[url="https://onkel-franky.de"]https://onkel-franky.de[/url]

LudwigSt

Quote from: dbs on August 03, 2019, 12:37:31 PM
Quoteda bleibt nur noch das Code2-Modul und das ist auch nicht ideal. Das Fenster ist zu klein und zu unübersichtlich.
Das musst du mir mal erklären. Da gibt es 3 Modi: klein, groß, automatisch.
Habe gerade nachgesehen, welche Version ich von dem Code2-Modul habe: es ist die 2.2.17. Das ist doch die neueste, oder nicht? Bei mir gibt es nämlich kein automatisch für die Fenstergröße der Box. Ich habe lediglich klein oder groß. Ausserdem habe ich in der release history im Downloadbereich gesehen: - add checkbox to disable highlighting for performance reasons - auch diese Checkbox fehlt bei mir. Stimmt da irgendetwas nicht???
LG Ludwig

Wissen ist Macht - aber nix wissen macht auch nix.

Gast

Quote from: LudwigSt on August 03, 2019, 08:56:30 AM
@jacobi22 hatte erwähnt, daß es ab 2.12.2 die Möglichkeit geben sollte, php und html gemischt im Editorfenster einzugeben. Ich habe das mit dem WYSIWYG-Editor und auch mit dem Code-Modul versucht, aber bei beiden geht es nicht. Oder habe ich da etwas falsch verstanden?

bitte kopiere das Code-Beispiel 1:1 aus diesem Beitrag -> https://forum.websitebaker.org/index.php/topic,31553.msg220860.html#msg220860
in deine Code-Section

Zeile 1 ist reiner PHP-Code, Zeile 2 der Schließer für den ersten PHP-Code-Abschnitt, Zeile 3 ist dann reiner HTML-Code. brauchst du darin dann PHP-Code, muß er in <?php und ?> eingeschlossen werden.
Zeile 4 ist dann der Öffner für einen neuen PHP-Code-Abschnitt

P.S.: jede Zeile Code, die ich hier im Forum veröffentliche, ist vorher getestet, von daher fällt es mir schwer, ein "geht nicht" zu akzeptieren

QuoteIch muss meinen letzten Post revidieren. Der Code funktioniert zwar, speichere ich ihn aber mit dem Code-Modul erneut ab, wird bis auf die ersten 3 Zeilen alles gelöscht. In der 4. Zeile steht

Hier passt etwas nicht zusammen. Du zitierst den Code von Manu und nur dieser bunte Code wird dann ins Code-Modul eingefügt. Der Rest, der im übrigen reiner HTML-Code, ggf mit Platzhaltern ist, gehört dann in das Template, wie von Manu beschrieben. Solch Template ist keine ausführbare Datei und PHP-Code wie z.B.
echo "</span>";
hat dort nichts zu suchen

Und noch zum Code²-Modul... meines Wissens konnte das Code² nicht diesen Code-Mix, den ich oben in diesem Beitrag angesprochen habe, sondern immer nur einen Code-Typ pro Abschnitt, entweder PHP oder HTML oder JS.
Allerdings habe ich, mangels bedarf, auch nicht die neueren Versionen getestet, mag sein, das sich dort auch schon etwas verändert hat

Quote<script>
    elm = document.querySelector("textarea");
    id  = elm.id;
</script>

ist m.E. nach kurzem Überfliegen ein Code, der in der aktuellen Form nichts (mehr) tut. Im Zusammenhang mit der auskommentierten Zeile darunter diente es wohl der Ermittlung der ID des Textarea-Fields in der Umbauphase des Moduls. Da sollte aber Dietmar auch schnell Einspruch einlegen können, wenn ich da falsch liege.


dbs

Quoteda bleibt nur noch das Code2-Modul und das ist auch nicht ideal. Das Fenster ist zu klein und zu unübersichtlich.
Das musst du mir mal erklären. Da gibt es 3 Modi: klein, groß, automatisch.
Warum du dich noch mit dem Code Modul abmühst versteh ich nicht.  :)
[url="https://onkel-franky.de"]https://onkel-franky.de[/url]

LudwigSt

Ich muss meinen letzten Post revidieren. Der Code funktioniert zwar, speichere ich ihn aber mit dem Code-Modul erneut ab, wird bis auf die ersten 3 Zeilen alles gelöscht. In der 4. Zeile steht echo "</span>"; und daran ist doch nichts verkehrt.
LG Ludwig

Wissen ist Macht - aber nix wissen macht auch nix.

LudwigSt

Quote from: DarkViper on August 02, 2019, 04:55:14 PM

folgender Code ist dann der Teil, der im Code-Modul eingegeben wird:

$sTemplateFile 
$GLOBALS['oReg']->TemplatePath.'forms/PriceRequestForm.tpl';
if (
is_readable($sTemplateFile)) {
    
$sContent file_get_contents($sTemplateFile);
    print 
str_replace(['{{ACTION_LINK}}''{{LAGER_NUMMER}}'], [$GLOBALS['oReg']->AppUrl.'de/pages/mail.php]'$lagernr], $sContent);
}

So sollte es problemlos funktionieren. Evt. muß noch der Pfad zum Template und/oder der Action-Link angepasst werden.

Viel Glück,
Manuela

Ja, das haut hin - danke. Allerdings finde ich die ganze Aktion recht umständlich, zumal es sich hier lediglich um die Ausgabe einer <textarea> handelt. Bei der alten Version vom Modul Code fehlt das Skript <script>
    elm = document.querySelector("textarea");
    id  = elm.id;
</script>


Ist das denn wirklich notwendig? Ich kenne mich mit JavaScript nicht wirklich aus, um das beurteilen zu können. Aber mit der Vorversion ging es doch auch?

@jacobi22 hatte erwähnt, daß es ab 2.12.2 die Möglichkeit geben sollte, php und html gemischt im Editorfenster einzugeben. Ich habe das mit dem WYSIWYG-Editor und auch mit dem Code-Modul versucht, aber bei beiden geht es nicht. Oder habe ich da etwas falsch verstanden?
LG Ludwig

Wissen ist Macht - aber nix wissen macht auch nix.

Gast

Wenn du versiert genug bist (was ich deinen Antworten mal entnehme), sollte die Möglichkeit von Manu aber nahezu ideal für dich sein. Ein Unterverzeichnis mehr im Templateordner und selbstbeschreibende Dateinamen würde ich noch machen.

Luisehahne

Langsam kommen wir der Sache näher.
Wenn ich das richtig verstehe brauchst du ein neues Modul. Eine Liste mit Artikelnummer und Beschreibung und einem Link zu dem Formular mit Betreff "Preisanfrage für ArtikelNr". ArtikelNr ist die aus der Liste.

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

LudwigSt

Da hat @jacobi22 Recht, ich arbeite häufig mit dynamischen Feldern, die übergeben werden. Das zum Einen und zum Anderen fehlen da so einige für mich zumindest wichtige Sachen, z. B.  was die html5 Form Elemente anbelangt. Mir sind beide zu unflexibel. Ich möchte mein Formular so, wie ich es haben will, und möchte mich nicht auf das beschränken, was diese Module hergeben. 

Den WYSIWYG-Editor kann ich schon nicht mehr benutzen, weil der alles mögliche selbständig löscht oder hinzufügt. Da am Code rumzubasteln, was beim nächsten Update dann wieder weg ist, bringt mir auch nichts. Das Code-Modul geht nun auch nicht mehr bei allem, da bleibt nur noch das Code2-Modul und das ist auch nicht ideal. Das Fenster ist zu klein und zu unübersichtlich. Es fehlt eine Such-Funktion und Suchen/Ersetzen. Es scheint ja wenige zu stören, was diese Editor-Module angeht, aber einige gibt es schon, wie man hier im Forum unschwer nachlesen kann. Aber ich will nicht meckern. Ich helfe mir dann halt mit externen Editoren. Jetzt weiß ich zumindest, woran es liegt.  :wink:
LG Ludwig

Wissen ist Macht - aber nix wissen macht auch nix.

Gast

Quote from: Luisehahne on August 02, 2019, 05:24:30 PM
Vielleicht kann mir jemand mal beantworten warum ein Formular nicht direkt mit dem Form Modul oder Miniform von Ruud erstellt wird.

weil es dort die gleiche Fummelei für einen Laien ist, etwas Dynamisches wie z.B. hier die Lagernummer zu übergeben.

Das Grundprinzip in diesem Fall: du hast eine Art Katalog mit z.b. 100 Items und ein gemeinsames Formular, dem übergibst du per Link die Item-Nummer und ggf noch andere Sachen, z.b. einen Titel, aber halt dynamisch

Gast

Quote from: DarkViper on August 02, 2019, 04:55:14 PM
Das Tauschen der Tags bringt nicht viel mehr als ein heilloses Durcheinander.
......
Viel Glück

wenn ich eine einzelne Zeile nicht kopieren kann, braucht es bei 100 Zeilen wirklich VIEL GLÜCK  :-D

P.S.: ich bin raus

Luisehahne

Das das mit dem Code modul überarbeitet werden sollte, steht ausser frage.
Was haltet ihr davon als Lösung ein Droplet anzulegen. Dort kannst du HTML und PHP und Javascript mischen. Den Code in ob_start einbinden und als String zurückgeben. Beispiele gibt es reichlich.

Vielleicht kann mir jemand mal beantworten warum ein Formular nicht direkt mit dem Form Modul oder Miniform von Ruud erstellt wird.

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

dbs

Alternativ kann man auch das Code2 Modul nehmen. Das macht keine Probleme.
[url="https://onkel-franky.de"]https://onkel-franky.de[/url]

DarkViper

Das Tauschen der Tags bringt nicht viel mehr als ein heilloses Durcheinander.
Der einfachste.. und vermutlich auch sinnvollste Weg ist, wie von Dietmar vorgeschlagen, die Verwendung eines Templates.
Um es einfacher zu halten, das Template evt. im Templateordner des benutzten Frontend-Templates ablegen.

Code (RequestForm.tpl) Select

<style>
    fieldset{ border: none; }
    label::after { content: ""; display: block; }
</style>
<div class="clearfix"></div>
<div class="w3-container w3-green w3-left-align w502">
    <h2>Preisanfrage-Formular</h2>
</div>
<form class="w3-margin-bottom w3-container w3-card-4 w3-left-align w50" id="mail" name="mail" action="{{ACTION_LINK}}" method="get">
    <br>
    <fieldset>
        <p>
            <label class="w3-text-grey">Firma</label>
            <input class="w3-input w3-border" type="text" name="firma" id="firma" value="" required placeholder="Ihre Firma...">
        </p>
        <p>
            <label class="w3-text-grey">Name</label>
            <input class="w3-input w3-border" type="text" name="name" id="name" value="" required placeholder="Ihr Name...">
        </p>
        <p>
            <label class="w3-text-grey">Email</label>
            <input class="w3-input w3-border" type="email" name="mail" id="mail" value="" required placeholder="Ihre Email-Adresse...">
        </p>
        <p>
            <label class="w3-text-grey">Telefon</label>
            <input class="w3-input w3-border" type="tel" name="tel" id="tel" value="" required placeholder="Ihre Telefonnummer...">
        </p>
        <p>
            <label class="w3-text-grey">Betreff</label>
            <input class="w3-input w3-border" type="text" id="lnr" name="lnr" value="Preisanfrage {{LAGER_NUMMER}}">
        </p>
        <p>
            <label class="w3-text-grey">Nachricht</label>
            <textarea class="w3-input w3-border" style="resize:none" form="mail" id="text" name="text">
Ich habe Interesse und bitte um ein Angebot.
            </textarea>
        </p>
        <br>
        <div>
            <fieldset>
                <input type="radio" id="nutzer" name="nutzer" value="gewerblicher Nutzer">
                <label for="nutzer"> gewerblicher Nutzer</label>
                <input type="radio" id="nutzer" name="nutzer" value="Händler">
                <label for="nutzer"> Händler</label>
                <input type="radio" id="nutzer" name="nutzer" value="privater_nutzer" disabled>
                <label for="nutzer"> privater Nutzer (kein Verkauf)</label>
            </fieldset>
        </div>
        <div class="w3-row">
            <div>
                <input id="dsgvo" class="w3-check" type="checkbox" required>
                <label><u><a href="#">','Datenschutzerklärung</a></u> gelesen und akzeptiert</label>
                <br><br>
            </div>
        </div>
        <p><button type="submit" class="w3-btn w3-padding w3-green" style="width:120px">Absenden &nbsp; &#10095;</button></p>
    </fieldset>
</form>

folgender Code ist dann der Teil, der im Code-Modul eingegeben wird:

$sTemplateFile 
$GLOBALS['oReg']->TemplatePath.'forms/PriceRequestForm.tpl';
if (
is_readable($sTemplateFile)) {
    
$sContent file_get_contents($sTemplateFile);
    print 
str_replace(['{{ACTION_LINK}}''{{LAGER_NUMMER}}'], [$GLOBALS['oReg']->AppUrl.'de/pages/mail.php]'$lagernr], $sContent);
}


So sollte es problemlos funktionieren. Evt. muß noch der Pfad zum Template und/oder der Action-Link angepasst werden.

Viel Glück,
Manuela
[url=http://www.youtube.com/watch?v=tmzDAz6ZvFQ]Der blaue Planet[/url] - er ist nicht unser Eigentum - wir haben ihn nur von unseren Nachkommen geliehen[br]
[i]"You have to take the men as they are... but you can not leave them like that !" :-P [/i]
[i]Das tägliche Stoßgebet: [b]Oh Herr, wirf Hirn vom Himmel ![/b][/i]

LudwigSt

Quote from: jacobi22 on August 02, 2019, 04:00:40 PM

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

Womit sollte das gehen? Mit dem Code- oder dem WYSIWYG-Editor?
LG Ludwig

Wissen ist Macht - aber nix wissen macht auch nix.