it-swarm.com.de

Wie verwende ich den Joomla-Editor für ein Formularfeld in eine benutzerdefinierte Komponente?

Ich habe eine benutzerdefinierte installierbare Komponente für Joomla erstellt. Ich muss einen Editor für einen Textbereich hinzufügen.

Wie kann ich den Joomla-Editor für benutzerdefinierte Komponenten verwenden?

1
Jony Saini

Wenn Sie JForm nicht verwenden, können Sie dies immer mit etwas PHP Code:

$editor = JEditor::getInstance(JFactory::getConfig()->get('editor'));
echo $editor->display($name, $contents, $width, $height, $cols, $rows, $buttons, $id, $asset, $author, $params);

Wo:

$ name ist der Name des Editorfelds in Ihrem Formular. Dies ist der Schlüssel, der für den Inhalt im POST Ihres Formulars verwendet wird.

$ content ist der HTML-Inhalt des Editors, der vermutlich aus der Datenbank abgerufen wird. Das bearbeitet der Benutzer.

$ width und $ height sind die Breite und Höhe des Editors, die für die Aufnahme in eine CSS-Anweisung formatiert sind. Das könnte also so etwas wie "100%", "10em" oder "100px" sein. Nach meiner Erfahrung wird die Breite am besten als Prozentsatz (des Feldcontainers) angegeben, während die Höhe normalerweise am besten in Pixel und nicht weniger als 400 davon festgelegt wird. Normalerweise teste ich das Layout mit JCE unter Verwendung eines Profils mit allen angezeigten Editorschaltflächen, da dies die Konfiguration mit der höchsten Schnittstellenlast ist, auf die ich gestoßen bin.

$ cols und $ rows ist die Anzahl der Spalten und Zeilen im angezeigten Textbereich, wenn der Browser die Rich-Text-Bearbeitung nicht unterstützt oder JavaScript einfach deaktiviert ist. Denken Sie daran, dass dies in absoluten Zahlen angegeben wird, die der Anzahl der Zeichen bzw. Zeilen entsprechen. Etwa 50 Spalten und 10 Zeilen sollten mindestens ausreichen (und es sollte keine Rolle spielen, ob Sie CSS verwenden, um den Textbereich trotzdem zu gestalten).

Dies ist das Ende der obligatorischen Parameter. Alles darüber hinaus ist optional und wird nur selten verwendet.

$ button ist ein Boolescher Wert, der Joomla mitteilt, ob die von Editor-xtd-Plugins wie pagebreak definierten Schaltflächen gerendert werden sollen, lesen Sie mehr und so weiter. Standardmäßig ist es wahr. Je nach Editor werden sie möglicherweise in der Symbolleiste des Editors oder unterhalb des Editorbereichs gerendert. TinyMCE, Joomlas Standardeditor, rendert sie in der Symbolleiste. Die meisten anderen Editoren rendern sie unter dem Editor.

$ id ist das HTML-ID-Attribut. Lassen Sie null, um denselben Wert wie $ name zu verwenden.

$ Asset ist die Asset-ID des Inhalts, den Sie bearbeiten. Wenn Sie die Asset-Verfolgung für Ihre Inhalte nicht verwenden oder nicht wissen, was es ist, übergeben Sie null.

$ author ist die ID des Benutzers. In den meisten Fällen können Sie null übergeben und Joomla es herausfinden lassen.

$ params ist ein assoziatives Array von Editorparametern. Die Verwendung ist nur dann sinnvoll, wenn Sie den Editor kennen und einen besonderen Grund haben, Parameter an ihn zu übergeben. In allen praktischen Fällen, auf die ich gestoßen bin, überspringe ich einfach das Feld.

Die größte Einschränkung besteht darin, dass Sie den POST-Inhalt in Ihrem Controller selbst filtern müssen. Aber da Sie nicht explizit nach dem Umgang mit Inhalten fragen, überlasse ich das Ihnen.

1
nikosdion

Fügen Sie Ihrem Formular ein Editor-Typfeld hinzu:

<field
    name="example"
    type="editor"
    filter="JComponentHelper::filterText"
/>

Weitere Informationen zum Formularfeld "Editor" und die verfügbaren Attribute finden Sie hier: https://docs.joomla.org/Editor_form_field_type

0
Sharky