forked from Public/pics
TabularData: split up into logical methods
This commit is contained in:
parent
d6f39a3410
commit
01954d4a7d
@ -8,7 +8,7 @@
|
||||
|
||||
class TabularData extends SubTemplate
|
||||
{
|
||||
private GenericTable $_t;
|
||||
protected GenericTable $_t;
|
||||
|
||||
public function __construct(GenericTable $table)
|
||||
{
|
||||
@ -16,6 +16,47 @@ class TabularData extends SubTemplate
|
||||
}
|
||||
|
||||
protected function html_content()
|
||||
{
|
||||
$this->renderTitle();
|
||||
|
||||
foreach ($this->_subtemplates as $template)
|
||||
$template->html_main();
|
||||
|
||||
// Showing an inline form?
|
||||
$pager = $this->_t->getPageIndex();
|
||||
if (!empty($pager) || isset($this->_t->form_above))
|
||||
$this->renderPaginationForm($pager, $this->_t->form_above);
|
||||
|
||||
$tableClass = $this->_t->getTableClass();
|
||||
if ($tableClass)
|
||||
echo '
|
||||
<div class="', $tableClass, '">';
|
||||
|
||||
// Build the table!
|
||||
echo '
|
||||
<table class="table table-striped table-condensed">';
|
||||
|
||||
$this->renderTableHead($this->_t->getHeader());
|
||||
$this->renderTableBody($this->_t->getBody());
|
||||
|
||||
echo '
|
||||
</table>';
|
||||
|
||||
if ($tableClass)
|
||||
echo '
|
||||
</div>';
|
||||
|
||||
// Showing an inline form?
|
||||
if (!empty($pager) || isset($this->_t->form_below))
|
||||
$this->renderPaginationForm($pager, $this->_t->form_below);
|
||||
|
||||
$title = $this->_t->getTitle();
|
||||
if (!empty($title))
|
||||
echo '
|
||||
</div>';
|
||||
}
|
||||
|
||||
protected function renderTitle()
|
||||
{
|
||||
$title = $this->_t->getTitle();
|
||||
if (!empty($title))
|
||||
@ -25,43 +66,32 @@ class TabularData extends SubTemplate
|
||||
<div class="generic-table', !empty($titleclass) ? ' ' . $titleclass : '', '">
|
||||
<h1>', htmlspecialchars($title), '</h1>';
|
||||
}
|
||||
}
|
||||
|
||||
foreach ($this->_subtemplates as $template)
|
||||
$template->html_main();
|
||||
|
||||
// Showing an inline form?
|
||||
$pager = $this->_t->getPageIndex();
|
||||
if (!empty($pager) || isset($this->_t->form_above))
|
||||
{
|
||||
echo '
|
||||
<div class="row clearfix justify-content-end">';
|
||||
|
||||
// Page index?
|
||||
if (!empty($pager))
|
||||
PageIndexWidget::paginate($pager);
|
||||
|
||||
// Form controls?
|
||||
if (isset($this->_t->form_above))
|
||||
$this->showForm($this->_t->form_above);
|
||||
|
||||
echo '
|
||||
</div>';
|
||||
}
|
||||
|
||||
$tableClass = $this->_t->getTableClass();
|
||||
if ($tableClass)
|
||||
echo '
|
||||
<div class="', $tableClass, '">';
|
||||
|
||||
// Build the table!
|
||||
protected function renderPaginationForm($pager, $form, $class='row')
|
||||
{
|
||||
echo '
|
||||
<div class="', $class, ' clearfix justify-content-end">';
|
||||
|
||||
// Page index?
|
||||
if (!empty($pager))
|
||||
PageIndexWidget::paginate($pager);
|
||||
|
||||
// Form controls?
|
||||
if (isset($form))
|
||||
$this->renderInlineForm($form);
|
||||
|
||||
echo '
|
||||
</div>';
|
||||
}
|
||||
|
||||
protected function renderTableHead(array $headers)
|
||||
{
|
||||
echo '
|
||||
<table class="table table-striped table-condensed">
|
||||
<thead>
|
||||
<tr>';
|
||||
|
||||
// Show all headers in their full glory!
|
||||
$header = $this->_t->getHeader();
|
||||
foreach ($header as $th)
|
||||
foreach ($headers as $th)
|
||||
{
|
||||
echo '
|
||||
<th', (!empty($th['width']) ? ' width="' . $th['width'] . '"' : ''), (!empty($th['class']) ? ' class="' . $th['class'] . '"' : ''), ($th['colspan'] > 1 ? ' colspan="' . $th['colspan'] . '"' : ''), ' scope="', $th['scope'], '">',
|
||||
@ -75,11 +105,14 @@ class TabularData extends SubTemplate
|
||||
|
||||
echo '
|
||||
</tr>
|
||||
</thead>
|
||||
</thead>';
|
||||
}
|
||||
|
||||
protected function renderTableBody($body)
|
||||
{
|
||||
echo '
|
||||
<tbody>';
|
||||
|
||||
// The body is what we came to see!
|
||||
$body = $this->_t->getBody();
|
||||
if (is_array($body))
|
||||
{
|
||||
foreach ($body as $tr)
|
||||
@ -90,59 +123,31 @@ class TabularData extends SubTemplate
|
||||
foreach ($tr['cells'] as $td)
|
||||
{
|
||||
echo '
|
||||
<td', (!empty($td['width']) ? ' width="' . $td['width'] . '"' : ''), '>';
|
||||
|
||||
if (!empty($td['class']))
|
||||
echo '<span class="', $td['class'], '">', $td['value'], '</span>';
|
||||
else
|
||||
echo $td['value'];
|
||||
|
||||
echo '</td>';
|
||||
<td',
|
||||
(!empty($td['class']) ? ' class="' . $td['class'] . '"' : ''),
|
||||
(!empty($td['width']) ? ' width="' . $td['width'] . '"' : ''), '>',
|
||||
$td['value'],
|
||||
'</td>';
|
||||
}
|
||||
|
||||
echo '
|
||||
</tr>';
|
||||
}
|
||||
}
|
||||
// !!! Sum colspan!
|
||||
else
|
||||
{
|
||||
$header = $this->_t->getHeader();
|
||||
echo '
|
||||
<tr>
|
||||
<td colspan="', count($header), '" class="fullwidth">', $body, '</td>
|
||||
</tr>';
|
||||
|
||||
echo '
|
||||
</tbody>
|
||||
</table>';
|
||||
|
||||
if ($tableClass)
|
||||
echo '
|
||||
</div>';
|
||||
|
||||
// Showing an inline form?
|
||||
if (!empty($pager) || isset($this->_t->form_below))
|
||||
{
|
||||
echo '
|
||||
<div class="row clearfix justify-content-end">';
|
||||
|
||||
// Page index?
|
||||
if (!empty($pager))
|
||||
PageIndexWidget::paginate($pager);
|
||||
|
||||
// Form controls?
|
||||
if (isset($this->_t->form_below))
|
||||
$this->showForm($this->_t->form_below);
|
||||
|
||||
echo '
|
||||
</div>';
|
||||
}
|
||||
|
||||
if (!empty($title))
|
||||
echo '
|
||||
</div>';
|
||||
echo '
|
||||
</tbody>';
|
||||
}
|
||||
|
||||
protected function showForm($form)
|
||||
protected function renderInlineForm($form)
|
||||
{
|
||||
if (!isset($form['is_embed']))
|
||||
echo '
|
||||
|
Loading…
Reference in New Issue
Block a user