Table: add helpers for additional thead and tbody

This commit is contained in:
Thomas Gelf 2017-07-19 18:24:31 +02:00
parent 70034b5afe
commit 9c9a4bd34b
1 changed files with 36 additions and 3 deletions

View File

@ -92,10 +92,23 @@ class Table extends BaseElement
return Element::create('td', $attributes, $content); return Element::create('td', $attributes, $content);
} }
public static function row($row, $attributes = null, $tag = 'td')
{
$tr = static::tr();
foreach ((array) $row as $value) {
$tr->add(Html::tag($tag, null, $value));
}
if ($attributes !== null) {
$tr->setAttributes($attributes);
}
return $tr;
}
public function generateHeader() public function generateHeader()
{ {
return Element::create('thead')->add( return $this->nextHeader()->add(
$this->addHeaderColumnsTo(static::tr()) $this->addHeaderColumnsTo(static::tr())
); );
} }
@ -111,7 +124,7 @@ class Table extends BaseElement
{ {
foreach ($this->getColumnsToBeRendered() as $column) { foreach ($this->getColumnsToBeRendered() as $column) {
$parent->add( $parent->add(
Element::create('th')->setContent($column) Html::tag('th')->setContent($column)
); );
} }
@ -185,7 +198,7 @@ class Table extends BaseElement
public function header() public function header()
{ {
if ($this->header === null) { if ($this->header === null) {
$this->header = $this->generateHeader(); $this->header = Element::create('thead')->setSeparator("\n");
} }
return $this->header; return $this->header;
@ -200,6 +213,26 @@ class Table extends BaseElement
return $this->footer; return $this->footer;
} }
public function nextBody()
{
if ($this->body !== null) {
$this->add($this->body);
$this->body = null;
}
return $this->body();
}
public function nextHeader()
{
if ($this->header !== null) {
$this->add($this->header);
$this->header = null;
}
return $this->header();
}
public function renderContent() public function renderContent()
{ {
if (null !== $this->caption) { if (null !== $this->caption) {