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.

Curso completo Meu Negócio Pronto
Use para si, ou transforme em um negócio: Inclui aulas e códigos-fontes
Gestor de conteúdo (SITE) + Loja Virtual (E-Commerce) + Emissor de Notas para infoprodutos


Meu negócio pronto 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