it-swarm.com.de

<customContent /> oder <field type = "editor">

Ich war daran interessiert, die Antwort auf diese Frage zu sehen, in der das <customContent /> - Tag erwähnt wird.

Ich bin noch nie darauf gestoßen, und ich habe Mühe, viele Informationen darüber zu finden.

  • Es scheint in Joomlas Modul-Tutorials nicht erwähnt zu werden
  • Eine Suche in Core-Dateien zeigt, dass nur von mod_custom verwendet werden kann

Wie es scheint, funktioniert es, wenn Sie es in das <extension> - Tag eines Moduls einfügen, aber nicht in einen anderen Abschnitt wie <config>. Anschließend wird ein WYSIWYG-Editor über allen anderen Parametern des Moduls erstellt. Es hat kein Etikett.

Im Gegensatz zu <field type="editor"> Werden hierdurch jedoch die Daten in einem eigenen Feld content der Tabelle _modules gespeichert, im Gegensatz zum JSON-String von params.

Die Tatsache, dass es ein eigenes Feld hat, legt für mich nahe, dass dies die beste Methode zum Hinzufügen eines Editors zu einem Modul ist, aber es scheint seltsam, dass es so selten erwähnt wird.

Beabsichtigt Joomla, diesen Tag zu verwenden? Ist es eine bewährte Methode?

4
Richard B

Nun, ich hatte gerade meinen ersten Fall, als mir die eine oder andere Verwendung relevant erscheint.

In der Datenbank sind die Felder von Joomla für die Module "params" und "content" vom Typ TEXT, dh maximal 65535 Zeichen. Wenn Sie versuchen, etwas darüber zu speichern, wird das Ende beschnitten. <customContent /> speichert den Inhalt in einem eigenen Feld ("content"), und der Feldtyp editor speichert ihn im Feld "params" des Moduls als Teil einer JSON-Zeichenfolge (die auch andere Felder für das Modul enthält).

Ein Client hat es gerade geschafft, seine Site zum Absturz zu bringen, indem er ein base64-Image in das Editorfeld eingefügt hat, dessen Größe länger als dieses Zeichenlimit war.

Wenn Sie das Feld "Inhalt" verwenden, werden nur die letzten Zeichen abgeschnitten, und Sie erhalten ein fehlerhaftes Bild, das Sie in den Editor eingeben und korrigieren müssen. Im Feld "params" von json bedeutet dies jedoch, dass der gespeicherte json beschädigt ist und Sie die Meldung "Fehler beim Dekodieren von JSON" erhalten, die Sie in die Datenbank eingeben müssen, um ihn zu sortieren. Es kann nicht im Admin behoben werden, da das Modul jetzt beschädigt ist.

Ich glaube nicht, dass es eine maximale Länge für den Editor-Feldtyp gibt, daher brechen beide diese Optionen aus Sicht des Kunden, aber tatsächlich scheint ein Absturz der Site das schlechteste Ergebnis zu sein.

Während es sich in erster Linie um ein Problem handelt, bei dem der Client das Unerwartete tut, scheint es auch ein zentraler Joomla-Fehler zu sein, da mit Sicherheit überprüft werden sollte, ob der JSON ihn sicher hochlädt oder nicht, anstatt beschädigte Daten zu speichern.

2
Richard B

Ich habe versucht, dies selbst zu recherchieren, da ich interessiert war, welchen Zweck es hatte.

Bei der Durchsicht einiger Github-Probleme wurde festgestellt, dass customContent gültig ist, jedoch undokumentiert.

Ich habe dann aber folgendes gefunden:

https://github.com/joomla/schemas/blob/master/xsd/v3/module.xsd#L

Dies sind die gültigen Attribute und Elemente, die in einer Modul-XML-Datei zulässig sind. Ich frage mich also, ob <customContent /> An anderen Stellen als im Kern verwendet werden soll oder nicht.

Mein Vorschlag wäre, bei <field type="editor"> Zu bleiben, da dies sicherstellt, dass Sie die Standard-/Standard-Joomla-Praxis verwenden und zusätzliche Attribute wie label, description verwenden können. , etc.

2
Lodder