Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.

#1 13. Februar 2012 14:48

Tantalus
hat von CMS/ms gehört
Registriert: 13. Februar 2012
Beiträge: 5

Eigenes Modul: Speichern, ob WYSIWYG Editor an oder aus war

Hallo,

wenn man in einem eigenen Modul einen WYSIWYG-Editor einfügt, steht später in der Benutzeroberfläche unterhalb des Editors eine Checkbox mit der Beschriftung "WYSIWYG aktivieren/deaktivieren" zur Verfügung. Ich würde mir gerne in meinem Modul für jedes Objekt merken, ob der Editor an oder aus. Bei der nächsten Bearbeitung soll der Zustand dann wiederhergestellt werden.

Gibt es da einen vorgesehenen Weg oder muss ich mir da selbst was zurechtfummeln? Ich habe mir verschiedene andere Module angeschaut (z.B. das News-Modul), doch da wird der Wert offenbar nicht gespeichert.

Wenn ich den Wert irgendwo bekommen kann und ich weiß, wo ich den dann wieder reinschieben kann, ist das speichern in der DB kein Problem...

So erzeuge ich die Textarea im Modul:

$this->smarty->assign('inputcode', $this->CreateTextArea(true, $id, $code, 'code'));

Beitrag geändert von Tantalus (13. Februar 2012 14:50)

Offline

#2 13. Februar 2012 15:29

NaN
Moderator
Ort: Halle (Saale)
Registriert: 09. November 2010
Beiträge: 4.437

Re: Eigenes Modul: Speichern, ob WYSIWYG Editor an oder aus war

... $this->CreateTextArea(true, $id, $code, 'code'));

Das true ist entscheidend, ob ein WYSIWYG Editor angezeigt wird, oder nicht. D.h. hier müsstest Du zusätzlich zum Inhalt noch den Status in der DB speichern. Das geht z.B. über eine extra Checkbox (wie bei den Seiten oder den globalen Inhalten). Klickt man drauf, wird die Seite neu geladen. Derweil wird auf dem Server in Deinem Script einfach geprüft, ob diese Checkbox gesetzt ist, oder nicht und dann entweder true oder false angegeben. Gleichzeitig muss aber auch beim Speichern nach dieser Checkbox geprüft werden und dann entweder 1 oder 0 in der DB für diesen Inhalt gespeichert werden. Analog dazu muss beim Laden des Inhalts ebenfalls dieses Feld aus der DB geladen und geprüft werden.

Eigentlich recht simple wink


Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)

Offline

#3 13. Februar 2012 17:52

Tantalus
hat von CMS/ms gehört
Registriert: 13. Februar 2012
Beiträge: 5

Re: Eigenes Modul: Speichern, ob WYSIWYG Editor an oder aus war

Hallo,

ja, steht der Wert auf "false", taucht die Checkbox für den WYSIWYG nicht mehr auf. Auch ist es nicht ganz trivial, die richtige Checkbox für den richtigen Editor zu finden. Die werden leider irgendwie durchnummeriert.

wysiwyg.png

Ich habe wie man sieht TinyMCE im Einsatz. Wird die Checkbox von diesem erzeugt? Wenn man sie anklickt, wechselt der Editor AdHoc zwischen einer normalen Textarea und dem Editor hin und her. Ich kann jetzt natürlich noch eine weitere Checkbox einbauen, allerdings versteht das am Ende kein Benutzer. Ich würde die vorhandene gerne nutzen. Ich hatte gehofft, es gibt hier einen einfachen Weg. Wenn ich den Status ausgelesen habe, weiß ich aber auch noch nicht, wie ich beim nächsten mal die Textarea wieder anzeige, mit der Möglichkeit wieder zurück zum WYSIWYG zu wechseln (wie gesagt, übergibt man bei CreateTextArea als ersten Parameter nen "false", wird die Checkbox nicht angezeigt).

Beitrag geändert von Tantalus (13. Februar 2012 17:52)

Offline

#4 13. Februar 2012 18:16

NaN
Moderator
Ort: Halle (Saale)
Registriert: 09. November 2010
Beiträge: 4.437

