1. <?php
  2. require_once 'table_colgroup.php';
  3.  
  4. function isIncludeable($file)
  5. {
  6.     if (!defined('PATH_SEPARATOR')) {
  7.         define('PATH_SEPARATOR', strtoupper(substr(PHP_OS, 0, 3) == 'WIN') ? ';' : ':');
  8.     }
  9.     foreach (explode(PATH_SEPARATOR, ini_get('include_path')) as $path) {
  10.         if (file_exists($path . DIRECTORY_SEPARATOR . $file) &&
  11.               is_readable($path . DIRECTORY_SEPARATOR . $file)) {
  12.             return true;
  13.         }
  14.     }
  15.     return false;
  16. }
  17.  
  18. function varDump($var)
  19. {
  20.     $available = isIncludeable('Var_Dump.php');
  21.     if ($available) {
  22.         include_once 'Var_Dump.php';
  23.         Var_Dump::display($var, false, array('display_mode' => 'HTML4_Table'));
  24.     } else {
  25.         $styles = array('');
  26.         echo '<pre style="background-color:#eee; color:#000; padding:1em;">';
  27.         var_dump($var);
  28.         echo '</pre>';
  29.     }
  30. }
  31.  
  32.  
  33.  
  34. $datasrc = array(array('1','2','3','4','5'),array('6','7','8','9','10'));
  35.  
  36. $columns = array('col1', 'col2', 'col3', 'col4', 'col5');
  37.  
  38. $table = new HTML_Table_ColGroup(array('class' => 'listwSelection'));
  39. $thead = &$table->getHeader();
  40. $tbody = &$table->getBody();
  41. $tfoot = &$table->getFooter();
  42. $table->setCaption('Table 1. test for colgroup specs', array('style' => 'caption-side: bottom;'));
  43.  
  44. // add header cells
  45. $thead->addRow($columns);
  46.  
  47. // add body contents
  48. foreach ($datasrc as $id => $data) {
  49.     $tbody->addRow($data);
  50. }
  51.  
  52. $altRow1 = array('class' => 'odd');
  53. $altRow2 = array('class' => 'even');
  54. // incompatible with "colgroup"
  55. #$table->altRowAttributes(0, $altRow1, $altRow2, true);
  56.  
  57. $test = trim($_GET['test']);
  58.  
  59. switch($test) {
  60.     case '1':
  61.         /*
  62.           <colgroup span="3" class="groupe1"></colgroup>
  63.         */
  64.         $colgroup = '';
  65.         $attributes = 'span=3 class=groupe1';
  66.         $table->setColGroup($colgroup, $attributes);
  67.         break;
  68.     case '2':
  69.         /*
  70.           <colgroup span="3" class="groupe1">
  71.             <col style="font-size:120%;">
  72.             <col class="colonne2">
  73.             <col align="right">
  74.           </colgroup>
  75.         */
  76.         $colgroup = array('style=font-size:120%;', 'class=colonne2', 'align=right');
  77.         $attributes = 'span=3 class=groupe1';
  78.         $table->setColGroup($colgroup, $attributes);
  79.         break;
  80.     case '3':
  81.         /*
  82.           <colgroup span="3" class="groupe1">
  83.             <col style="font-size:120%;">
  84.             <col class="colonne2">
  85.             <col align="right">
  86.           </colgroup>
  87.           <colgroup span="2" class="groupe2">
  88.             <col class="colonne4">
  89.             <col class="colonne5">
  90.           </colgroup>
  91.         */
  92.         $colgroup = array('style=font-size:120%;', 'class=colonne2', 'align=right');
  93.         $attributes = 'span=3 class=groupe1';
  94.         $table->setColGroup($colgroup, $attributes);
  95.  
  96.         $colgroup = array(array('class' => 'colonne4'), array('class' => 'colonne5'));
  97.         $attributes = 'span=2 class=groupe2';
  98.         $table->setColGroup($colgroup, $attributes);
  99.         break;
  100.     default:
  101.         /*
  102.            none colgroup specs
  103.         */
  104.         $colgroup = null;
  105.         $attributes = null;
  106.         $table->setColGroup($colgroup, $attributes);
  107.         break;
  108. }
  109. varDump($table->_colgroup);
  110. ?>
  111. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  112. <html>
  113. <head>
  114. <title>Sans Titre</title>
  115. <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
  116. <style type="text/css">
  117. body {
  118.     font-family : Verdana, Arial;
  119. }
  120.  
  121. .groupe1 {
  122.   width: 1*;
  123.   text-align: center;
  124.   background: yellow;
  125. }
  126. .groupe2 {
  127.   width: 2*;
  128. }
  129. .colonne2 {
  130.   background: red;
  131. }
  132. .colonne4 {
  133.   text-align: right;
  134. }
  135. .colonne5 {
  136.   background: lightblue;
  137.   text-align: center;
  138. }
  139.  
  140. .odd {
  141.   background-color: #E5E5E5;
  142. }
  143. .even {
  144.   background-color: #D5D5D5;
  145. }
  146.  
  147. table.listwSelection  {
  148.     width: 100%;
  149. }
  150. table.listwSelection thead, table.listwSelection tfoot {
  151.   background-color: silver;
  152. }
  153. table.listwSelection thead td {
  154.   font-weight: bold;
  155. }
  156. table.listwSelection tfoot td.total {
  157.     text-align: center;
  158. }
  159. table.listwSelection tbody {
  160.   overflow-y: auto;
  161.   overflow-x: hidden;
  162.   width: 35em;
  163.   height: 20em;
  164.   border: 1px dotted red;
  165. }
  166.  
  167. table.listwSelection tbody tr {
  168.   height: auto;  /* hack for IE */
  169.   vertical-align: top;
  170. }
  171. </style>
  172. </head>
  173. <body>
  174.  
  175. <?php
  176.     echo $table->toHtml();
  177. ?>
  178. </body>
  179.  
  180. </html>