Hackeando o CodeIgniter

Ao ensinar CodeIgniter no curso de PHP, surgiu uma dúvida interessante ao usarmos a classe HTMLTable para montar uma tabela automagicamente com os dados de uma consulta ao banco de dados: seria possível, ao montar a tabela, já criar links em endereços de email que estejam gravados no banco (por exemplo)?

A função auto_link() do helper URL permite que se faça isso com uma string, mas não existe uma maneira de passar uma função para o método generate() da classe.

Como o framework é disponibilizado com os fontes, basta alterar o funcionamento da classe e incluir a função auto_link() no método generate():

foreach($row as $cell) {
    $out .= $this->template['cell_'.$name.'start'];
    if ($cell == "") {
        $out .= $this->empty_cells;
    } else {
        // é importante testar se o helper URL está carregado
        $out .= function_exists('auto_link') ? auto_link($cell) : $cell;
    }
    $out .= $this->template['cell_'.$name.'end'];
}

A alteração deve ser feita na linha 270 do arquivo system/libraries/Table.php na instalação do CodeIgniter.