Lançado Adianti Framework 7.6!
Clique aqui para saber mais
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.     
  12.     
  13.     // trait with onReload, onSearch, onDelete...
  14.     use Adianti\Base\AdiantiStandardListTrait;
  15.     /**
  16.      * Class constructor
  17.      * Creates the page, the form and the listing
  18.      */
  19.     public function __construct()
  20.     {
  21.         parent::__construct();
  22.         
  23.         parent::setDatabase('sgcm');
  24.         parent::setActiveRecord('Medico');
  25.         parent::addFilterField('id''=''id');
  26.         parent::addFilterField('nm_medico''like''nm_medico');
  27.         parent::addFilterField('crm''like''crm');
  28.         parent::addFilterField('bairro''like''bairro');
  29.         parent::addFilterField('cidade''like''cidade');
  30.         parent::setDefaultOrder('id''desc');
  31.         
  32.         // creates the form
  33.         $this->form = new BootstrapFormBuilder('list_Medico');
  34.         // define the form title
  35.         $this->form->setFormTitle('Medico');
  36.         $id = new TEntry('id');
  37.         $nm_medico = new TEntry('nm_medico');
  38.         $crm       = new TEntry('crm');
  39.         $bairro    = new TEntry('bairro');
  40.         $cidade    = new TEntry('cidade');
  41.         
  42.         $id->setSize(100);
  43.         $nm_medico->setSize('72%');
  44.         $bairro->setSize('72%');
  45.         $crm->setSize('72%');
  46.         $cidade->setSize('72%');
  47.         
  48.        
  49.         $this->form->addFields([new TLabel('Código:')],[$id]);
  50.         $this->form->addFields([new TLabel('Nome:')],[$nm_medico],[new TLabel('CRM:','#ff0000')],[$crm]);
  51.         $this->form->addFields([new TLabel('Bairro:')],[$bairro],[new TLabel('Cidade:')],[$cidade]);
  52.         // keep the form filled during navigation with session data
  53.         $this->form->setDataTSession::getValue(__CLASS__.'_filter_data') );
  54.         $this->form->addAction('Buscar', new TAction([$this'onSearch']), 'fa:search')->addStyleClass('btn-primary');
  55.         $this->form->addAction('Cadastrar', new TAction(['MedicoForm''onEdit']), 'fa:plus #69aa46');
  56.         
  57.         // creates a Datagrid
  58.         $this->datagrid = new BootstrapDatagridWrapper(new TDataGrid);
  59.         $this->datagrid->style 'width: 100%';
  60.         
  61.         $this->datagrid->enablePopover('Medico',"<img style='max-height: 150px'  src='{foto}'>");
  62.         
  63.         // $this->datagrid->datatable = 'true';
  64.         $column_codigo      = new TDataGridColumn('id''Código''center' '50');
  65.         $column_nome        = new TDataGridColumn('nm_medico''Nome''left');
  66.         $column_fone        = new TDataGridColumn('tel_cel''Fone''left');
  67.         $column_email       = new TDataGridColumn('email''Email''left');
  68.         $column_cidade_nome = new TDataGridColumn('cidade''Cidade''left');
  69.         $column_crm         = new TDataGridColumn('crm''CRM''left');
  70.         $column_cpf         = new TDataGridColumn('cpf''CPF''left');
  71.         $this->datagrid->addColumn($column_codigo);
  72.         $this->datagrid->addColumn($column_nome);
  73.         $this->datagrid->addColumn($column_crm);
  74.         $this->datagrid->addColumn($column_cpf);
  75.         $this->datagrid->addColumn($column_email);
  76.         $this->datagrid->addColumn($column_fone);        
  77.         $this->datagrid->addColumn($column_cidade_nome);
  78.         
  79.         $action_onEdit = new TDataGridAction(array('MedicoForm''onEdit'));
  80.         $action_onEdit->setButtonClass('btn btn-default btn-sm');
  81.         $action_onEdit->setLabel('Editar');
  82.         $action_onEdit->setImage('fa:pencil-square-o blue');
  83.         $action_onEdit->setField('id');
  84.         $this->datagrid->addAction($action_onEdit);
  85.         $action_onDelete = new TDataGridAction(array($this'onDelete'));
  86.         $action_onDelete->setButtonClass('btn btn-default btn-sm');
  87.         $action_onDelete->setLabel('Excluir');
  88.         $action_onDelete->setImage('fa:trash-o red');
  89.         $action_onDelete->setField('id');
  90.         $this->datagrid->addAction($action_onDelete);
  91.         // create the datagrid model
  92.         $this->datagrid->createModel();
  93.         // creates the page navigation
  94.         $this->pageNavigation = new TPageNavigation;
  95.         $this->pageNavigation->setAction(new TAction(array($this'onReload')));
  96.         $this->pageNavigation->setWidth($this->datagrid->getWidth());
  97.         $panel = new TPanelGroup;
  98.         $panel->add($this->datagrid);
  99.         $panel->addFooter($this->pageNavigation);
  100.         // vertical box container
  101.         $container = new TVBox;
  102.         $container->style 'width: 100%';
  103.         $container->add(new TXMLBreadCrumb('menu.xml'__CLASS__));
  104.         $container->add($this->form);
  105.         $container->add($panel);
  106.         parent::add($container);
  107.     }
  108. }
  109. </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 completo Meu Negócio Pronto
Use para si, ou transforme em um negócio: Inclui aulas e códigos-fontes
Gestor de conteúdo (SITE) + Loja Virtual (E-Commerce) + Emissor de Notas para infoprodutos


Meu negócio pronto 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