erro ao migrar boa tarde galera estou migrando um sistema para a versão nova do fw porem deu o seguinte erro...
AS
erro ao migrar  
Fechado
boa tarde galera estou migrando um sistema para a versão nova do fw
porem deu o seguinte erro

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


AS

essa é a class que eu usei em um sistema, e esta dando erro na nova versão

Warning: func_get_arg(): Argument 0 not passed to function in /home/alexandre/web-studio/factorERP/lib/adianti/control/TStandardList.class.php on line 287


 
  1. <?php
  2. /** class de controle de funcionarios
  3. * author Alexandre E. Souza
  4. */
  5. class EntradaView extends TStandardList{
  6. protected $grid;
  7. protected $panel;
  8. protected $form;
  9. protected $pagination;
  10. function __construct()
  11. {
  12. parent::__construct();
  13. parent::setDatabase('mysql');
  14. parent::setActiveRecord("Entrada");
  15. parent::setFilterField('id');
  16. User::checaLogin('convidado');
  17. $this->panel = new TPanel(800,600);
  18. $table = new TTable();
  19. $tabela = $table->addRow();
  20. $novo = $table->addRow();
  21. if(TSession::getValue('permissao')>=3){
  22. $frm = new TForm();
  23. $btnNovo = new TButton('novo');
  24. $btnNovo->setAction(new TAction(array('frmEntrada','onEdit')),'Novo');
  25. $btnNovo->setImage('ico_new.png');
  26. $frm->setFields(array($btnNovo));
  27. $novo->addCell($frm);
  28. }
  29. $this->grid = new TQuickGrid();
  30. $this->grid->setHeight("400");
  31. $this->grid->addQuickColumn('Produto','produto','left',170);
  32. $this->grid->addQuickColumn('NF','nf','left',170);
  33. $this->grid->addQuickColumn('QTD','qtd','left',170);
  34. $this->grid->addQuickColumn('Data Entrada','dataF','left',170);
  35. if(TSession::getValue('permissao')>=3){
  36. $this->grid->addQuickAction('Editar', new TDataGridAction(array('frmEntregas','onEdit')),'id','ico_edit.png');
  37. $this->grid->addQuickAction('Deletar', new TDataGridAction(array($this,'onDelete')),'id','ico_delete.png');
  38. // $this->grid->addQuickAction('Novo', new TDataGridAction(array('frmVeiculos','__construct')),'ico_form.png');
  39. }
  40. $tabela->addCell($this->grid);
  41. $this->grid->createModel();
  42. $this->panel->put($table,50,10);
  43. // formulario
  44. parent::add($this->panel);
  45. }
  46. public function show(){
  47. parent::show();
  48. $this->onReload();
  49. }
  50. public function onReload($param = NULL) {
  51. $this->grid->Clear();
  52. try{
  53. TTransaction::open("mysql");// abre a transação
  54. $repo = new TRepository("Entrada");
  55. $criteria = new TCriteria();
  56. $criteria->setProperty('order', 'dataF');
  57. $criteria->setProperty('direction', 'desc');
  58. $veiculos = $repo->load($criteria);
  59. $d = new TDate('data');
  60. foreach ($veiculos as $key ) {
  61. $item = new StdClass();
  62. $item->id = $key->id;
  63. $item->produto = $key->produto->nome;
  64. $item->nf = $key->nf;
  65. $item->qtd = $key->qtd;
  66. $item->dataF = $d->date2br($key->dataF);
  67. $this->grid->addItem($item);
  68. }
  69. TTransaction::close();// abre a transação
  70. }catch(Exeption $e){
  71. new TMessage('error',$e->getMessage());
  72. }
  73. }
  74. }
  75. ?>
PD

Oi Alexandre,

Acredito que você tenha esquecido de um item do migration (www.adianti.com.br/framework-migration), que é:

"Caso você ainda tenha um engine.php da versão anterior, deverá passar os parâmetros da URL ($_GET) ao executar o método show() da página $page->show( $_GET ). Na nova versão do engine.php (que utiliza a classe TCoreApplication, isso já está habilitado por default;"

abraço,
Pablo
PD

Alexandre,

Isso quer dizer que se você está com o engine.php antigo, deve substituir:
$page->show();

por:
$page->show( $_GET );

abs,
Pablo
AS

então pablo estou usando o novo
baixei o fw novo, e so peguei meu controles e models


esse é o engine que to usando é o novo

 
  1. <?php
  2. // define the autoloader
  3. include_once 'lib/adianti/util/TAdiantiLoader.class.php';
  4. spl_autoload_register(array('TAdiantiLoader', 'autoload_web'));
  5. // read configurations
  6. $ini = parse_ini_file('application.ini');
  7. date_default_timezone_set($ini['timezone']);
  8. TAdiantiCoreTranslator::setLanguage( $ini['language'] );
  9. TApplicationTranslator::setLanguage( $ini['language'] );
  10. // define constants
  11. define('APPLICATION_NAME', $ini['application']);
  12. define('OS', strtoupper(substr(PHP_OS, 0, 3)));
  13. define('PATH', dirname(__FILE__));
  14. class TApplication extends TCoreApplication
  15. {
  16. static public function run($debug = FALSE)
  17. {
  18. new TSession;
  19. if ($_REQUEST)
  20. {
  21. parent::run($debug);
  22. }
  23. }
  24. }
  25. TApplication::run(TRUE);
  26. ?>
PD

Oi Alexandre,

Nesse caso, você não precisa reescrever o show(), pq o show() da TStandardList já chama o onReload() por default. Mas se você quiser reescrever, faça da seguinte maneira:
 
  1. <?php
  2. public function show(){
  3. parent::show();
  4. $this->onReload( func_get_arg(0) );
  5. }
  6. ?>


abs,
Pablo