forked from Public/pics
InlineFormView: split off from TabularData template
This commit is contained in:
parent
913fb974c7
commit
2bf78b9f5d
100
templates/InlineFormView.php
Normal file
100
templates/InlineFormView.php
Normal file
@ -0,0 +1,100 @@
|
|||||||
|
<?php
|
||||||
|
/*****************************************************************************
|
||||||
|
* InlineFormView.php
|
||||||
|
* Contains the template that renders inline forms.
|
||||||
|
*
|
||||||
|
* Kabuki CMS (C) 2013-2025, Aaron van Geffen
|
||||||
|
*****************************************************************************/
|
||||||
|
|
||||||
|
class InlineFormView
|
||||||
|
{
|
||||||
|
public static function renderInlineForm($form)
|
||||||
|
{
|
||||||
|
if (!isset($form['is_embed']))
|
||||||
|
echo '
|
||||||
|
<form action="', $form['action'], '" method="', $form['method'], '" class="', $form['class'], '">';
|
||||||
|
else
|
||||||
|
echo '
|
||||||
|
<div class="', $form['class'], '">';
|
||||||
|
|
||||||
|
if (!empty($form['is_group']))
|
||||||
|
echo '
|
||||||
|
<div class="input-group">';
|
||||||
|
|
||||||
|
if (!empty($form['fields']))
|
||||||
|
{
|
||||||
|
foreach ($form['fields'] as $name => $field)
|
||||||
|
{
|
||||||
|
if ($field['type'] === 'select')
|
||||||
|
{
|
||||||
|
echo '
|
||||||
|
<select class="form-select" name="', $name, '"', (isset($field['onchange']) ? ' onchange="' . $field['onchange'] . '"' : ''), '>';
|
||||||
|
|
||||||
|
foreach ($field['values'] as $value => $caption)
|
||||||
|
{
|
||||||
|
if (!is_array($caption))
|
||||||
|
{
|
||||||
|
echo '
|
||||||
|
<option value="', $value, '"', $value === $field['selected'] ? ' selected' : '', '>', $caption, '</option>';
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$label = $value;
|
||||||
|
$options = $caption;
|
||||||
|
|
||||||
|
echo '
|
||||||
|
<optgroup label="', $label, '">';
|
||||||
|
|
||||||
|
foreach ($options as $value => $caption)
|
||||||
|
{
|
||||||
|
echo '
|
||||||
|
<option value="', $value, '"', $value === $field['selected'] ? ' selected' : '', '>', $caption, '</option>';
|
||||||
|
}
|
||||||
|
|
||||||
|
echo '
|
||||||
|
</optgroup>';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
echo '
|
||||||
|
</select>';
|
||||||
|
}
|
||||||
|
else
|
||||||
|
echo '
|
||||||
|
<input name="', $name, '" id="field_', $name, '" type="', $field['type'], '" placeholder="', $field['placeholder'], '" class="form-control', isset($field['class']) ? ' ' . $field['class'] : '', '"', isset($field['value']) ? ' value="' . htmlspecialchars($field['value']) . '"' : '', '>';
|
||||||
|
|
||||||
|
if (isset($field['html_after']))
|
||||||
|
echo $field['html_after'];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
echo '
|
||||||
|
<input type="hidden" name="', Session::getSessionTokenKey(), '" value="', Session::getSessionToken(), '">';
|
||||||
|
|
||||||
|
if (!empty($form['buttons']))
|
||||||
|
foreach ($form['buttons'] as $name => $button)
|
||||||
|
{
|
||||||
|
echo '
|
||||||
|
<button class="btn ', isset($button['class']) ? $button['class'] : 'btn-primary', '" type="', $button['type'], '" name="', $name, '"';
|
||||||
|
|
||||||
|
if (isset($button['onclick']))
|
||||||
|
echo ' onclick="', $button['onclick'], '"';
|
||||||
|
|
||||||
|
echo '>', $button['caption'], '</button>';
|
||||||
|
|
||||||
|
if (isset($button['html_after']))
|
||||||
|
echo $button['html_after'];
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!empty($form['is_group']))
|
||||||
|
echo '
|
||||||
|
</div>';
|
||||||
|
|
||||||
|
if (!isset($form['is_embed']))
|
||||||
|
echo '
|
||||||
|
</form>';
|
||||||
|
else
|
||||||
|
echo '
|
||||||
|
</div>';
|
||||||
|
}
|
||||||
|
}
|
@ -3,7 +3,7 @@
|
|||||||
* TabularData.php
|
* TabularData.php
|
||||||
* Contains the template that displays tabular data.
|
* Contains the template that displays tabular data.
|
||||||
*
|
*
|
||||||
* Kabuki CMS (C) 2013-2023, Aaron van Geffen
|
* Kabuki CMS (C) 2013-2025, Aaron van Geffen
|
||||||
*****************************************************************************/
|
*****************************************************************************/
|
||||||
|
|
||||||
class TabularData extends SubTemplate
|
class TabularData extends SubTemplate
|
||||||
@ -79,7 +79,7 @@ class TabularData extends SubTemplate
|
|||||||
|
|
||||||
// Form controls?
|
// Form controls?
|
||||||
if (isset($form))
|
if (isset($form))
|
||||||
$this->renderInlineForm($form);
|
InlineFormView::renderInlineForm($form);
|
||||||
|
|
||||||
echo '
|
echo '
|
||||||
</div>';
|
</div>';
|
||||||
@ -146,94 +146,4 @@ class TabularData extends SubTemplate
|
|||||||
echo '
|
echo '
|
||||||
</tbody>';
|
</tbody>';
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function renderInlineForm($form)
|
|
||||||
{
|
|
||||||
if (!isset($form['is_embed']))
|
|
||||||
echo '
|
|
||||||
<form action="', $form['action'], '" method="', $form['method'], '" class="', $form['class'], '">';
|
|
||||||
else
|
|
||||||
echo '
|
|
||||||
<div class="', $form['class'], '">';
|
|
||||||
|
|
||||||
if (!empty($form['is_group']))
|
|
||||||
echo '
|
|
||||||
<div class="input-group">';
|
|
||||||
|
|
||||||
if (!empty($form['fields']))
|
|
||||||
{
|
|
||||||
foreach ($form['fields'] as $name => $field)
|
|
||||||
{
|
|
||||||
if ($field['type'] === 'select')
|
|
||||||
{
|
|
||||||
echo '
|
|
||||||
<select class="form-select" name="', $name, '"', (isset($field['onchange']) ? ' onchange="' . $field['onchange'] . '"' : ''), '>';
|
|
||||||
|
|
||||||
foreach ($field['values'] as $value => $caption)
|
|
||||||
{
|
|
||||||
if (!is_array($caption))
|
|
||||||
{
|
|
||||||
echo '
|
|
||||||
<option value="', $value, '"', $value === $field['selected'] ? ' selected' : '', '>', $caption, '</option>';
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$label = $value;
|
|
||||||
$options = $caption;
|
|
||||||
|
|
||||||
echo '
|
|
||||||
<optgroup label="', $label, '">';
|
|
||||||
|
|
||||||
foreach ($options as $value => $caption)
|
|
||||||
{
|
|
||||||
echo '
|
|
||||||
<option value="', $value, '"', $value === $field['selected'] ? ' selected' : '', '>', $caption, '</option>';
|
|
||||||
}
|
|
||||||
|
|
||||||
echo '
|
|
||||||
</optgroup>';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
echo '
|
|
||||||
</select>';
|
|
||||||
}
|
|
||||||
else
|
|
||||||
echo '
|
|
||||||
<input name="', $name, '" id="field_', $name, '" type="', $field['type'], '" placeholder="', $field['placeholder'], '" class="form-control', isset($field['class']) ? ' ' . $field['class'] : '', '"', isset($field['value']) ? ' value="' . htmlspecialchars($field['value']) . '"' : '', '>';
|
|
||||||
|
|
||||||
if (isset($field['html_after']))
|
|
||||||
echo $field['html_after'];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
echo '
|
|
||||||
<input type="hidden" name="', Session::getSessionTokenKey(), '" value="', Session::getSessionToken(), '">';
|
|
||||||
|
|
||||||
if (!empty($form['buttons']))
|
|
||||||
foreach ($form['buttons'] as $name => $button)
|
|
||||||
{
|
|
||||||
echo '
|
|
||||||
<button class="btn ', isset($button['class']) ? $button['class'] : 'btn-primary', '" type="', $button['type'], '" name="', $name, '"';
|
|
||||||
|
|
||||||
if (isset($button['onclick']))
|
|
||||||
echo ' onclick="', $button['onclick'], '"';
|
|
||||||
|
|
||||||
echo '>', $button['caption'], '</button>';
|
|
||||||
|
|
||||||
if (isset($button['html_after']))
|
|
||||||
echo $button['html_after'];
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!empty($form['is_group']))
|
|
||||||
echo '
|
|
||||||
</div>';
|
|
||||||
|
|
||||||
if (!isset($form['is_embed']))
|
|
||||||
echo '
|
|
||||||
</form>';
|
|
||||||
else
|
|
||||||
echo '
|
|
||||||
</div>';
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user