<?php function theme_blocks(){} function theme_block(){} /** * Return a themed table. * * @param $header * An array containing the table headers. Each element of the array can be * either a localized string or an associative array with the following keys: * - "data": The localized title of the table column. * - TODO : "field": The database field represented in the table column (required if * user is to be able to sort on this column). * - TODO : "sort": A default sort order for this column ("asc" or "desc"). * - Any HTML attributes, such as "colspan", to apply to the column header cell. * @param $rows * An array of table rows. Every row is an array of cells, or an associative * array with the following keys: * - "data": an array of cells * - Any HTML attributes, such as "class", to apply to the table row. * * Each cell can be either a string or an associative array with the following keys: * - "data": The string to display in the table cell. * - "header": Indicates this cell is a header. * - Any HTML attributes, such as "colspan", to apply to the table cell. * * Here's an example for $rows: * @verbatim * $rows = array( * // Simple row * array( * 'Cell 1', 'Cell 2', 'Cell 3' * ), * // Row with attributes on the row and some of its cells. * array( * 'data' => array('Cell 1', array('data' => 'Cell 2', 'colspan' => 2)), 'class' => 'funky' * ) * ); * @endverbatim * * @param $attributes * An array of HTML attributes to apply to the table tag. * @param $caption * A localized string to use for the <caption> tag. * @return * An HTML string representing the table. */ function theme_table($header, $rows, $attributes = array(), $caption = NULL) { $output = '<table'. theme_attributes($attributes) .">\n"; if (isset($caption)) { $output .= '<caption>'. $caption ."</caption>\n"; } // Format the table header: if (count($header)) { // HTML requires that the thead tag has tr tags in it follwed by tbody // tags. Using ternary operator to check and see if we have any rows. $output .= (count($rows) ? ' <thead><tr>' : ' <tr>'); foreach ($header as $cell) { $output .= theme_table_cell($cell, TRUE); } // Using ternary operator to close the tags based on whether or not there are rows $output .= (count($rows) ? " </tr></thead>\n" : "</tr>\n"); } else { $ts = array(); } // Format the table rows: if (count($rows)) { $output .= "<tbody>\n"; $flip = array('even' => 'odd', 'odd' => 'even'); $class = 'even'; foreach ($rows as $number => $row) { $attributes = array(); // Check if we're dealing with a simple or complex row if (isset($row['data'])) { foreach ($row as $key => $value) { if ($key == 'data') { $cells = $value; } else { $attributes[$key] = $value; } } } else { $cells = $row; } if (count($cells)) { // Add odd/even class $class = $flip[$class]; if (isset($attributes['class'])) { $attributes['class'] .= ' '. $class; } else { $attributes['class'] = $class; } // Build row $output .= ' <tr'. theme_attributes($attributes) .'>'; $i = 0; foreach ($cells as $cell) { $output .= theme_table_cell($cell); } $output .= " </tr>\n"; } } $output .= "</tbody>\n"; } $output .= "</table>\n"; return $output; } /** * Format an attribute string to insert in a tag. * * @param $attributes * An associative array of HTML attributes. * @return * An HTML string ready for insertion in a tag. */ function theme_attributes($attributes = array()) { if (is_array($attributes)) { $t = ''; foreach ($attributes as $key => $value) { $t .= " $key=".'"'. check_plain($value) .'"'; } return $t; } } function theme_table_cell($cell, $header = FALSE) { $attributes = ''; if (is_array($cell)) { $data = isset($cell['data']) ? $cell['data'] : ''; $header |= isset($cell['header']); unset($cell['data']); unset($cell['header']); $attributes = theme_attributes($cell); } else { $data = $cell; } if ($header) { $output = "<th$attributes>$data</th>"; } else { $output = "<td$attributes>$data</td>"; } return $output; } function theme_image(){} function theme_link(){}