accepts a multidimensional array and turns it into an HTML table. TEXT2; $text3 = <<<TEXT3 Example 3 is available to show that this library is fairly Dynamic and the only thing holding you back is creativity TEXT3; $table = array(array("Example 1", "Example 2", "Example 3"), array($text1, $text2, $text3)); $rowAttributes = array(array("class", "table-header")); //this is for our head block $head = new Silkworm(); $head->head($head->comment("start standard header block"), $head->meta("charset", "UTF-8"), $head->title("Silkworm (quick start example)"), $head->newline(), $head->meta("name", "description", "content", "This is just a quick example on how to get started."), $head->meta("name", "viewport", "content", "width=device-width"), $head->comment("end standard header block"), $head->newline(), $head->comment("a stylesheet for some flair?"), $head->comment("just passing a parameter makes it easier"), $head->style($style)); //this is for the body $body = new Silkworm(); $divAttributes = array("class" => "content"); $body->body($body->div($body->div($divAttributes, $body->p("This is a short and sweet example to demonstrate Silkworm's usage.")), $body->newline(), $body->autoTable($table, $rowAttributes))); //you can also define a doctype this way if you like $example2 = new Silkworm(); $example2->doctype("HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\" \"http://www.w3.org/TR/html4/strict.dtd\""); $example2->html($head, $body); #----------------------------------------------------------- # advanced example (probably the way that you might use it) #----------------------------------------------------------- //for a deeper understanding of how this works, please see //the modular.php for more information $example3 = new Webpage(); #----------------------------------------------------------- # remove the comment mark from an example and see how it works :) #----------------------------------------------------------- #print((string)$example1); #print((string)$example2);
\tbackground-color: #C2AE8E; } .dark-cell { \tbackground-color: #8C4B22; } div table.hot-pink { \tbackground-color: #F433ff; } PAGE_STYLES; $displayExamples = new Silkworm(); $displayExamples->doctype("html"); $displayExamples["head"] = $displayExamples->head($displayExamples->meta("charset", "UTF-8"), $displayExamples->title("Silkworm (tables example)"), $displayExamples->newline(), $displayExamples->meta("name", "description", "content", "This demostrates how to use tables."), $displayExamples->meta("name", "viewport", "content", "width=device-width"), $displayExamples->newline(), $displayExamples->comment("page styles"), $displayExamples->style($style)); $displayExamples["body"] = $displayExamples->body($displayExamples->newline(), $displayExamples->comment("example 1"), $displayExamples->div($displayExamples->p("Example 1 (basic)"), (string) $example1), $displayExamples->newline(), $displayExamples->comment("example 2"), $displayExamples->div($displayExamples->p("Example 2 (autoTable no attributes)"), (string) $example2), $displayExamples->newline(), $displayExamples->comment("example 3"), $displayExamples->div($displayExamples->p("Example 3 (autoTable with attributes)"), (string) $example3), $displayExamples->newline(), $displayExamples->comment("example 4"), $displayExamples->div($displayExamples->p("Example 4 (nested tables)"), (string) $example4), $displayExamples->newline(), $displayExamples->comment("example 5"), $displayExamples->div($displayExamples->p("Example 5 (alternating attributes)"), (string) $example5), $displayExamples->newline(), $displayExamples->comment("example 6"), $displayExamples->div($displayExamples->p("Example 6 (cell attributes)"), $displayExamples->autoTable($tableCellAttributes)), $displayExamples->newline(), $displayExamples->comment("example 7???"), $displayExamples->div($displayExamples->p("Example 7 (???)"), $displayExamples->repeat($displayExamples->autoTable($forReal, "class", "hot-pink"), rand(1, 40)))); $displayExamples["page"] = $displayExamples->html((string) $displayExamples["head"], (string) $displayExamples["body"]); //let's see how it looks print $displayExamples->stringWithDocumentHeader((string) $displayExamples["page"]); //////////////////////////////////////////////////////////////////////////////// // The MIT License (MIT) // // Copyright (c) 2013 Dodzi Dzakuma (http://www.nexocentric.com) // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: //
/** * @test * @depends autoTableThreeByThreeWithTableHeaders */ public function autoTableThreeByThreeWithTableHeadersAndNestedTable() { $table = array(array("a", "b", "c"), array("d", "e", "f"), array("g", "h", array(array("a")))); $html = new Silkworm(); $this->assertSame("<table>\n" . "\t<tr>\n" . "\t\t<th>a</th>\n" . "\t\t<th>b</th>\n" . "\t\t<th>c</th>\n" . "\t</tr>\n" . "\t<tr>\n" . "\t\t<td>d</td>\n" . "\t\t<td>e</td>\n" . "\t\t<td>f</td>\n" . "\t</tr>\n" . "\t<tr>\n" . "\t\t<td>g</td>\n" . "\t\t<td>h</td>\n" . "\t\t<td>\n" . "\t\t\t<table>\n" . "\t\t\t\t<tr>\n" . "\t\t\t\t\t<td>a</td>\n" . "\t\t\t\t</tr>\n" . "\t\t\t</table>\n" . "\t\t</td>\n" . "\t</tr>\n" . "</table>\n", $html->autoTable($table, true), "failed to create 3 by 3 table."); }