Skip to content

Commit 0c63546

Browse files
authored
Merge pull request #150 from TeamEver/0c25hj-codex/add-optional-html-class-parameter-to-everblock-shortcodes
Allow custom CSS classes for form shortcode fields
2 parents 65837d6 + 13106c4 commit 0c63546

File tree

2 files changed

+11
-9
lines changed

2 files changed

+11
-9
lines changed

models/EverblockTools.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1170,6 +1170,7 @@ public static function generateFormFromShortcode(
11701170
'value' => $attributes['value'] ?? null,
11711171
'values' => isset($attributes['values']) ? explode(',', $attributes['values']) : [],
11721172
'required' => isset($attributes['required']) && strtolower($attributes['required']) === 'true',
1173+
'class' => isset($attributes['class']) ? htmlspecialchars($attributes['class'], ENT_QUOTES) : '',
11731174
'unique' => $uid,
11741175
'id' => 'everfield_' . $uid,
11751176
];

views/templates/hook/contact_field.tpl

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -22,21 +22,22 @@
2222
{assign var="value" value=$field.value}
2323
{assign var="unique" value=$field.unique}
2424
{assign var="id" value=$field.id}
25+
{assign var="class" value=$field.class}
2526

2627
{if $type == 'sento'}
2728
<input type="hidden" name="everHide" value="{$label|base64_encode}">
2829
{elseif in_array($type, ['password','tel','email','datetime-local','date','text','number'])}
29-
<div class="form-group mb-4">
30+
<div class="form-group mb-4{if $class} {$class|escape:'htmlall':'UTF-8'}{/if}">
3031
<label for="{$id}" class="d-none">{$label nofilter}</label>
3132
<input type="{$type}" class="form-control" name="{$label}" id="{$id}" placeholder="{$label}"{if $value} value="{$value|escape:'htmlall':'UTF-8'}"{/if}{if $required} required{/if}>
3233
</div>
3334
{elseif $type == 'textarea'}
34-
<div class="form-group mb-4">
35+
<div class="form-group mb-4{if $class} {$class|escape:'htmlall':'UTF-8'}{/if}">
3536
<label for="{$id}" class="d-none">{$label nofilter}</label>
3637
<textarea class="form-control" name="{$label}" id="{$id}" placeholder="{$label}"{if $required} required{/if}>{$value|escape:'htmlall':'UTF-8'}</textarea>
3738
</div>
3839
{elseif $type == 'select'}
39-
<div class="form-group mb-4">
40+
<div class="form-group mb-4{if $class} {$class|escape:'htmlall':'UTF-8'}{/if}">
4041
<label for="{$id}" class="d-none">{$label nofilter}</label>
4142
<select class="form-control" name="{$label}" id="{$id}"{if $required} required{/if}>
4243
<option value="" disabled selected>{$label}</option>
@@ -47,7 +48,7 @@
4748
</select>
4849
</div>
4950
{elseif $type == 'multiselect'}
50-
<div class="form-group mb-4">
51+
<div class="form-group mb-4{if $class} {$class|escape:'htmlall':'UTF-8'}{/if}">
5152
<label for="{$id}" class="d-none">{$label nofilter}</label>
5253
{assign var='selectedValues' value=","|explode:$value}
5354
<select class="form-control" name="{$label}[]" id="{$id}" multiple{if $required} required{/if}>
@@ -58,7 +59,7 @@
5859
</select>
5960
</div>
6061
{elseif $type == 'radio'}
61-
<div class="form-group mb-4">
62+
<div class="form-group mb-4{if $class} {$class|escape:'htmlall':'UTF-8'}{/if}">
6263
<label>{$label nofilter}</label>
6364
<div class="form-check">
6465
{foreach from=$values item=val}
@@ -72,7 +73,7 @@
7273
</div>
7374
</div>
7475
{elseif $type == 'checkbox'}
75-
<div class="form-group mb-4">
76+
<div class="form-group mb-4{if $class} {$class|escape:'htmlall':'UTF-8'}{/if}">
7677
<label class="d-none">{$label nofilter}</label>
7778
<div class="form-check">
7879
{assign var='checkedValues' value=","|explode:$value}
@@ -87,12 +88,12 @@
8788
</div>
8889
</div>
8990
{elseif $type == 'file'}
90-
<div class="form-group mb-4">
91+
<div class="form-group mb-4{if $class} {$class|escape:'htmlall':'UTF-8'}{/if}">
9192
<label for="{$id}" class="d-none">{$label nofilter}</label>
9293
<input type="file" class="form-control-file" name="{$label}" id="{$id}"{if $required} required{/if}>
9394
</div>
9495
{elseif $type == 'submit'}
95-
<button type="submit" class="btn btn-primary evercontactsubmit">{$label}</button>
96+
<button type="submit" class="btn btn-primary evercontactsubmit{if $class} {$class|escape:'htmlall':'UTF-8'}{/if}">{$label}</button>
9697
{elseif $type == 'hidden'}
97-
<input type="hidden" name="hidden" value="{$label}">
98+
<input type="hidden" name="hidden" value="{$label}"{if $class} class="{$class|escape:'htmlall':'UTF-8'}"{/if}>
9899
{/if}

0 commit comments

Comments
 (0)