Lançado Adianti Framework 7.6!
Clique aqui para saber mais
Não exibe o frame de imagens de nenhuma forma! Pessoal, não consigo descobrir o que esta errado. Já revisei várias vezes com o tutor. Meu form não exibe a div (frame) com a imagem de jeito nenhum. Carrega as imagens no upload. Transfere corretamente para o diretório de imagens. Não exibe nenhuma mensagem de erro, mas não mostra a div com a imagem carregada. Onde estou errando? Abaixo segue o código da página e no anexo segue ...
SS
Não exibe o frame de imagens de nenhuma forma!  
Pessoal, não consigo descobrir o que esta errado. Já revisei várias vezes com o tutor. Meu form não exibe a div (frame) com a imagem de jeito nenhum.

Carrega as imagens no upload. Transfere corretamente para o diretório de imagens. Não exibe nenhuma mensagem de erro, mas não mostra a div com a imagem carregada.

Onde estou errando?

Abaixo segue o código da página e no anexo segue a tela como está.

  1. <?php
  2. /**
  3.  * DivulgacaoForm Form
  4.  * @author  <your name here>
  5.  */
  6. class DivulgacaoForm extends TStandardForm//TPage
  7. {
  8.     protected $form// form
  9.     private   $frame;    
  10.     
  11.     /**
  12.      * Form constructor
  13.      * @param $param Request
  14.      */
  15.     public function __construct$param )
  16.     {
  17.         parent::__construct();
  18.         
  19.         // creates the form
  20.         $this->form = new TQuickForm('form_Divulgacao');
  21.         $this->form->class 'tform'// change CSS class
  22.         $this->form = new BootstrapFormWrapper($this->form);
  23.         $this->form->style 'display: table;width:100%'// change style
  24.         
  25.         // define the form title
  26.         $this->form->setFormTitle('Divulgacao');
  27.         
  28.         // create the form fields
  29.         $id = new TEntry('id');
  30.         $titulo_divulgacao = new TEntry('titulo_divulgacao');
  31.         $data_validade = new TDate('data_validade');
  32.         $caminho_imagem = new TFile('caminho_imagem'); 
  33.         
  34.         // complete upload action
  35.         $caminho_imagem->setCompleteAction(new TAction(array($this'onComplete')));
  36.         //$caminho_imagem->setAllowedExtensions( ['gif', 'png', 'jpg', 'jpeg'] );
  37.     
  38.         // add the fields
  39.         $this->form->addQuickField('Id'$id,  '30%' );
  40.         $this->form->addQuickField('Titulo Divulgacao'$titulo_divulgacao,  '70%' , new TRequiredValidator);
  41.         $this->form->addQuickField('Data Validade'$data_validade,  '70%' , new TRequiredValidator);
  42.         $this->form->addQuickField('Caminho Imagem'$caminho_imagem,  '70%' );
  43.         $this->frame = new TElement('div');
  44.         $this->frame->id 'photo_frame';
  45.         $this->frame->style 'width:400px;height:auto;min-height:200px;border:1px solid gray;padding:4px;';
  46.         $row $this->form->addRow();
  47.         $row->addCell('Imagem');
  48.         $row->addCell($this->frame);        
  49.         if (!empty($id))
  50.         {
  51.             $id->setEditable(FALSE);
  52.         }
  53.         
  54.         /** samples
  55.          $this->form->addQuickFields('Date', array($date1, new TLabel('to'), $date2)); // side by side fields
  56.          $fieldX->addValidation( 'Field X', new TRequiredValidator ); // add validation
  57.          $fieldX->setSize( 100, 40 ); // set size
  58.          **/
  59.          
  60.         // create the form actions
  61.         $this->form->addQuickAction(_t('Save'), new TAction(array($this'onSave')), 'fa:floppy-o');
  62.         $this->form->addQuickAction(_t('New'),  new TAction(array($this'onClear')), 'bs:plus-sign green');
  63.         
  64.         // vertical box container
  65.         $container = new TVBox;
  66.         $container->style 'width: 90%';
  67.         // $container->add(new TXMLBreadCrumb('menu.xml', __CLASS__));
  68.         $container->add(TPanelGroup::pack('Cadastro de Divulgacao'$this->form));
  69.         //$container->add(TPanelGroup::pack('', $this->frame));
  70.         
  71.         parent::add($container);
  72.         
  73.         
  74.     }
  75.     /**
  76.      * Save form data
  77.      * @param $param Request
  78.      */
  79.      
  80.     public static function onComplete($param)
  81.     {
  82.         new TMessage('info''Upload completed: '.$param['caminho_imagem']);
  83.         
  84.         // refresh photo_frame
  85.         TScript::create("$('#photo_frame').html('')");
  86.         TScript::create("$('#photo_frame').append(\"<img style='width:100%' src='tmp/{$param['caminho_imagem']}'>\");");
  87.     }   
  88.      
  89.     public function onSave$param )
  90.     {
  91.         try
  92.         {
  93.             TTransaction::open('dbarma'); // open a transaction
  94.             
  95.             /**
  96.             // Enable Debug logger for SQL operations inside the transaction
  97.             TTransaction::setLogger(new TLoggerSTD); // standard output
  98.             TTransaction::setLogger(new TLoggerTXT('log.txt')); // file
  99.             **/
  100.             
  101.             $this->form->validate(); // validate form data
  102.             
  103.             $object = new Divulgacao;  // create an empty object
  104.             $data $this->form->getData(); // get form data as array
  105.             $object->fromArray( (array) $data); // load the object with data
  106.             $object->store(); // save the object
  107.             
  108.             // get the generated id
  109.             $data->id $object->id;
  110.             
  111.             $this->form->setData($data); // fill form data
  112.             TTransaction::close(); // close the transaction
  113.             if ($object instanceof Divulgacao)
  114.                 {
  115.                     $source_file   'tmp/'.$object->caminho_imagem;
  116.                     $target_file   'images/' $object->caminho_imagem;
  117.                     $finfo         = new finfo(FILEINFO_MIME_TYPE);
  118.                     
  119.                     // if the user uploaded a source file
  120.                     if (file_exists($source_file) AND ($finfo->file($source_file) == 'image/png' OR $finfo->file($source_file) == 'image/jpeg'))
  121.                     {
  122.                         // move to the target directory
  123.                         rename($source_file$target_file);
  124.                         try
  125.                         {
  126.                             TTransaction::open('dbarma');
  127.                             // update the photo_path
  128.                             $object->caminho_imagem 'images/'.$object->caminho_imagem;
  129.                             $object->store();
  130.                             
  131.                             TTransaction::close();
  132.                         }
  133.                         catch (Exception $e// in case of exception
  134.                         {
  135.                             new TMessage('error'$e->getMessage());
  136.                             TTransaction::rollback();
  137.                         }
  138.                     }
  139.                     $image = new TImage($object->caminho_imagem);
  140.                     $image->style 'width: 100%';
  141.                     $this->frame->add$image );
  142.                 }            
  143.             
  144.             new TMessage('info'TAdiantiCoreTranslator::translate('Record saved'));
  145.         }
  146.         catch (Exception $e// in case of exception
  147.         {
  148.             new TMessage('error'$e->getMessage()); // shows the exception error message
  149.             $this->form->setData$this->form->getData() ); // keep form data
  150.             TTransaction::rollback(); // undo all pending operations
  151.         }
  152.     }
  153.     
  154.     /**
  155.      * Clear form data
  156.      * @param $param Request
  157.      */
  158.     public function onClear$param )
  159.     {
  160.         $this->form->clear(TRUE);
  161.     }
  162.     
  163.     /**
  164.      * Load object to form data
  165.      * @param $param Request
  166.      */
  167.     public function onEdit$param )
  168.     {
  169.         try
  170.         {
  171.             if (isset($param['key']))
  172.             {
  173.                 $key $param['key'];  // get the parameter $key
  174.                 TTransaction::open('dbarma'); // open a transaction
  175.                 $object = new Divulgacao($key); // instantiates the Active Record
  176.                 $this->form->setData($object); // fill the form
  177.                 TTransaction::close(); // close the transaction
  178.             }
  179.             else
  180.             {
  181.                 $this->form->clear(TRUE);
  182.             }
  183.             
  184.             if (isset($param['key']))
  185.             {
  186.             TTransaction::open('dbarma'); // open a transaction
  187.             $key $param['key']; 
  188.             $object = new Divulgacao($key);
  189.             
  190.                 if ($object)
  191.                 {
  192.                     $image = new TImage($object->caminho_imagem);
  193.                     $image->style 'width: 100%';
  194.                     $this->frame->add$image );
  195.                 } 
  196.             TTransaction::close(); // close a transaction
  197.                 
  198.             }           
  199.             
  200.         }
  201.         catch (Exception $e// in case of exception
  202.         {
  203.             new TMessage('error'$e->getMessage()); // shows the exception error message
  204.             TTransaction::rollback(); // undo all pending operations
  205.         }
  206.     }
  207. }

