Conheça  A Ferramenta LowCode mais moderna e veloz para desenvolvimento PHP: Adianti Creator
Controle de status Bom dia, pessoal. Estou fazendo um controle de status de mesas. Dando uma olhada nos exemplos do tutor optei por usar RadioGroup com setUseButton. Meu código inicial: ...
CS
Controle de status  
Bom dia, pessoal. Estou fazendo um controle de status de mesas. Dando uma olhada nos exemplos do tutor optei por usar RadioGroup com setUseButton.

Meu código inicial:
 
  1. <?php
  2. public function __construct()
  3. {
  4. parent::__construct();
  5. // creates the form
  6. $this->form = new TQuickForm('form_search_OprComanda');
  7. $this->form->class = 'tform'; // change CSS class
  8. $this->form = new BootstrapFormWrapper($this->form);
  9. $this->form->style = 'display: table;width:100%'; // change style
  10. $this->form->setFormTitle('OprComanda');
  11. // create the form fields
  12. $radio = new TRadioGroup('radio');
  13. $radio->setLayout('horizontal');
  14. $radio->setUseButton();
  15. $radio->setBreakItems(5);
  16. TTransaction::open('sigaw');
  17. $mesas = new TRepository('GerMesa');
  18. $mesas_obj = $mesas->load();
  19. $items_radio = array();
  20. foreach($mesas_obj as $mesa)
  21. {
  22. $items_radio[$mesa->id] = $mesa->id;
  23. }
  24. asort($items_radio);
  25. $radio->addItems($items_radio);
  26. foreach ($radio->getLabels() as $key => $label)
  27. {
  28. $label->setTip("Mesa $key");
  29. $label->setSize(40);
  30. }
  31. $this->form->addQuickField('', $radio, 50 );
  32. ?>


Gostaria de uma ajuda:
- Esta certa a maneira de chamada na função __construct ou teria que ser na onReload?
- Utilizando o Radio eu consigo colorir cada button com uma cor de acordo com o status (ocupado ou livre)?
- Utilizando o Radio consigo passar uma action (edit ou new) de acordo com o click em cada button separado?
Ou o radio não seria interessante para esta situação e deveria usar outro componente?

[]'s

Stclara.

Curso Dominando o Adianti Framework

O material mais completo de treinamento do Framework.
Curso em vídeo aulas + Livro completo + Códigos fontes do projeto ERPHouse.
Conteúdo Atualizado!


Dominando o Adianti Framework Quero me inscrever agora!

Comentários (3)


NR

1 - A função onReload é utilizada mais em páginas com datagrid. Pode manter no construtor.
2 - Se alterar a cor do botão acho que não vai ficar visível qual está selecionado. Mas é possível:
 
  1. <?php
  2. foreach ($radio->getLabels() as $key => $label)
  3. {
  4. $label->style = 'color: red';//fonte vermelha
  5. //$label->style = 'background: red';//fundo vermelho
  6. }
  7. ?>

3 - Você vai ter que usar a função setExitAction e tratar o valor selecionado.
4 - Dependendo da interface que você deseja montar talvez seja interessante criar um html específico e usar com o THtmlRenderer. Também existe a opção de usar botões, veja o exemplo:
adianti.com.br/framework_files/tutor/index.php?class=FormButtonStyle

Ainda, se continuar utilizando o radio, considere utilizar o TDBRadioGroup para não ter que preencher as opções manualmente.
CS

Obrigado, Nataniel. Mas como adicionar os Buttons de forma dinamica de acordo com o resultado obtido de $mesas = new TRepository('GerMesa');?


[]'s
NR

A classe TQuickForm possui a função addRow, que retorna um instância de TTableRow. Desse modo você consegue criar linhas e colunas e adcionar o conteúdo que quiser:
 
  1. <?php
  2. $row = $this->form->addRow();
  3. $row->addCell($button1);
  4. $row->addCell($button2);
  5. $row = $this->form->addRow();
  6. $row->addCell($button3);
  7. $row->addCell($button4);
  8. ?>