The table class handles creation and manipulation of HTML5 tables.
Each table consists of three sections: a header, body and footer. Each section can generate rows, which in turn generate cells.
Begin by creating the table.
$table = $this->table();
If you’re not using the WordPress plugin base, then specify the complete table namespace.
$table = new \plainview\sdk\table\table();
Why not give it a caption?
$table->caption()->text( 'This is the caption' );
$table->caption()->textf( 'This is an sprintf caption created %s', time() );
The header
This is usally the section where the columns are defined.
First, fetch a new row.
$row = $table->head()->row();
In this row, create a table heading cell.
$row->th()->text( 'This is a cell heading' );
$row->th()->textf( 'A %s heading', 'great' );
The cells can be used with unique identifiers. Using a cell ID you can retrieve the same cell later, instead of saving it in a variable.
$cell = $row->th()->text( 'Cell text' );
$cell->text( 'Updated text' );
Is the same as:
$row->th( 'cell123' )->text( 'Cell text' );
$row->th( 'cell123' )->text( 'Updated text' );
The body
Functionally similar to the header, but here is where you would use td() cells, instead of th().
$row = $table->body()->row();
$row->td()->text( 'This is great data' );
$row->td( 'cell123' )->text( 'This data is for the 123 column' );
Output the table as text
echo $table;
Cell ordering
If you choose not to use cell ID’s, then you have to create data cells in the same order as the header cells.
$row = $table->head()->row();
$row->th()->text( 'This is the first column' );
$row->th()->text( 'This is the second column' );
$row = $table->body()->row();
$row->th()->text( 'This is the first data' );
$row->th()->text( 'This is the second data' );
If you instead use IDs, the data can be created in any order.
$row = $table->head()->row();
$row->th( 'column1' )->text( 'This is the first column' );
$row->th( 'column2' )->text( 'This is the second column' );
$row = $table->body()->row();
$row->th( 'column2' )->text( 'This is the second data' );
$row->th( 'column1' )->text( 'This is the first data' );