Pacotão Dominando o Adianti Framework 7
O material mais completo de treinamento do Framework.
Curso em vídeo aulas + Livro completo + Códigos fontes do projeto ERPHouse.
Conteúdo Atualizado! Versão 7.4


Dominando o Adianti 7 Quero me inscrever agora!

Comentários (10)


NR

Sérgio, acredito que seja alguma limitação da BootstrapFormWrapper. Faça o teste utilizando somente o TQuickForm.
  1. <?php
  2. $this->form = new BootstrapFormWrapper($this->form); // retire essa linha
  3. ?>

Se der certo, aconselho a usar a BootstrapFormBuilder com a função addContent
LG

Olá Sérgio rodrigues, faça um teste ai
troque aonde cria o scrite na linha 95 deixando assim:

TScript::create("$('#photo_frame').append(\"<img style='width:100%' src='tmp/{$param['caminho_imagem']}'>\")");

LG

TScript::create("$('#photo_frame').append("<img style='width:100%' src='tmp/{$param['caminho_imagem']}'>")");
LG

Não sei se o seu código já está assim: Está removendo a barra invertida antes das duas aspas internas.
SS

Nataniel, ao retirar a linha do bootstrap que você aconselhou, realmente começou a exibir o quadro da imagem que antes não estava acontecendo. Obrigado.

