Lançado Adianti Framework 7.6!
Clique aqui para saber mais
Gerar gráfico Chart.js no template Olá! Instalei o Chart.js via composer. Segue o composer.json: { "repositories": [ { "type": "vcs", "url": "https://github.com/pablodalloglio/ole" }, { "type": "vcs", "url": "https://github.com/pablodalloglio/spreadsheet_excel_writer" } ], "require": { "phpmailer/phpmailer": "^6.0", "tburry/pquery": "^1.1", "picqer/php-barcode-genera...
BJ
Gerar gráfico Chart.js no template  
Olá!

Instalei o Chart.js via composer.

Segue o composer.json:

{ "repositories": [ { "type": "vcs", "url": "https://github.com/pablodalloglio/ole" }, { "type": "vcs", "url": "https://github.com/pablodalloglio/spreadsheet_excel_writer" } ], "require": { "phpmailer/phpmailer": "^6.0", "tburry/pquery": "^1.1", "picqer/php-barcode-generator": "^0.2.2", "dompdf/dompdf": "^0.8.1", "bacon/bacon-qr-code": "^1.0", "phprtflite/phprtflite": "^1.3", "firebase/php-jwt": "^5.0", "pablodalloglio/ole": "dev-master", "pablodalloglio/spreadsheet_excel_writer": "dev-master", "linfo/linfo": "^4.0", "fzaninotto/faker": "^1.9", "nnnick/chartjs": "^2.9" } }


Este é o html obtido : app/resources/bar_chart.html

<!--[main]--> <canvas id="pie-chart" width="800" height="450"></canvas> <script> new Chart(document.getElementById("pie-chart"), { type: 'pie', data: { labels: ["Africa", "Asia", "Europe", "Latin America", "North America"], datasets: [{ label: "Population (millions)", backgroundColor: ["#3e95cd", "#8e5ea2","#3cba9f","#e8c3b9","#c45850"], data: [2478,5267,734,784,433] }] }, options: { title: { display: true, text: 'Predicted world population (millions) in 2050' } } }); </script> <!--[/main]-->


Abaixo a classe que renderiza:

  1. <?php
  2. class BarChartView extends TPage
  3. {
  4.     public function __construct()
  5.     {
  6.         parent::__construct();
  7.         
  8.         // create the HTML Renderer
  9.         $this->html = new THtmlRenderer('app/resources/bar_chart.html');
  10.         
  11.         // replace the main section variables
  12.         $this->html->enableSection('main');
  13.         
  14.         parent::add($this->html);
  15.     }
  16. }
  17. ?>


Inclui a classe no engine.php para poder rodar apenas logando

  1. <?php>
  2.     /**
  3.      * Return default programs for logged users
  4.      */
  5.     public static function getDefaultPermissions()
  6.     {
  7.         return ['Adianti\Base\TStandardSeek' => TRUE,
  8.                 'LoginForm' => TRUE,
  9.                 'AdiantiMultiSearchService' => TRUE,
  10.                 'AdiantiUploaderService' => TRUE,
  11.                 'AdiantiAutocompleteService' => TRUE,
  12.                 'SystemDocumentUploaderService' => TRUE,
  13.                 'EmptyPage' => TRUE,
  14.                 'MessageList' => TRUE,
  15.                 'NotificationList' => TRUE,
  16.                 'SearchBox' => TRUE,
  17.                 'BarChartView' => TRUE,
  18.                 'SearchInputBox' => TRUE];
  19.     } 
  20. ?>


Ao carregar a classe nada, só uma janela em branco.
Alguém pode me dizer o que estou fazendo de errado?

Grato.

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


HD

Boa tarde,

Debuga pelo navegador pra ver se retorna algum erro no console!

Em qual lugar está fazendo a chamada da biblioteca?

<!-- Ex: libraries.html ou layout.html --> <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.9.3/Chart.min.js"></script>

BJ

Boa noite Hélquisson,

Pensei que bastava instalar via Composer e o Adianti carregava todas as dependências, sendo assim com a sua dica fiz a seguinte referência no libraries.html:

<script src="vendor/nnnick/chartjs/dist/Chart.min.js"></script>

E funcionou beleza.

Grato pela assistência.

Abraços