WBCE CMS Forum

WBCE CMS – Way Better Content Editing.

Du bist nicht angemeldet.

#1 28.09.2019 18:53:22

hamburgerhans
Gesperrt

[Erledigt] Code Module

Was gab es eigentlich für einen Grund das Core-Modul aus wbce zu entfernen?
In unserem kleinen Anwenderkaffekränzchen wurde damals ziemlich schnell entschieden, das Modul weiter zu verwenden. Die neuen php-Versionen (7.x) eröffnen zudem eine wichtige Zusatzfunktion, die  unsere Kaffetrinker nutzen wollten, um flexibler arbeiten zu können. Einige wechseln von WB nach WBCE und umgekehrt. Da stellt sich dann u.U. die Frage. 
Die mir vorliegende ist die aus der letzten WB2.8.3, also Version 3.0.0, mit einer kleinen Änderung auf Version 3.0.1, und funktioniert im aktuellen WBCE..
Gruß, HH.

Beitrag geändert von florian (29.09.2019 17:51:50)

Offline

#2 28.09.2019 19:09:48

florian
Administrator

Re: [Erledigt] Code Module

Zum einen: es gibt code2, (siehe auch hier), das genau das selbe und noch mehr kann wie Code;  zum anderen: unvorsichtig konfiguriert, ist Code / Code2 ziemlich riskant (böswillige Backend-User könnten damit ziemlichen Schaden anrichten). Im Bedarfsfalle ist Code2 in 0,nix installiert, wobei dann natürlich die ZUgriffsrechte entsprechend angepasst werden sollten.

Beitrag geändert von florian (28.09.2019 19:14:20)


Code allein macht nicht glücklich. Jetzt spenden!

Offline

#3 29.09.2019 09:20:51

hamburgerhans
Gesperrt

Re: [Erledigt] Code Module

florian schrieb:

...das genau das selbe und noch mehr kann wie Code

Ich widerspreche Dir ungern, aber nun aus persönlicher, aber auch fachlicher Sicht - bin ja nicht nur Laie - , so ein wenig lernt man ja im Laufe der Zeit hinzu - einen Kommentar dazu.

Das code2-Module kann, abgesehen von der schönen Kommentarfunktion, programmtechnisch nicht mehr.
Es produziert unglücklicherweise in html5 obsoleten JS Type <script type="text/javascript">.
Was "früher" einmal sinnvoll war, muß es heute nicht unbedingt mehr sein - WB/WBCE haben sich auch weiterentwickelt. Das sehe ich beispielsweise im Bezug auch auf die Trennung von html, JS, php so. Mittlerweile könnte/kann man alle Sprachen (Codemix) per "eval()" innerhalb eines Abschnitts per php-Modul ausführen, Das bringt einem Programmierer erhebliche Vorteile.
Bei der Auführung von reinem php-Code ändert sich für den Benutzer nichts - da bleibt alles beim Alten, keine Umstellung oder irgendwelche unliebsamen Überraschungen. Nur der Programmierer, der um diesen Umstand weiß, kann mehr daraus machen.
Gruß, HH.

PS. Die im Topic angegebene Aussage "Die neuen php-Versionen (7.x) eröffnen zudem eine wichtige Zusatzfunktion," war eine "vom Hörensagen", weiß also nichts Konkretes. Ich vermute einen Irrtum, bezogen auf "eval()", den es aber schon seit v4 gibt, nun im vorliegenden code v3.0.1 aber genutzt werden kann.

Was gibt es zur Sicherheit zu sagen, was nicht schon bekannt ist?
Programmierer könnten für beide Code-Module spezielle Rechte vergeben. Beispielsweise kann der Administrator den fertigen Abschnitt ändern und speichern, der Anwender aber nur lesen und ihn einsetzen.

Beitrag geändert von hamburgerhans (29.09.2019 09:44:49)

Offline

#4 29.09.2019 09:42:50

florian
Administrator

Re: [Erledigt] Code Module

In Code2 kann wahlweise HTML-, Javascript- oder PHP-Syntax eingegeben und als solche ausgegeben werden (abgesehen von den Backend-Kommentaren).
Bei Code muss man, möchte man HTML- oder JS-Output, diesen stets als PHP eingeben.
D.h. in Code2 kannst Du den Typ HTML auswählen und dann ganz einfach

<p class="foo">bar</p>

eingeben. Oder

alert("foo"); 

im Typ JavaScript.
In Code muss man