Re: Eigenes Modul: Speichern, ob WYSIWYG Editor an oder aus war

Diese Checkbox wird vom TinyMCE generiert. Sie dient eigentlich nur zum Umschalten im Browser. Außerdem hat sie kein name-Attribut und wird daher beim Absenden des Formulars nicht mit übertragen und kann somit auch leider nicht gespeichert werden.

Um eine zusätzliche Checkbox wirst Du da nicht herumkommen.


Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)

Offline

#5 14. Februar 2012 02:23

mike-r
arbeitet mit CMS/ms
Registriert: 21. Dezember 2010
Beiträge: 898
Webseite

Re: Eigenes Modul: Speichern, ob WYSIWYG Editor an oder aus war

NaN schrieb:

Außerdem hat sie kein name-Attribut und wird daher beim Absenden des Formulars nicht mit übertragen und kann somit auch leider nicht gespeichert werden.

Schreit nach nem Feature-request. Ich kenn mich mit sowas nicht aus, aber finde die Problemstellung interessant.

Apropos Problemstellung; @Tantalus den wysiwig bei den entsprechenden Feldern ganz abstellen ist keine Lösung? Ich kann mir schlecht vorstellen, dass "Benutzer" von dem Button irgendeinen Mehrwert hat. Bzw. diesen erkennt.


Unablässige Tools für's Webdevelopement/ Fehlerfindung: CSS Validierungsservice, Bildschirmlineal, Firebug, Tidy, Deutsche CSS-Referenz

Offline

#6 14. Februar 2012 14:11

NaN
Moderator
Ort: Halle (Saale)
Registriert: 09. November 2010
Beiträge: 4.437

Re: Eigenes Modul: Speichern, ob WYSIWYG Editor an oder aus war

Schreit nach nem Feature-request.

Ich werd' mich hüten!
Dazu müsste nämlich zusätzlich eine Änderung am Core von CMSms vorgenommen werden.
Und - Gott bewahre! - keine Kritik oder Änderungsvorschläge an irgendetwas wo CG seine Finger im Spiel hat!


Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)

Offline

#7 14. Februar 2012 16:23

Tantalus
hat von CMS/ms gehört
Registriert: 13. Februar 2012
Beiträge: 5

Re: Eigenes Modul: Speichern, ob WYSIWYG Editor an oder aus war

Hallo,

erstmal danke für die Antworten. Wenn der Knopf TinyMCE spezifisch ist, ist das ja irgendwie auch etwas doof. Man könnte den Knopf natürlich via JS irgendwie wiederfinden und den Wert mitsenden. Das ganze scheitert dann aber spätestens beim setzen des Wertes nach beim erneuten editieren.

Ich bin auf die Idee gekommen, weil es ab und zu leider das Problem gibt, dass der WYSIWYG kompliziertere Konstrukte in HTML "korrigiert" (besser: zerstört).

Der Benutzer kommt damit schon klar (ich sehe das aktuell), zumindest sind diese meist so findig sich mehr oder weniger korrektes HTML zusammen zu kopieren. Da hilft die Deaktivierung von WYSIWYG auch oft bei der Problembewältigung.

Bei den globalen Inhaltsblöcken hat man übrigens auch die Möglichkeit WYSIWYG an und abzuschalten. Da gibt es offebar auch zwei Knöpfe. Verwendet man den oberen, wird die Änderung gespeichert, wenn man "Absenden" drückt. Die Seite lädt dann einmal neu. Verwendet man den unteren (von TinyMCE), wechselt der Editor ohne neu laden hin und her, speichert die Änderung aber nicht ab.

Irgendwie etwas konfus und undurchsichtig. Hab auch etwas gebraucht, um das ganze zu verstehen. Warscheinlich wäre es da wirklich Zeit für ein Feature-Request.

Das einfachste bei gewünschten Features ist meistens, man baut das ganze selbst ein, baut nen Patch und schickts dem Entwicklerteam. So landen sinnvolle Sachen meist schnell im offiziellen Quelltext.

Beitrag geändert von Tantalus (14. Februar 2012 16:24)

Offline