public function __construct() { parent::__construct(); $dados[] = array(1, 'Maria da Silva', 'http://www.maria.com.br', 1200); $dados[] = array(2, 'Pedro Cardoso', 'http://www.pedro.com.br', 800); $dados[] = array(3, 'João de Barro', 'http://www.joao.com.br', 1500); $dados[] = array(3, 'Joana Pereira', 'http://www.joana.com.br', 700); $dados[] = array(3, 'Erasmo Carlos', 'http://www.erasmo.com.br', 2500); $tabela = new Table(); $tabela->width = 600; $tabela->style = 'margin: 20px'; $cabecalho = $tabela->addRow(); $cabecalho->style = 'background: #a0a0a0'; $cabecalho->addCell('Código'); $cabecalho->addCell('Nome'); $cabecalho->addCell('Site'); $cabecalho->addCell('Salário'); $i = 0; $total = 0; foreach ($dados as $pessoa) { $bgcolor = $i % 2 == 0 ? '#d0d0d0' : '#ffffff'; $linha = $tabela->addRow(); $linha->style = "background: {$bgcolor}"; $linha->addCell($pessoa[0]); $linha->addCell($pessoa[1]); $linha->addCell($pessoa[2]); $x = $linha->addCell($pessoa[3]); $x->align = 'right'; $total += $pessoa[3]; $i++; } $linha = $tabela->addRow(); $celula = $linha->addCell('Total'); $celula->style = 'background: whiteSmoke'; $celula->colspan = 3; $celula = $linha->addCell($total); $celula->style = 'background: #FFF08C; text-align: right'; $tabela->show(); }
/** * Adiciona um objeto na grid * @param $object = Objeto que contém os dados */ public function addItem($object) { // adiciona uma linha na Datagrid $row = parent::addRow(); // verifica se a listagem possui ações if ($this->actions) { // percorre as ações foreach ($this->actions as $action) { // obtém as propriedades da ação $url = $action->serialize(); $label = $action->getLabel(); $image = $action->getImage(); $field = $action->getField(); // obtém o campo do objeto que será passado adiante $key = $object->{$field}; // cria um link $link = new Element('a'); $link->href = "{$url}&key={$key}&{$field}={$key}"; // verifica se o link será com imagem ou com texto if ($image) { // adiciona a imagem ao link $img = new Element('img'); $img->src = "App/Images/{$image}"; $img->title = $label; $link->add($img); } else { // adiciona o rótulo de texto ao link $link->add($label); } // adiciona a célula à linha $row->addCell($link); } } if ($this->columns) { // percorre as colunas da Datagrid foreach ($this->columns as $column) { // obtém as propriedades da coluna $name = $column->getName(); $align = $column->getAlign(); $width = $column->getWidth(); $function = $column->getTransformer(); $data = $object->{$name}; // verifica se há função para transformar os dados if ($function) { // aplica a função sobre os dados $data = call_user_func($function, $data); } // adiciona a célula na linha $celula = $row->addCell($data); $celula->align = $align; $celula->width = $width; } } // incrementa o contador de linhas $this->rowcount++; }