Add field attribute support for `WysiwygFormField`
authorMatthias Schmidt <gravatronics@live.com>
Wed, 23 Dec 2020 14:42:49 +0000 (15:42 +0100)
committerMatthias Schmidt <gravatronics@live.com>
Wed, 23 Dec 2020 14:42:49 +0000 (15:42 +0100)
com.woltlab.wcf/templates/__wysiwygFormField.tpl
wcfsetup/install/files/acp/templates/__wysiwygFormField.tpl
wcfsetup/install/files/lib/system/form/builder/field/wysiwyg/WysiwygFormField.class.php

index 0f53638aa121efc3e1c99dbbd965d87ece3b5575..6618d7fa9d0734fb00f6767809b8ffe057214ab4 100644 (file)
@@ -10,6 +10,7 @@
                        *} data-autosave-last-edit-time="{@$field->getLastEditTime()}"{*
                *}{/if}{*
        *}{/if}{*
+       *}{foreach from=$field->getFieldAttributes() key='attributeName' item='attributeValue'} {$attributeName}="{$attributeValue}"{/foreach}{*
 *}>{$field->getValue()}</textarea>
 
 {include file='wysiwyg' wysiwygSelector=$field->getPrefixedId()}
index 0f53638aa121efc3e1c99dbbd965d87ece3b5575..6618d7fa9d0734fb00f6767809b8ffe057214ab4 100644 (file)
@@ -10,6 +10,7 @@
                        *} data-autosave-last-edit-time="{@$field->getLastEditTime()}"{*
                *}{/if}{*
        *}{/if}{*
+       *}{foreach from=$field->getFieldAttributes() key='attributeName' item='attributeValue'} {$attributeName}="{$attributeValue}"{/foreach}{*
 *}>{$field->getValue()}</textarea>
 
 {include file='wysiwyg' wysiwygSelector=$field->getPrefixedId()}
index 0b74a401ff73ff68e217ac7ea79b5a9995a05fb8..aec7b56396664d1c38b3f174b27baeb094f71e1a 100644 (file)
@@ -5,8 +5,10 @@ use wcf\data\object\type\ObjectTypeCache;
 use wcf\system\bbcode\BBCodeHandler;
 use wcf\system\form\builder\data\processor\CustomFormDataProcessor;
 use wcf\system\form\builder\field\AbstractFormField;
+use wcf\system\form\builder\field\IAttributeFormField;
 use wcf\system\form\builder\field\IMaximumLengthFormField;
 use wcf\system\form\builder\field\IMinimumLengthFormField;
+use wcf\system\form\builder\field\TInputAttributeFormField;
 use wcf\system\form\builder\field\TMaximumLengthFormField;
 use wcf\system\form\builder\field\TMinimumLengthFormField;
 use wcf\system\form\builder\field\validation\FormFieldValidationError;
@@ -28,7 +30,10 @@ use wcf\util\StringUtil;
  * @package    WoltLabSuite\Core\System\Form\Builder\Field
  * @since      5.2
  */
-class WysiwygFormField extends AbstractFormField implements IMaximumLengthFormField, IMinimumLengthFormField, IObjectTypeFormNode {
+class WysiwygFormField extends AbstractFormField implements IAttributeFormField, IMaximumLengthFormField, IMinimumLengthFormField, IObjectTypeFormNode {
+       use TInputAttributeFormField {
+               getReservedFieldAttributes as private inputGetReservedFieldAttributes;
+       }
        use TMaximumLengthFormField;
        use TMinimumLengthFormField;
        use TObjectTypeFormNode;
@@ -409,4 +414,20 @@ class WysiwygFormField extends AbstractFormField implements IMaximumLengthFormFi
                
                parent::validate();
        }
+       
+       /**
+        * @inheritDoc
+        * @since       5.4
+        */
+       protected static function getReservedFieldAttributes(): array {
+               return array_merge(
+                       static::inputGetReservedFieldAttributes(),
+                       [
+                               'data-autosave',
+                               'data-autosave-last-edit-time',
+                               'data-disable-attachments',
+                               'data-support-mention',
+                       ]
+               );
+       }
 }