This is to be the new HashRU website based on the Aaronweb.net/Kabuki CMS.
		
			
				
	
	
		
			115 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			115 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
/*****************************************************************************
 | 
						|
 * TabularData.php
 | 
						|
 * Contains the template that displays tabular data.
 | 
						|
 *
 | 
						|
 * Kabuki CMS (C) 2013-2015, Aaron van Geffen
 | 
						|
 *****************************************************************************/
 | 
						|
 | 
						|
class TabularData extends Pagination
 | 
						|
{
 | 
						|
	public function __construct(GenericTable $table)
 | 
						|
	{
 | 
						|
		$this->_t = $table;
 | 
						|
		parent::__construct($table);
 | 
						|
	}
 | 
						|
 | 
						|
	protected function html_content()
 | 
						|
	{
 | 
						|
		echo '
 | 
						|
			<div class="admin_box">';
 | 
						|
 | 
						|
		$title = $this->_t->getTitle();
 | 
						|
		if (!empty($title))
 | 
						|
			echo '
 | 
						|
				<h2>', $title, '</h2>';
 | 
						|
 | 
						|
		// Showing a page index?
 | 
						|
		parent::html_content();
 | 
						|
 | 
						|
		// Maybe even a small form?
 | 
						|
		if (isset($this->_t->form_above))
 | 
						|
			$this->showForm($this->_t->form_above);
 | 
						|
 | 
						|
		// Build the table!
 | 
						|
		echo '
 | 
						|
				<table class="table table-striped">
 | 
						|
					<thead>
 | 
						|
						<tr>';
 | 
						|
 | 
						|
		// Show the table's headers.
 | 
						|
		foreach ($this->_t->getHeader() 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'], '">',
 | 
						|
							$th['href'] ? '<a href="' . $th['href'] . '">' . $th['label'] . '</a>' : $th['label'];
 | 
						|
 | 
						|
			if ($th['sort_mode'] )
 | 
						|
				echo ' ', $th['sort_mode'] == 'up' ? '↑' : '↓';
 | 
						|
 | 
						|
			echo '</th>';
 | 
						|
		}
 | 
						|
 | 
						|
		echo '
 | 
						|
						</tr>
 | 
						|
					</thead>
 | 
						|
					<tbody>';
 | 
						|
 | 
						|
		// Show the table's body.
 | 
						|
		$body = $this->_t->getBody();
 | 
						|
		if (is_array($body))
 | 
						|
		{
 | 
						|
			foreach ($body as $tr)
 | 
						|
			{
 | 
						|
				echo '
 | 
						|
						<tr', (!empty($tr['class']) ? ' class="' . $tr['class'] . '"' : ''), '>';
 | 
						|
 | 
						|
				foreach ($tr['cells'] as $td)
 | 
						|
					echo '
 | 
						|
							<td', (!empty($td['width']) ? ' width="' . $td['width'] . '"' : ''), '>', $td['value'], '</td>';
 | 
						|
 | 
						|
				echo '
 | 
						|
						</tr>';
 | 
						|
			}
 | 
						|
		}
 | 
						|
		else
 | 
						|
			echo '
 | 
						|
						<tr>
 | 
						|
							<td colspan="', count($this->_t->getHeader()), '">', $body, '</td>
 | 
						|
						</tr>';
 | 
						|
 | 
						|
		echo '
 | 
						|
					</tbody>
 | 
						|
				</table>';
 | 
						|
 | 
						|
		// Maybe another small form?
 | 
						|
		if (isset($this->_t->form_below))
 | 
						|
			$this->showForm($this->_t->form_below);
 | 
						|
 | 
						|
		// Showing a page index?
 | 
						|
		parent::html_content();
 | 
						|
 | 
						|
		echo '
 | 
						|
			</div>';
 | 
						|
	}
 | 
						|
 | 
						|
	protected function showForm($form)
 | 
						|
	{
 | 
						|
		echo '
 | 
						|
				<form action="', $form['action'], '" method="', $form['method'], '" class="table_form ', $form['class'], '">';
 | 
						|
 | 
						|
		if (!empty($form['fields']))
 | 
						|
			foreach ($form['fields'] as $name => $field)
 | 
						|
				echo '
 | 
						|
					<input name="', $name, '" type="', $field['type'], '" placeholder="', $field['placeholder'], '"', isset($field['class']) ? ' class="' . $field['class'] . '"' : '', isset($field['value']) ? ' value="' . $field['value'] . '"' : '', '>';
 | 
						|
 | 
						|
		if (!empty($form['buttons']))
 | 
						|
			foreach ($form['buttons'] as $name => $button)
 | 
						|
				echo '
 | 
						|
					<input name="', $name, '" type="', $button['type'], '" value="', $button['caption'], '" class="btn', isset($button['class']) ? ' ' . $button['class'] . '' : '', '">';
 | 
						|
 | 
						|
		echo '
 | 
						|
				</form>';
 | 
						|
	}
 | 
						|
}
 |