Imagem Popover Datagrid Boa noite pessoal! Estou passando por dificuldades em exibir imagens em datagrid usando o recurso popover. o cogido é o seguinte: ...
JP
Imagem Popover Datagrid  
Boa noite pessoal!
Estou passando por dificuldades em exibir imagens em datagrid usando o recurso popover. o cogido é o seguinte:

 
  1. <?php
  2. /**
  3. * MedicoList Listing
  4. * @author <your name here>
  5. */
  6. class MedicoList extends TStandardList
  7. {
  8. protected $form; // form
  9. protected $datagrid; // listing
  10. protected $pageNavigation;
  11. // trait with onReload, onSearch, onDelete...
  12. use Adianti\Base\AdiantiStandardListTrait;
  13. /**
  14. * Class constructor
  15. * Creates the page, the form and the listing
  16. */
  17. public function __construct()
  18. {
  19. parent::__construct();
  20. parent::setDatabase('sgcm');
  21. parent::setActiveRecord('Medico');
  22. parent::addFilterField('id', '=', 'id');
  23. parent::addFilterField('nm_medico', 'like', 'nm_medico');
  24. parent::addFilterField('crm', 'like', 'crm');
  25. parent::addFilterField('bairro', 'like', 'bairro');
  26. parent::addFilterField('cidade', 'like', 'cidade');
  27. parent::setDefaultOrder('id', 'desc');
  28. // creates the form
  29. $this->form = new BootstrapFormBuilder('list_Medico');
  30. // define the form title
  31. $this->form->setFormTitle('Medico');
  32. $id = new TEntry('id');
  33. $nm_medico = new TEntry('nm_medico');
  34. $crm = new TEntry('crm');
  35. $bairro = new TEntry('bairro');
  36. $cidade = new TEntry('cidade');
  37. $id->setSize(100);
  38. $nm_medico->setSize('72%');
  39. $bairro->setSize('72%');
  40. $crm->setSize('72%');
  41. $cidade->setSize('72%');
  42. $this->form->addFields([new TLabel('Código:')],[$id]);
  43. $this->form->addFields([new TLabel('Nome:')],[$nm_medico],[new TLabel('CRM:','#ff0000')],[$crm]);
  44. $this->form->addFields([new TLabel('Bairro:')],[$bairro],[new TLabel('Cidade:')],[$cidade]);
  45. // keep the form filled during navigation with session data
  46. $this->form->setData( TSession::getValue(__CLASS__.'_filter_data') );
  47. $this->form->addAction('Buscar', new TAction([$this, 'onSearch']), 'fa:search')->addStyleClass('btn-primary');
  48. $this->form->addAction('Cadastrar', new TAction(['MedicoForm', 'onEdit']), 'fa:plus #69aa46');
  49. // creates a Datagrid
  50. $this->datagrid = new BootstrapDatagridWrapper(new TDataGrid);
  51. $this->datagrid->style = 'width: 100%';
  52. $this->datagrid->enablePopover('Medico',"<img style='max-height: 150px' src='{foto}'>");
  53. // $this->datagrid->datatable = 'true';
  54. $column_codigo = new TDataGridColumn('id', 'Código', 'center' , '50');
  55. $column_nome = new TDataGridColumn('nm_medico', 'Nome', 'left');
  56. $column_fone = new TDataGridColumn('tel_cel', 'Fone', 'left');
  57. $column_email = new TDataGridColumn('email', 'Email', 'left');
  58. $column_cidade_nome = new TDataGridColumn('cidade', 'Cidade', 'left');
  59. $column_crm = new TDataGridColumn('crm', 'CRM', 'left');
  60. $column_cpf = new TDataGridColumn('cpf', 'CPF', 'left');
  61. $this->datagrid->addColumn($column_codigo);
  62. $this->datagrid->addColumn($column_nome);
  63. $this->datagrid->addColumn($column_crm);
  64. $this->datagrid->addColumn($column_cpf);
  65. $this->datagrid->addColumn($column_email);
  66. $this->datagrid->addColumn($column_fone);
  67. $this->datagrid->addColumn($column_cidade_nome);
  68. $action_onEdit = new TDataGridAction(array('MedicoForm', 'onEdit'));
  69. $action_onEdit->setButtonClass('btn btn-default btn-sm');
  70. $action_onEdit->setLabel('Editar');
  71. $action_onEdit->setImage('fa:pencil-square-o blue');
  72. $action_onEdit->setField('id');
  73. $this->datagrid->addAction($action_onEdit);
  74. $action_onDelete = new TDataGridAction(array($this, 'onDelete'));
  75. $action_onDelete->setButtonClass('btn btn-default btn-sm');
  76. $action_onDelete->setLabel('Excluir');
  77. $action_onDelete->setImage('fa:trash-o red');
  78. $action_onDelete->setField('id');
  79. $this->datagrid->addAction($action_onDelete);
  80. // create the datagrid model
  81. $this->datagrid->createModel();
  82. // creates the page navigation
  83. $this->pageNavigation = new TPageNavigation;
  84. $this->pageNavigation->setAction(new TAction(array($this, 'onReload')));
  85. $this->pageNavigation->setWidth($this->datagrid->getWidth());
  86. $panel = new TPanelGroup;
  87. $panel->add($this->datagrid);
  88. $panel->addFooter($this->pageNavigation);
  89. // vertical box container
  90. $container = new TVBox;
  91. $container->style = 'width: 100%';
  92. $container->add(new TXMLBreadCrumb('menu.xml', __CLASS__));
  93. $container->add($this->form);
  94. $container->add($panel);
  95. parent::add($container);
  96. }
  97. }
  98. </code>



Na linha onde habilito o popover (
$this->datagrid->enablePopover('Medico',"<img style='max-height: 150px' src='{foto}'>");
) quando passo o cursor do mouse sobre a linha da datagrid sempre da o erro ou aviso em anexo.

Se alterado o nome do campo "foto" pra qualquer coisa o problema não ocorre, mas a imagem também não é carregada. A tabela do banco de dados está como "text" assim como a tabela "product" do banco de dados "samples" do tutor.. na tabela é gravado o caminho certinho, porem não carrega.
Se eu usar o trecho de codigo "
$this->datagrid->enablePopover('Medico',"<div class='well'>{foto}</div>");
" o caminho aparece certo no popover.
Alguém pode me ajudar no que estou errando.

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 (2)


JP

Bom dia pessoal!
Resolvido removendo o arquivo .htaccess da pasta "files".
De qualquer forma obrigado!
DT

Great! From Indonesia