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. // create the HTML Renderer
  8. $this->html = new THtmlRenderer('app/resources/bar_chart.html');
  9. // replace the main section variables
  10. $this->html->enableSection('main');
  11. parent::add($this->html);
  12. }
  13. }
  14. ?>


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.

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