WBCE CMS – Way Better Content Editing.
You are not logged in.
Dies ist eine Implementierung des CodeMirror Syntaxhighlighters für WBCE.
https://codemirror.net/5/demo/theme.html
Es ist gedacht als Ersatz für die in die Jahre gekommene EditArea Implementierung.
Diese lädt sehr langsam und teilweise bricht sie zusammen.
CodeMirror auf der anderen Seite ist sehr flink, nicht so überladen und tut den Job.
Das Modul selbst ersetzt die EditArea überall dort wo die EditArea über die Funktion registerEditArea() eingebunden wurde (manche Module nutzen zwar die EditArea aber haben einen eigenen Einbindungsmechanismus).
Es reicht: Das Modul hochladen und z.B. im Droplets Modul wird die EditArea durch CodeMirror ersetzt. Ebenfalls die WYSIWYG Abschnitte, falls kein CKEditor ausgewählt wurde.
Ich habe zusätzlich ein AdminTool gemacht (siehe Screenshot), über den ein Theme, die Schriftgröße und ein paar Fonts ausgewählt werden können. Die Auswahl betrifft dann sämtliche CodeMirror instanzen.
CodeMirror wird im nächsten Release fest mit WBCE ausgeliefert.
Testet euch also bitte durch das Tool und falls ihr EditArea oder eigene CodeMirror Implementierungen hattet und Hilfe beim Umstieg auf dieses Tool braucht, lasst mich wissen. Vielleicht lassen sich dadurch einige Redundanzen im WBCE Installationspaket reduzieren.
Technisches
Die alte Funktion registerEditArea() dient nun lediglich als "Fallback", um alte EditArea Instanzen abzufangen.
Die neue Funktion heißt registerCodeMirror() .
Es gibt 3 Parameter:
function registerCodeMirror(
$id_attr = 'code_area', // <textarea id=""> id-attribute
$syntax = 'php',
$options = []
)
Der dritte Parameter ist ein Array und man kann da weitere Optionen mitgeben oder nicht.
Weil es als assoziatives Array umgesetzt wurde muss man auch nicht die Reihenfolge der darin enthaltenen Optionen berücksichtigen und beim Aufruf nur die mitgeben die man braucht.
Die momentanen Default-Optionen die zur Verfügung stehen (ausbaufähig), sind:
$defaults = [
'readOnly' => false,
'lineNumbers' => true,
'foldGutter' => true,
'lineWrapping' => true,
'lineHeight' => '150%',
'panel' => '' // NEXT: integrate Panels https://codemirror.net/5/demo/panel.html
];
Es ist noch nicht alles komplett umgesetzt was ich mir vorgenommen habe aber ausreichend um zu testen und vielleicht eigene Module darauf vorzubereiten.
Falls ihr einen Switch brauch, verwendet:
if(defined('CODEMIRROR')){
// verwende registerCodeMirror(...
} else {
// verwende eigene Implementierung
}
Viel Spaß
und, Feedback wie immer willkommen.
Christian
// Edit: DL entfernt: Neue Version im nächsten Post.
Last edited by stefanek (11.02.2023 15:48:20)
“We can easily forgive a child who is afraid of the dark; the real tragedy of life is when men are afraid of the light.” ― Plato
Offline
florian
In diesem Update gibt es 2 neue Parameter:
'height' => '450',
'width' => 'null', // null means: dimension should not be changed.
Manchmal braucht man den Editor etwas höher oder weniger hoch.
Diese Einstellung gab es auch im alten EditArea, beim Fallback wird sie übernommen.
Gruß,
Christian
Edit: Neue Version hochgeladen.
Last edited by stefanek (16.01.2023 18:40:25)
“We can easily forgive a child who is afraid of the dark; the real tragedy of life is when men are afraid of the light.” ― Plato
Offline
Im Anhang ein Patch für den AFE 3.2.2
Dateien überspielen und checken.
Zusätzlich können jetzt im AFE weitere Dateitypen bearbeitet werden.
Neu dazu gekommen sind:
'twig',
'phtml',
'json',
'ini',
'sql',
'md',
'jquery',
diese werden in manchen Modulen gebraucht waren aber mit den Standardeinstellungen nicht zugänglich.
Christian
“We can easily forgive a child who is afraid of the dark; the real tragedy of life is when men are afraid of the light.” ― Plato
Offline
Getestet, funktioniert sehr gut
Code allein macht nicht glücklich. Jetzt spenden!
Offline
stefanek
Hab's mir noch nicht angeschaut, ist aber sicher eine feine Sache!
Ich habe eine Amazon-Wishlist. Oder spende an das Projekt.
Ich kann, wenn ich will, aber wer will, dass ich muss, kann mich mal
Offline
stefanek
Danke Bianka.
Ich hatte grad ein wenig Zeit mich wieder in PHP einzuarbeiten. Kleine Pausen sind manchmal auch gut für die Kreativität. :-)
Lass mich wissen, falls Du etwas findest das unbedingt anders gemacht werden sollte.
Gruß,
Christian
“We can easily forgive a child who is afraid of the dark; the real tragedy of life is when men are afraid of the light.” ― Plato
Offline
Getestet, funktioniert sehr gut
Wenn alles läuft, könntest Du bitte das Patch im AFE integrieren und im AOR austauschen?
Und gab es irgendwo ein GitHub Repo dafür? Falls ja, bitte auch dort unterbringen.
Danke!
Christian
“We can easily forgive a child who is afraid of the dark; the real tragedy of life is when men are afraid of the light.” ― Plato
Offline
Hm, jetzt sehe ich leider doch gerade noch, dass einige Notices erzeugt werden
2023-01-16T16:11:32+00:00 [Visitor Request] h ttp:/... /admin/admintools/tool.php?tool=CodeMirror_Config
2023-01-16T16:11:32+00:00 [Notice] /modules/CodeMirror_Config/initialize.php:[86] from /modules/CodeMirror_Config/tool.php:[43] registerEditArea "Undefined index: staticTheme"
2023-01-16T16:11:32+00:00 [Notice] /modules/CodeMirror_Config/initialize.php:[137] from /modules/CodeMirror_Config/tool.php:[43] registerEditArea "Undefined index: bgColor"
2023-01-16T16:11:39+00:00 [Visitor Request] ht tp:// ... /modules/cwsoft-addon-file-editor/code/action_handler.php?aid=38&fid=5&action=1
2023-01-16T16:11:39+00:00 [Notice] /modules/CodeMirror_Config/initialize.php:[86] from /modules/cwsoft-addon-file-editor/code/action_handler.php:[162] registerCodeMirror "Undefined index: staticTheme"
2023-01-16T16:11:39+00:00 [Notice] /modules/CodeMirror_Config/initialize.php:[137] from /modules/cwsoft-addon-file-editor/code/action_handler.php:[162] registerCodeMirror "Undefined index: bgColor"
Code allein macht nicht glücklich. Jetzt spenden!
Offline
stefanek
Danke,
wann kommen diese Notices?
Wenn Du in welchem Modul bist?
Nur im Zusammenhang mit dem AFE?
Christian
Last edited by stefanek (16.01.2023 18:33:15)
“We can easily forgive a child who is afraid of the dark; the real tragedy of life is when men are afraid of the light.” ― Plato
Offline
Sowohl, wenn ich im AFE bin und eine Code-Seite (zB PHP, JS...) bearbeite, als auch, wenn ich im CodeMirror Admintool bin.
Code allein macht nicht glücklich. Jetzt spenden!
Offline
stefanek
OK, danke fürs Feeback.
Habe ein Update mit Korrektur hier hochgeladen:
https://forum.wbce.org/viewtopic.php?pid=40955#p40955
(AFE Patch selbst ist davon nicht betroffen.)
Christian
“We can easily forgive a child who is afraid of the dark; the real tragedy of life is when men are afraid of the light.” ― Plato
Offline
florian
Problem behoben, danke
Code allein macht nicht glücklich. Jetzt spenden!
Offline
stefanek
gefällt!
da ich u.a. den AFE sehr häufig benutze, freue ich mich über das frische Aussehen. Keine Fehlermeldungen. runnin' smooth.
WBCE 1.6.1 - Fraggy 2.7.1 - PHP 8.1.16 - All-inkl
Ein Leben ohne Hund ist möglich, aber sinnlos
Online
stefanek
Danke für's Feedback.
Freut mich zu hören, dass es smooth läuft.
Das war mit der Hauptgrund für den Umstieg auf CodeMirror.
“We can easily forgive a child who is afraid of the dark; the real tragedy of life is when men are afraid of the light.” ― Plato
Offline
giz
gefällt!
da ich u.a. den AFE sehr häufig benutze, freue ich mich über das frische Aussehen. Keine Fehlermeldungen. runnin' smooth.
Kann ich bestätigen, feine Sache und vielen Dank
Hoster: ALL-INKL *** Grundsätzliche WBCE Konfig ***
WBCE: 1.5.4 • BE: 2.1.0 • PHP: 8.1.16 * 1. Projekt: FE: Simple responsive • BE: Argos * 2. Projekt: FE: hortal • BE: Argos * 3. Projekt: FE: WBCEZon • BE: Argos * 4. Projekt: FE: WBCETik • BE: Argos
Status Projekt 1-4: OK
Offline
stefanek
Danke Slugger.
Übrigens, das war nur möglich durch die Vorarbeit von NorHei, der einen Mechanismus in den Core eingebaut hat welcher ermöglicht Funktionen zu initialisieren, ohne dafür den Core umgraben zu müssen.
Ohne disem Mechanismus könnte es auch eine Kombination von Funktion und AdminTool gar nicht geben. WBCE ist in dieser Hinsicht sehr gut aufgestellt und anders als bei anderen Systemen sind bei uns Hybride Module möglich (AdmiTool, Snippet, Page-Modul in einem z.B.) .
Gruß,
Christian
“We can easily forgive a child who is afraid of the dark; the real tragedy of life is when men are afraid of the light.” ― Plato
Offline
Hallo,
ich habe das Update auf 1.6 gemacht. Jetzt taucht im Module Update Check folgende Zeile auf.
Modulname installiert verfügbar Status
CodeMirror Configurator 0.1.0 - Farbe LILA
Muss der CodeMirror Configurator noch in die Available Add-Ons for WBCE CMS aufgenommen werden?
Frohe Ostern
HPZaun
Offline
Muss der CodeMirror Configurator noch in die Available Add-Ons for WBCE CMS aufgenommen werden?
Danke für den Hinweis, das ist aber aus technischen Gründen nicht möglich
Code allein macht nicht glücklich. Jetzt spenden!
Offline
Pages: 1