echo "<p class=\"foo\">bar</p>"; 

eingeben, dito Javascript (oder halt mit ' und " jonglieren). Bau auf diese Weise mal eine Tabelle oder ein komplexes Formular.
Wer einfach nur ein HTML-Schnipsel ausgeben will, ohne sich einerseits mit den Restriktionen des CKE herumschlagen zu müssen und andererseits keine Lust hat, wegen eines vergessenen Hochkommas erstmal die ganze Seite lahmzulegen, für den ist Code2 nun doch deutlich komfortabler.

Das "type="javascript" - falls das für Dich/Euch ein No-Go ist: view.php, Zeile 79.

Ich sehe aber keinen Sinn darin, Code2 oder gar Code wieder in den Core aufzunehmen, da es sich eher an fortgeschrittene Benutzer*innen richtet, die damit umzugehen wissen, und für die es mithin kein Problem darstellen sollte, das Modul zu installieren und ggf. eigenen Bedürfnissen anzupassen.

Nachtrag: Die eval()-Diskussion möchte ich nicht führen, dafür reichen meine PHP-Kenntnisse nicht.

Beitrag geändert von florian (29.09.2019 09:44:31)


Code allein macht nicht glücklich. Jetzt spenden!

Offline

#5 29.09.2019 09:58:03

hamburgerhans
Gesperrt

Re: [Erledigt] Code Module

florian schrieb:

Bei Code muss man, möchte man HTML- oder JS-Output, diesen stets als PHP eingeben.
D.h. in Code2 kannst Du den Typ HTML auswählen und dann ganz einfach

Hier liegen die entscheidenden Unterschiede.
Man muß andere Sprachen nicht als php eingeben, man kann den Code ohne Umwege einsetzen,
Dadurch werden auch Laufzeitprobleme vermieden.
Zudem fallen getrennte Abschnitte dadurch weg.

Für den "normalen" Nutzer ändert sich nichts, garnichts, überhaupt nichts  big_smile Sie sehen es nicht, sie merken es nicht. big_smile
Nicht nur für fortgeschrittene Benutzer*innen ist es einfach ideal  auf die Abschnittsschnitzelei verzichten zu können.

Hatte nicht den Anspruch, daß es in den Core aufgenommen werden sollte.
Wer das Modul nutzen möchte, kann es aber erhalten.
Gruß, HH.

Beitrag geändert von hamburgerhans (29.09.2019 10:00:36)

Offline

#6 29.09.2019 10:04:14

florian
Administrator

Re: [Erledigt] Code Module

Hatte nicht den Anspruch, daß es in den Core aufgenommen werden sollte.

Dann steht das hier
attachment.php?item=1951&download=1
im falschen Forumthread.

Beitrag geändert von florian (29.09.2019 10:04:42)


Code allein macht nicht glücklich. Jetzt spenden!

Offline

#7 29.09.2019 10:11:25

hamburgerhans
Gesperrt

Re: [Erledigt] Code Module

Stimmt, hätte wohl in Modules, Snippets, Droplets rein sollen. Machst DU bitte?

Offline

#8 29.09.2019 10:12:10

florian
Administrator

Re: [Erledigt] Code Module

Kurz mal getestet.
Das aktuelle Modul "Code" 3.0.5 für WebsiteBaker ist zu WBCE nicht kompatibel.

Die Eingabe von HTML im Code-Modul in WB führt im Frontend  zu einem Syntaxfehler.

Beitrag geändert von florian (29.09.2019 10:14:19)


Code allein macht nicht glücklich. Jetzt spenden!

Offline

#9 29.09.2019 10:15:28

hamburgerhans
Gesperrt

Re: [Erledigt] Code Module

florian schrieb:

Das Modul "Code" für WebsiteBaker ist zu WBCE nicht kompatibel.

Da betrifft das WB-Modul für WB2.10 und folgende.
Nicht das mir vorliegende für WBCE, welches außerdem auf Sicherheitslücken geprüft wurde.

Ich kann Dir das Teil auch zusenden bzw. auf einem Kundenserver legen, falls Du es selbst ausprobieren möchtest.
Hier funktioniert ja - noch -  alles.
Gruß, HH

Beitrag geändert von hamburgerhans (29.09.2019 10:19:58)

Offline

#10 29.09.2019 10:29:09

florian
Administrator

Re: [Erledigt] Code Module

Ja, schick es mir bitte mal, dann schaue ich es mir bei Gelegenheit an.
Oder lad es einfach hier im Forum als Anhang hoch, dann können es auch andere mal testen.


Code allein macht nicht glücklich. Jetzt spenden!

Offline

#11 29.09.2019 10:33:18

hamburgerhans
Gesperrt

Re: [Erledigt] Code Module

Anhang: code_3.0.1_WBCE.zip

Für ein erstes Ausprobieren:

[== Mix: PHP, HTML, JS ==]
echo "<br>Text per php echo"; ?> 
<h3>ohne echo: Φ html ® im code-modul</h3>
<?php echo "Nun wieder Text per php echo"; ?>
<br>
<script>document.write("ohne echo: Ein javascript document.write");</script>
<h4>ohne echo html: Page modified_when</h4>
<?php 
global $database, $wb;
if (PAGE_ID>0) {
	$query=$database->query("SELECT modified_when FROM ".TABLE_PREFIX."pages where page_id=".PAGE_ID);
	$mod_details=$query->fetchRow();
	echo "This page was last modified on ".date("d/m/Y",$mod_details[0]). " at ".date("H:i",$mod_details[0]).".";
}
?><br><br>

Gruß, HH.


Anhang entfernt, siehe Testergebnis + Downloadlink weiter unten -florian.

Beitrag geändert von florian (29.09.2019 17:49:13)

Offline

#12 29.09.2019 13:24:41

bernd
Developer

Re: [Erledigt] Code Module

Tut net.
Läßt sich zwar anscheinend "problemlos" installieren. Schmeißt aber bei ersten Aufruf einen "fatal error" wg. nicht gefunderner Daten.
Kein Wunder, die DB-Tabelle wird bei der Installation gar nicht angelegt.
Kurzes gucken in den Code der install.php und ein gezieltes "$database->get_error()" ergibt:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '{FIELD_COLLATION} NOT NULL, PRIMARY KEY (`section_id`) )ENGINE=InnoDB DEFAULT CH' at line 1 

Och nö, da ist meir mein sonniger Sonntag wirklich zu schade um da weiter zu graben, bei einem Modul bei dem der Installer nach dem Motto "wird schon gut gehen" zusammengeklöppelt ist  roll


... nein in Europa verwenden wir beim Programmieren nicht € statt $ ...

Offline

#13 29.09.2019 13:35:48

bernd
Developer

Re: [Erledigt] Code Module

Nebenbei, dein obiges Beispiel sieht zwar im ersten Moment "magisch" aus, ist aber eigentlich nix besonderes, steht ja auch so im PHP-Manual bei eval():

php.net schrieb:

Es ist dennoch möglich den PHP-Modus durch die entsprechenden PHP-Tags zu verlassen und wieder zu betreten, z.B. 'echo "Im PHP-Modus!"; ?>Im HTML-Modus!<?php echo "Wieder im PHP-Modus!";'.


... nein in Europa verwenden wir beim Programmieren nicht € statt $ ...

Offline

#14 29.09.2019 14:54:14

hamburgerhans
Gesperrt

Re: [Erledigt] Code Module

bernd schrieb:

ist aber eigentlich nix besonderes, steht ja auch so im PHP-Manual bei eval():

Es hat auch niemand behauptet, daß es etwas besonderes ist.
Entscheidend war und bezeichnend ist, daß es in diesem Sinne von Anfang an nie genutzt werden konnte.
Damit darfst Du gerne den Entwicklern "auf die Füße treten".

Da ich das Modul zur Zeit nicht bei einem Hoster installiert habe, sondern nur auf dem mobilen WBCE, wo es schon mal funktioniert, gibt's da nicht's schlecht zu reden, zumal es ja für den Test freigegeben wurde. Also, was soll's?

Gruß, HH.

PS. Sicher ändere ich die Installationroutine auf "alte Methode", aber noch nicht an diesem Sonntag  smile

Beitrag geändert von hamburgerhans (29.09.2019 15:10:28)

Offline

#15 29.09.2019 15:32:00

hamburgerhans
Gesperrt

Re: [Erledigt] Code Module

So, nun juckte es doch in den Fingern.
Mit der Änderung der Installationsroutine ergibt sich kein neues Bild, also auch hiermit kein DB-Eintrag.
Verwunderlich, daß es sich ohne Meckern unter portablem wbce installieren läßt
Da das Modul aus WB2.8.3 stammt, und dort noch wie immer funktioniert, war ja auch Core, und auch neuere Versionen bei WB funktionieren, wenn auch nicht unter wbce funktionsfähig, stellt sich die Frage, warum es hier dieses Problem gibt.
Da schaue ich nochmal in der kommenden Woche drauf.
Ist es ausgeschlossen, daß wbce selbst den DB-Eintrag verhindert?
Gruß, HH.

Beitrag geändert von hamburgerhans (29.09.2019 15:35:24)

Offline

#16 29.09.2019 16:31:09

bernd
Developer

Re: [Erledigt] Code Module

hamburgerhans schrieb:

Ist es ausgeschlossen, daß wbce selbst den DB-Eintrag verhindert?
Gruß, HH.

Das kann mit Sicherheit ausgeschlossen werden.
Die DB-Query bzw. die Funktion SqlImport stolpert über den Platzhalter {FIELD_COLLATION} welcher ihr nicht bekannt ist und als Klartext in die Datenbankabfrage gepinselt wird, was natürlich zu einer ungültigen Syntax und damit zu einem db_error führt, was leider, wie bereits erwähnt, in der install.php nicht geprüft wird.

Warum das auf dem portablen WBCE zu installieren geht? Keine Ahnung und mir eigentlich nicht erklärlich, das dort die fehlerhafte DB-Query a die gleiche ist ?!?


... nein in Europa verwenden wir beim Programmieren nicht € statt $ ...

Offline

#17 29.09.2019 16:48:27

hamburgerhans
Gesperrt

Re: [Erledigt] Code Module

Platzhalter {FIELD_COLLATION}

Dachte ich auch, habe aber dann die "alten" WB Routinen genutzt, was auch nichts brachte.
Das vorliegende Modul, habe es soeben noch einmal angeschaut, läuft unter Wb2.8.3 ohne Probleme.
Warum es in WBCE nun Konflikte gibt, ist - mir - noch nicht klar. WB2.8.3-Module liefen bisher meist ohne  großes Nachbessern, wobei Korrekturen überwiegend php geschuldet waren. Mal schauen, vielleicht sind wir nächste Woche schlauer. Wollte auch noch Florians Ergebnis abwarten. Kann u.U. aber trotzdem etwas dauern.
Gruß, HH.

Beitrag geändert von hamburgerhans (29.09.2019 16:52:09)

Offline

#18 29.09.2019 17:22:49

florian
Administrator

Re: [Erledigt] Code Module

Wenn ich code_3.0.1_WBCE.zip versuche zu installieren, erhalte ich den selben Fehler.
In dieser Version ist eine install.php und eine install-struct.sql, was auf WebsiteBaker 2.10 hindeutet und mit WBCE nicht funktioniert.

Das Modul "Code without evil" (Eintrag im AOR, siehe auch Forenthread) lässt sich problemlos installieren.
Der oben gepostete Mischcode wird damit klaglos ausgeführt.


Code allein macht nicht glücklich. Jetzt spenden!

Offline

#19 29.09.2019 17:46:42

hamburgerhans
Gesperrt

Re: [Erledigt] Code Module

Du könntest den Topic komplett löschen.
Irgendwie kam mir die Angelegenheit bekannt vor, hatte ja schon einmal damit zu tun.
Bei der jetzigen Kontrolle sieht man exakt den Patch, den ich auch im Code-Modul angewandt habe.
Es wurde also alles schon einmal gelöst.
Ich vermute mal, daß ich meinen Anwenderkreis bzgl. dieses Code-Modules nicht richtig verstanden habe. Da gibt's leider keine Streicheleinheiten. Wer schlecht hört muß fühlen, oder kauft sich ein Hörgerät.

Da brauche ich mich um den Installationsfehler nicht mehr zu kümmern - erledigt.
Dank für die Rückmeldung Florian, thumb_up  hätte sonst erst in dieser Woche eine entsprechende Rückmeldung bekommen, nach möglicherweise einiger vergeudeter Stunden.
Gruß, HH.

Beitrag geändert von hamburgerhans (29.09.2019 17:49:25)

Offline

#20 29.09.2019 17:51:30

florian
Administrator

Re: [Erledigt] Code Module

Ich habe den Download oben entfernt und schließe dann dieses Thema, da sich die Angelegenheit zur allgemeinen Zufriedenheit geklärt hat.


Code allein macht nicht glücklich. Jetzt spenden!

Offline

Fußzeile des Forums

up