AutorÃa | Ultima modificación | Ver Log |
<?php// This file is part of Moodle - http://moodle.org///// Moodle is free software: you can redistribute it and/or modify// it under the terms of the GNU General Public License as published by// the Free Software Foundation, either version 3 of the License, or// (at your option) any later version.//// Moodle is distributed in the hope that it will be useful,// but WITHOUT ANY WARRANTY; without even the implied warranty of// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the// GNU General Public License for more details.//// You should have received a copy of the GNU General Public License// along with Moodle. If not, see <http://www.gnu.org/licenses/>.namespace core_table\output;/*** Holds all the information required to render a <table> by {@see core_renderer::table()}** Example of usage:* $t = new html_table();* ... // set various properties of the object $t as described below* echo html_writer::table($t);** @copyright 2009 David Mudrak <david.mudrak@gmail.com>* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later* @since Moodle 2.0* @package core_table* @category output*/class html_table {/*** @var string Value to use for the id attribute of the table*/public $id = null;/*** @var array Attributes of HTML attributes for the <table> element*/public $attributes = [];/*** @var array An array of headings. The n-th array item is used as a heading of the n-th column.* For more control over the rendering of the headers, an array of html_table_cell objects* can be passed instead of an array of strings.** Example of usage:* $t->head = array('Student', 'Grade');*/public $head;/*** @var array An array that can be used to make a heading span multiple columns.* In this example, {@see html_table:$data} is supposed to have three columns. For the first two columns,* the same heading is used. Therefore, {@see html_table::$head} should consist of two items.** Example of usage:* $t->headspan = array(2,1);*/public $headspan;/*** @var array An array of column alignments.* The value is used as CSS 'text-align' property. Therefore, possible* values are 'left', 'right', 'center' and 'justify'. Specify 'right' or 'left' from the perspective* of a left-to-right (LTR) language. For RTL, the values are flipped automatically.** Examples of usage:* $t->align = array(null, 'right');* or* $t->align[1] = 'right';*/public $align;/*** @var array The value is used as CSS 'size' property.** Examples of usage:* $t->size = array('50%', '50%');* or* $t->size[1] = '120px';*/public $size;/*** @var array An array of wrapping information.* The only possible value is 'nowrap' that sets the* CSS property 'white-space' to the value 'nowrap' in the given column.** Example of usage:* $t->wrap = array(null, 'nowrap');*/public $wrap;/*** @var array Array of arrays or html_table_row objects containing the data. Alternatively, if you have* $head specified, the string 'hr' (for horizontal ruler) can be used* instead of an array of cells data resulting in a divider rendered.** Example of usage with array of arrays:* $row1 = array('Harry Potter', '76 %');* $row2 = array('Hermione Granger', '100 %');* $t->data = array($row1, $row2);** Example with array of html_table_row objects: (used for more fine-grained control)* $cell1 = new html_table_cell();* $cell1->text = 'Harry Potter';* $cell1->colspan = 2;* $row1 = new html_table_row();* $row1->cells[] = $cell1;* $cell2 = new html_table_cell();* $cell2->text = 'Hermione Granger';* $cell3 = new html_table_cell();* $cell3->text = '100 %';* $row2 = new html_table_row();* $row2->cells = array($cell2, $cell3);* $t->data = array($row1, $row2);*/public $data = [];/*** @var string Width of the table, percentage of the page preferred.* @deprecated since Moodle 2.0. Styling should be in the CSS.*/public $width = null;/*** @var string Alignment for the whole table. Can be 'right', 'left' or 'center' (default).* @deprecated since Moodle 2.0. Styling should be in the CSS.*/public $tablealign = null;/*** @var int Padding on each cell, in pixels* @deprecated since Moodle 2.0. Styling should be in the CSS.*/public $cellpadding = null;/*** @var int Spacing between cells, in pixels* @deprecated since Moodle 2.0. Styling should be in the CSS.*/public $cellspacing = null;/*** @var array Array of classes to add to particular rows, space-separated string.* Class 'lastrow' is added automatically for the last row in the table.** Example of usage:* $t->rowclasses[9] = 'tenth'*/public $rowclasses;/*** @var array An array of classes to add to every cell in a particular column,* space-separated string. Class 'cell' is added automatically by the renderer.* Classes 'c0' or 'c1' are added automatically for every odd or even column,* respectively. Class 'lastcol' is added automatically for all last cells* in a row.** Example of usage:* $t->colclasses = array(null, 'grade');*/public $colclasses;/*** @var string Description of the contents for screen readers.** The "summary" attribute on the "table" element is not supported in HTML5.* Consider describing the structure of the table in a "caption" element or in a "figure" element containing the table;* or, simplify the structure of the table so that no description is needed.** @deprecated since Moodle 3.9.*/public $summary;/*** @var string Caption for the table, typically a title.** Example of usage:* $t->caption = "TV Guide";*/public $caption;/*** @var bool Whether to hide the table's caption from sighted users.** Example of usage:* $t->caption = "TV Guide";* $t->captionhide = true;*/public $captionhide = false;/** @var bool Whether to make the table to be scrolled horizontally with ease. Make table responsive across all viewports. */public $responsive = true;/** @var string class name to add to this html table. */public $class;/*** Constructor*/public function __construct() {$this->attributes['class'] = '';}}// Alias this class to the old name.// This file will be autoloaded by the legacyclasses autoload system.// In future all uses of this class will be corrected and the legacy references will be removed.class_alias(html_table::class, \html_table::class);