Lançado Adianti Framework 7.6!
Clique aqui para saber mais
Imagens no formulário Gostaria de saber como fazer para mostra a imagem selecionada com o objeto TFile e como mostrar a imagem quando for atualização. Comprei o livro, tentei de várias formas, mas não consegui. Se puder ajudar agradeço....
FV
Imagens no formulário  
Fechado
Gostaria de saber como fazer para mostra a imagem selecionada com o objeto TFile e como mostrar a imagem quando for atualização.
Comprei o livro, tentei de várias formas, mas não consegui. Se puder ajudar agradeço.

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


GF

Olá Fagner. Isso é bem tranquilo. Para aparecer a imagem você pode salvar, após o upload da mesma, um apontamento para essa imagem. Exemplo:

  1. <?php
  2. //Carrega o objeto
  3. $obj = new Objeto(1);
  4. //Instancia o objeto TImage
  5. //Sendo que o location é o caminho para a imagem 
  6. $img = new TImage($obj->location);
  7. ?>


Nesse tipo de formulário, deixo o upload de fotos como optativo, caso o usuário não submeta arquivo com fotos eu faço apontar para uma imagem indicando sem foto.

Valeu?
GR

estou com duvidas nisso também,

  1. <?php
  2. /**
  3.  * classe TImage
  4.  * classe para exibição de imagens
  5.  */
  6. class TImage extends TElement
  7. {
  8.     private $source// localização da imagem
  9.     
  10.     /**
  11.      * método construtor
  12.      * instancia objeto TImage
  13.      * @param $source = localização da imagem
  14.      */
  15.     public function __construct($source)
  16.     {
  17.         parent::__construct('img');
  18.         
  19.         // atribui a localização da imagem
  20.         $this->src $source;
  21.         $this->border 0;
  22.     }
  23. }
  24. </code>



ou no ProdutosList.class

seu livro é uns dos melhores que já eu li, parabéns.
valeu
LJ

fiz um codigo bem simples, só que só da erro:

Erro: Argument 1 passed to TForm::addField must implement interface IWidget, instance of TImage given, called in C:siterenomearlibadiantiwidgetwebformTForm.class.php on line 196

  1. <?php
  2. /**
  3.  * ProductForm Registration
  4.  *
  5.  * @version    1.0
  6.  * @package    samples
  7.  * @subpackage library
  8.  * @author     Pablo DallOglio
  9.  * @copyright  Copyright (c) 2006-2011 Adianti Solutions Ltd. (http://www.adianti.com.br)
  10.  * @license    http://www.adianti.com.br/framework-license
  11.  */
  12. class ProductForm extends TPage
  13. {
  14.     private $form// form
  15.     /**
  16.      * Class constructor
  17.      * Creates the page and the registration form
  18.      */
  19.     function __construct()
  20.     {
  21.         parent::__construct();
  22.         
  23.         // creates the form
  24.         $this->form = new TForm('form_Product');
  25.         // creates a table
  26.         $table = new TTable;
  27.         $table_buttons = new TTable;
  28.         
  29.          // add the table inside the form
  30.         $this->form->add($table);       
  31.    
  32.         // create the form fields
  33.         $id                     = new TEntry('id');
  34.         $name                   = new TEntry('name');
  35.         $image            = new TImage('image');
  36.         
  37.      
  38.         $name->setSize(200);
  39.         $row=$table->addRow();
  40.         $row->addCell(new TLabel('Id:'));
  41.         $cell=$row->addCell($id);
  42.         $cell->colspan=2;
  43.         // add a row for the field nome
  44.         $row=$table->addRow();
  45.         $row->addCell(new TLabel('Nome:'));
  46.         $cell=$row->addCell($name);
  47.         $cell->colspan=2;
  48.        
  49.         // add a row for the field imagem
  50.         $row=$table->addRow();
  51.         $row->addCell(new TLabel('Imagem:'));
  52.         $cell=$row->addCell($image);
  53.     $cell->colspan=2;
  54.         
  55.     
  56.         // create an action button (go to list)
  57.         $goto_button=new TButton('list');
  58.         // define the button action
  59.         $goto_button->setAction(new TAction(array('ProductDataGridView''onReload')), 'Listagem');
  60.         $goto_button->setImage('ico_datagrid.gif');
  61.         
  62.         // add a row for the form action
  63.         $row=$table_buttons->addRow();
  64.         $row->addCell($goto_button);
  65.         
  66.         // add a row for the form action
  67.         $row=$table->addRow();
  68.         $cell=$row->addCell($table_buttons);
  69.         $cell->colspan=3;
  70.         // define wich are the form fields
  71.         $this->form->setFields(array($id,$name,$image,$goto_button));
  72.         // add the form to the page
  73.         parent::add($this->form);
  74.     }
  75.  
  76.     /**
  77.      * method onEdit()
  78.      * Executed whenever the user clicks at the edit button da datagrid
  79.      */
  80.     function onEdit($param)
  81.     {
  82.         try
  83.         {
  84.             if (isset($param['key']))
  85.             {
  86.                 // get the parameter $key
  87.                 $key=$param['key'];
  88.                 // open a transaction with database 'fotos'
  89.                 TTransaction::open('fotos');
  90.                 // instantiates object Book
  91.                 $object = new Product($key);
  92.                 // fill the form with the active record data
  93.                 $this->form->setData($object);
  94.                 TTransaction::close();
  95.             }
  96.             else
  97.             {
  98.                 $this->form->clear();
  99.             }
  100.         }
  101.         catch (Exception $e// in case of exception
  102.         {
  103.             // shows the exception error message
  104.             new TMessage('error''<b>Error</b> ' $e->getMessage());
  105.             // undo all pending operations
  106.             TTransaction::rollback();
  107.         }
  108.     }
  109. }
  110. ?>


PD

Oi pessoal,

A imagem (TImage) não é um componente de formulário, por isso ela não implementa a interface IWidget. Para fazer upload de imagem, recomendo usar o TFile, que inclusive está passando por uma grande reformulação (melhorias) para a próxima versão. Para exibir a imagem, você pode usar a TImage, mas não deve passar no setFields().

A exceção está sendo gerada pelo setFields(), que determina quais campos serão passados no POST do formulário ;-)

abraço,
Pablo
FM

Beleza, então como eu carrego a imagem ?
PD

Flavio,

Aguarde mais uns dias. Melhoramos o exempo do tutor (ProductForm) para demonstrar como fazer isso.
Sairá junto com a versão 3.0.0

Att
FM

Sério que ja vai sair a versão 3.0 ? vem muita novidades ?
PD

Várias novidades.
Em até 15 dias espero liberar o release.

Abraços!