Mas ainda não exibe a imagem no local.

Leandro, segui a sua dica do script, mas agora está dando o seguinte erro.

Parse error: syntax error, unexpected 'style' (T_STRING) in C:xampphtdocsctrlarmasappcontrolDivulgacaoForm.class.php on line 95

O que mais posso fazer?
SS

Corrigindo. Após salvar, passa a exibir. Mas um novo registro, no upload, não exibe a imagem. Deve ser bem algo relacionado ao script que o Leandro falou.

Mais alguma dica?
NR

Acontece que o fórum retira as contra-barras. Deixe essa linha exatamente como no exemplo do tutor que deve funcionar.
SS

Há tá! Entendi! Ao revisar o código que postei, vi que realmente alterou o conteudo. Mas infelizmente está exatamente igual ao tutor, mas ele não carrega a imagem!
AL

Sergio, talvez seja tarde, mas a pouco passei pelo mesmo problema usando o BootstrapForm(Builder ou Wrapper)e o que resolveu foi desabilitar o htaccess da pasta de imagem. apenas dela para não atrapalhar a segurança do framework.

Perdoe ser tarde, mas só agora ocorreu comigo e procurando no fórum vi sua pergunta, como resolvi, voltei pra postar resposta.

WR

Também estava com o mesmo problema da imagem não aparecer no Frame, resolvi comentando a linha que o amigo Nataniel sugeriu lá no início do post.
Tentei também como o Alexsander falou , mas para mim não funcionou.
Enfim, agora está aparecendo a imagem no Frame.

Abraços