| Extracted from Pike v7.8 release 700 at 2013-06-08.

[Top]
String
String.HTML

# Method String.HTML.simple_obox()

Method simple_obox

  `string simple_obox(array(array(string)) rows, void|string frame_color, void|string cell_color, void|string width, void|string padding, void|function(int:string) cell_callback)`

Description

  This function should solve most of the obox needs that arises. It creates a table out of the array of arrays of strings fed into it. The tables will (with default settings) have a thin black outline around the table and between its cells. Much effort has gone into finding a simple HTML reresentation of such obox that is rendered in a similar way in all popular browsers. The current implementation has been tested against IE, Netscape, Mozilla, Opera and Konquest.

Parameter `rows`

  Simply an array of arrays with strings. The strings are the values that should appear in the table cells. All rows should have equal number of cells, otherwise the result will not be very eye pleasing.

Parameter `frame_color`

  The color of the surrounding frame. Defaults to "#000000".

Parameter `cell_color`

  The background color of the cells. Defaults to "#ffffff".

Parameter `width`

  The border width. Defaults to "1".

Parameter `padding`

  The amount of padding in each cell. Defaults to "3".

Parameter `cell_callback`

  If provided, the cell callback will be called for each cell. As in parameters it will get the current x and y coordinates in the table. The upper left cell is 0,0. In addition to the coordinates it will also receive the background color and the contents of the current cell. It is expected to return a td-element.

Example

      function cb = lambda(int x, int y, string bgcolor, string contents) {
           if(y%2) return "<td bgcolor='#aaaaff'>"+contents+"</td>";
           return "<td bgcolor='"+bgcolor+"'>"+contents+"</td>";
         }
         simple_obox(my_rows, "#0000a0", 0, "1", "3", cb);

See also

  pad_rows