saben como puedo usar highchart en cakephp...

210 views
Skip to first unread message

alexander orejuela

unread,
Dec 2, 2014, 2:56:37 PM12/2/14
to cakep...@googlegroups.com
hola
nesecito un tuto.. o una informacion clara de como0 emprezar a usar el pluging

Fayin Esca

unread,
Dec 5, 2014, 1:29:21 PM12/5/14
to cakep...@googlegroups.com
Una ves que tengas cargado el plugin en el archivo bootstrap.php, en el controlador que lo quieras utilizar cargas el componente
por ejemplo yo lo tengo en ClientesController

public $components = array('HighCharts.HighCharts');



Y la funcion con la que crearás tus gráficas en el mismo controlador, en mi caso es perfil

public function perfil() {
//consulta de los datos del negocio.
        $datosNegocios
= $this->Cliente->Negocio->find('all',array('conditions'=>array('Negocio.cliente_id'=>$this->Auth->user('id')),'fields'=>array('Negocio.nombre','Negocio.visitas'),'recursive'=>0));
        $chartData1
= array();
        $axis
= array();
       
foreach ($datosNegocios as $key) {
            array_push
($chartData1, (int)$key['Negocio']['visitas']);
            array_push
($axis, $key['Negocio']['nombre']);
       
}
        $this
->loadModel('Presentacion');
        $datosPresentaciones
=  $this->Presentacion->find('all',array('conditions'=>array('Presentacion.cliente_id'=>$this->Auth->user('id')),'fields'=>array('Presentacion.nombre','Presentacion.visitas'),'recursive'=>0));
        $chartData2
= array();
        $xAxisPresentacion
=  array();
       
foreach ($datosPresentaciones as $keyo) {
            array_push
($chartData2, (int)$keyo['Presentacion']['visitas']);
            array_push
($xAxisPresentacion, $keyo['Presentacion']['nombre']);
       
}
//nombre de las gráficas
        $chartNameOne
= 'Line Chart';
        $chartNameTwo
= 'Column Chart';
//creacion de las graficas nombre y tipo en este caso de tipo column
        $mychartOne
= $this->HighCharts->create( $chartNameOne, 'column' );
        $mychartTwo
= $this->HighCharts->create( $chartNameTwo, 'column' );
//Parámetros de la gráfica uno
        $this
->HighCharts->setChartParams(
            $chartNameOne
,
            array
(
               
'renderTo'          => 'linewrapper', // id del div donde se mostrará
               
'chartWidth'        => 800,
               
'chartHeight'       => 600,
               
'title'             => 'Popularidad de Sus Negocios - Visitas',
               
'yAxisTitleText'    => 'Visitas',
               
'xAxisCategories'=>$axis,
               
               
'creditsEnabled'    => FALSE
           
)
       
);

        $this
->HighCharts->setChartParams(
            $chartNameTwo
,
            array
(
               
'renderTo'          => 'columnwrapper', //
               
'chartWidth'        => 800,
               
'chartHeight'       => 600,
               
'title'             => 'Visitas de todas sus Presentaciones',
               
'yAxisTitleText'    => 'Visitas',
               
'xAxisCategories'=>$xAxisPresentacion,
               
               
'creditsText'       => 'cu.com',
               
'creditsURL'        => 'http://cu.com'
           
)
       
);
        $seriesOne
= $this->HighCharts->addChartSeries();
        $seriesTwo
= $this->HighCharts->addChartSeries();
        $seriesOne
->addName('Visitas')->addData($chartData1);
        $seriesTwo
->addName('Vistas Presentaciones')->addData($chartData2);
        $mychartOne
->addSeries($seriesOne);
        $mychartTwo
->addSeries($seriesTwo);
   
}
y en la vista en mi caso perfil.ctp
<div style="margin-top:50px;">
   
<?= $this->element('submenus/cliente/fluent');?>
   
       
<div class="tab-control" data-role="tab-control">
           
<ul class="tabs">
               
<li class="active"><a href="#gnegocios"><i class="icon-cart-2"></i> Negocios</a></li>
               
<li><a href="#gpresentaciones"><i class="icon-grid"></i> Presentaciones</a></li>
               
           
</ul>
           
<div class="frames">
               
<div class="frame" id="gnegocios">
                   
<div id="linewrapper" style="display: block; float: left; width:90%; margin-bottom: 20px;"></div>
                   
<?php echo $this->HighCharts->render('Line Chart'); ?>
               
</div>
               
<div class="frame" id="gpresentaciones">
                   
<div id="columnwrapper" style="display: block; float: left; width:90%; margin-bottom: 20px;"></div>
                   
<?php echo $this->HighCharts->render('Column Chart'); ?>
               
</div>
           
</div>
       
</div>
</div>

con eso verás las gráficas, en mi caso son dos de columnas

Fayin Esca

unread,
Dec 5, 2014, 1:34:22 PM12/5/14
to cakep...@googlegroups.com

JHONY JAVIER BURBANO ROBLES

unread,
Dec 11, 2014, 10:48:21 AM12/11/14
to cakep...@googlegroups.com
<div style="margin-top:50px;">
    
<?= $this->element('submenus/cliente/fluent');?>
    
        
<div class="tab-control" data-role="tab-control">
            
<ul class="tabs">
                
<li class="active"><a href="#gnegocios"><i class="icon-cart-2"></i> Negocios</a></li>
                
<li><a href="#gpresentaciones"><i class="icon-grid"></i> Presentaciones</a></li>
                
            
</ul>
            
<div class="frames">
                
<div class="frame" id="gnegocios">
                    
<div id="linewrapper" style="display: block; float: left; width:90%; margin-bottom: 20px;"></div>

tengo el mismo problema y queria saber la linea de codigo en rojo que viene siendo, no entendi eso

de antemano gracias


El viernes, 5 de diciembre de 2014 13:34:22 UTC-5, Fayin Esca escribió:


El servicio de correo misena es soportado tecnológicamente por © Google y ofrecido por el Servicio Nacional de Aprendizaje – SENA de manera gratuita a todos los colombianos y en especial a los aprendices e instructores de Programas de Formación Titulada y Complementaria. Los contenidos, textos, imágenes, archivos y puntos de vista enviados en este mensaje son responsabilidad exclusiva del remitente y no reflejan ni comprometen oficialmente a la institución. No se autoriza el uso de esta herramienta para el intercambio de correos masivos, cadenas o spam, ni de mensajes ofensivos, de carácter político, sexual o religioso, con fines de lucro, con propósitos delictivos o cualquier otro mensaje que se considere indebido o que vaya en contra de la Ley.

Fayin Esca

unread,
Dec 15, 2014, 10:16:45 PM12/15/14
to cakep...@googlegroups.com
No significa nada, es un element del submenú de mi aplicación.

Juan Jacinto

unread,
May 23, 2017, 12:24:51 PM5/23/17
to CakePHP en Español

Usalo en la vista y obten la información mediante ajax y json y te olvidas de agregar todo eso en el controlador .
En la pagina de HighChart vienen varios ejemplos en jsfiddle.

Reply all
Reply to author
Forward
0 new messages