From da5043c15e70249433f363deb7d0f432d6c30929 Mon Sep 17 00:00:00 2001 From: Matthias Schmidt Date: Sun, 3 Mar 2019 09:17:26 +0100 Subject: [PATCH] Add form builder button API Close 2860 --- com.woltlab.wcf/templates/__form.tpl | 20 +++- com.woltlab.wcf/templates/__formButton.tpl | 15 +++ syncTemplates.json | 1 + .../install/files/acp/templates/__form.tpl | 20 +++- .../files/acp/templates/__formButton.tpl | 15 +++ .../form/builder/FormDocument.class.php | 83 +++++++++++++- .../form/builder/IFormDocument.class.php | 37 ++++++ .../form/builder/button/FormButton.class.php | 105 ++++++++++++++++++ .../form/builder/button/IFormButton.class.php | 50 +++++++++ 9 files changed, 335 insertions(+), 11 deletions(-) create mode 100644 com.woltlab.wcf/templates/__formButton.tpl create mode 100644 wcfsetup/install/files/acp/templates/__formButton.tpl create mode 100644 wcfsetup/install/files/lib/system/form/builder/button/FormButton.class.php create mode 100644 wcfsetup/install/files/lib/system/form/builder/button/IFormButton.class.php diff --git a/com.woltlab.wcf/templates/__form.tpl b/com.woltlab.wcf/templates/__form.tpl index dff9c392ce..08d72dccdf 100644 --- a/com.woltlab.wcf/templates/__form.tpl +++ b/com.woltlab.wcf/templates/__form.tpl @@ -5,17 +5,27 @@ }); -
getClasses()|empty} class="{implode from=$form->getClasses() item='class' glue=' '}{$class}{/implode}"{/if}{foreach from=$form->getAttributes() key='attributeName' item='attributeValue'} {$attributeName}="{$attributeValue}"{/foreach}> +getClasses()|empty} class="{implode from=$form->getClasses() item='class' glue=' '}{$class}{/implode}"{/if}{* + *}{foreach from=$form->getAttributes() key='attributeName' item='attributeValue'} {$attributeName}="{$attributeValue}"{/foreach}{* +*}> {foreach from=$form item='child'} {if $child->isAvailable()} {@$child->getHtml()} {/if} {/foreach} -
- - {@SECURITY_TOKEN_INPUT_TAG} -
+ {if !$form->getButtons()|empty} +
+ {foreach from=$form->getButtons() item=button} + {@$button->getHtml()} + {/foreach} +
+ {/if} + + {@SECURITY_TOKEN_INPUT_TAG}
-
getClasses()|empty} class="{implode from=$form->getClasses() item='class' glue=' '}{$class}{/implode}"{/if}{foreach from=$form->getAttributes() key='attributeName' item='attributeValue'} {$attributeName}="{$attributeValue}"{/foreach}> +getClasses()|empty} class="{implode from=$form->getClasses() item='class' glue=' '}{$class}{/implode}"{/if}{* + *}{foreach from=$form->getAttributes() key='attributeName' item='attributeValue'} {$attributeName}="{$attributeValue}"{/foreach}{* +*}> {foreach from=$form item='child'} {if $child->isAvailable()} {@$child->getHtml()} {/if} {/foreach} -
- - {@SECURITY_TOKEN_INPUT_TAG} -
+ {if !$form->getButtons()|empty} +
+ {foreach from=$form->getButtons() item=button} + {@$button->getHtml()} + {/foreach} +
+ {/if} + + {@SECURITY_TOKEN_INPUT_TAG}