terça-feira, 28 de outubro de 2014

Paginação no Codeigniter

//Controller

public function index(){

$this->load->library('pagination');
$config['base_url'] = 'http://localhost/www/cipadrao/usuario/index/';
$config['per_page'] = 5;
$config['num_links'] = 5;
$config['total_rows'] = $this->count();

$limit[0] = $config['per_page'];
$limit[1] = $this->uri->segment(3) ? $this->uri->segment(3) : 0;

$this->pagination->initialize($config);

//selecionando os dados
$this->data['usuarios'] = $this->usuario->findAll(null, null, $limit);
$this->data['pagination'] = $this->pagination->create_links();
//padronizando o caminho da página
$page = setPage($this->data['module'], 'lista');
//chamando a page pelo template
$this->template->view($page, $this->data);
}

//retorna a quantidade de registros da consulta
private function count($where=null){
$this->load->model('usuario_model');
return $this->usuario_model->count($where);
}

//View

<table border="1" width="100%">
<tr>
<td>Id</td>
<td>Nome</td>
<td>Email</td>
<td>Alterar</td>
<td>Excluir</td>
</tr>
<?php
if(count($usuarios)){
foreach($usuarios as $usuario){
$buffer = null;
$buffer .= '<tr>';
$buffer .= '<td>'.$usuario['usuario_id'].'</td>';
$buffer .= '<td>'.$usuario['usuario_nome'].'</td>';
$buffer .= '<td>'.$usuario['usuario_email'].'</td>';
$buffer .= '<td><a href="'.base_url('usuario/edit/'.$usuario['usuario_id']).'">Alterar</a></td>';
$buffer .= '<td><a href="'.base_url('usuario/delete/'.$usuario['usuario_id']).'">Excluir</a></td>';
$buffer .='</tr>';
echo $buffer;
}
}
else{
echo 'Nenhum registro encontrado.';
}
?>
</table>
<br/>
<div id="pagination"><?php echo $pagination; ?></div>

domingo, 26 de outubro de 2014

HighCharts com Ajax/Codeigniter - Parte02

<?php

class Vendas{

public function dadosGrafico(){

$categorias[] = 'Semana 1' ;
$categorias[] = 'Semana 2' ;
$categorias[] = 'Semana 3' ;
$categorias[] = 'Semana 4' ;

$series_data[] = array('name' => 'Primeiro Mês', 'data' => array(rand(1,5), rand(5,10), rand(10,15), rand(15,20)));
$series_data[] = array('name' => 'Segundo Mês', 'data' => array(rand(1,5), rand(5,10), rand(10,15)));

$dados = array( 'series_data' => $series_data, 'categories' => $categorias);

echo json_encode($dados);

}

}

?>

sexta-feira, 24 de outubro de 2014

HighCharts com Ajax/Codeigniter - Parte01

//Na página HTML
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
<script src="http://code.highcharts.com/highcharts.js"></script>

<div id="chartContainer" style="width:500px; height:500px;"></div>

//No arquivo JavaScript

//variaveis
var chart1;
var timeGrafico;

//chamando a função para atualizar o gráfico
$(function(){
     atualiza_chart();
});

//função para buscar os dados e atualizar as informações do gráfico
function atualiza_chart() {

        $.post(base_url+'vendas/dadosGrafico', {}, function(data) {
           
                var chart1 = new Highcharts.Chart({
                                chart: {
                                    renderTo: 'chartContainer',
                                    type: 'line',
                                },
                                title: {
                                    text: 'Titulo do Gráfico'
                                },
                                xAxis: {
                                    categories: data.categories
                                },
                                yAxis: {
                                    title: {
                                        text: 'Valores'
                                    }
                                },
                                series: data.series_data
            });
                                             
           //grafico se atualiza a cada 1minuto
           timeGrafico = setTimeout(function(){atualiza_chart()}, 60000 );

        }, 'json');

    }

segunda-feira, 29 de setembro de 2014

Templates no Codeigniter Parte02 (Personalização)

//application/libraries/Template.php

function view($page, $data = null){
      if(!is_null($page) && $page != ''){
        $title = !isset($data['titulo']) || is_null($data['titulo']) || empty($data['titulo']) ? $this->title : $data['titulo'];
        $this->write('title', trim($title));
        $this->write_view('content', $page, $data);
        $this->render();
      }
      else{
        die('Template => Pagina em branco!');
      }
   }

//application/controllers/usuario.php

public function index(){
//dados
$dados['dados'] = array('nome' => 'João da Silva', 'idade' => 30);
                        //titulo da página
                        $dados['titulo'] = 'Lista de Usuários';
//padronizando o caminho da página
$pagina = 'usuario/lista';
//chamando a pagina pelo template
$this->template->view($pagina, $this->dados);
}

quinta-feira, 25 de setembro de 2014

Templates no Codeigniter Parte01 (Instalação/Configurações)

1- Fazer o download da library Template em:
http://williamsconcepts.com/ci/codeigniter/libraries/template/download.html

2 - Colocar os arquivos nas suas pastas respectivas
/libraries/Template.php para /application/system/libraries/
/config/template.php para /application/config/
/views/template.php para /application/views/

3 -  Em /config/template.php adicionar o valor "title":

$template['default']['regions'] = array(
   'title',
   'header',
   'content',
   'footer',
);

4 - No método do controller adiocionar as chamadas do template:

public function index(){
       //carregando a biblioteca
       $this->load->library('template');
       //array de dados para serem mostrados na view
       $data = array('blog' => 'phpephp.blogspot.com', 'post' => 'Templates no Codeigniter');
        //passando os parâmetros para o template
        $this->template->write('title', 'Templates no Codeigniter');
        $this->template->write('header', 'Cabeçalho do template');
        $this->template->write_view('content', 'pasta/nome_da_view', $data);
        $this->template->write('footer', 'Rodapé do template');
        //chamando o template/página
        $this->template->render();
}

5 - No arquivo de view colar o código:

<?php   
    echo 'Blog: '.$blog;
    echo '<br>Post: '.$post.'<br>';
?>

6 - Verifique se o arquivo  /application/views/template.php está assim:

<html>
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
      <title><?= $title ?></title>
      <link rel="stylesheet" type="text/css" href="main.css" />
   </head>
   <body>
      <div id="wrapper">
         <div id="header">
            <?= $header ?>
         </div>
         <div id="main">
            <div id="content">
               <h2><?= $title ?></h2>
               <div class="post">
                  <?= $content ?>
               </div>
            </div>           
         </div>
         <div id="footer">
            <?= $footer ?>
         </div>
      </div>
   </body>
</html>

segunda-feira, 22 de setembro de 2014

Estrutura Codeigniter - Parte03 (Helper)

<?php

//padronizando o caminho da página pelo módulo
function setPage($module, $page){
if(!is_null($module) || !empty($module)){
if(!is_null($page) || !empty($page)){
return strtolower($module.'/'.$page);
}
else{
die('Pagina nao encontrada!');
}
}
else{
die('Modulo nao encontrado!');
}
}

?>

sexta-feira, 19 de setembro de 2014

Estrutura Codeigniter - Parte02 (Controller)

<?php

class Usuario extends CI_Controller{

//array dados da classe
private $data = array();

public function __construct(){
parent::__construct();
$this->load->model('usuario_model', 'usuario');
$this->data['module'] = __CLASS__;
}

/********************métodos principais********************/

//mostrando a lista de registros
public function index(){
//selecionando os dados
$this->data['usuarios'] = $this->usuario->findAll();
//padronizando o caminho da página
$page = setPage($this->data['module'], 'lista');
//chamando a page pelo template
$this->template->view($page, $this->data);
}

//cadastrando ou alterando o registro
public function edit($id=null){
$page = setPage($this->data['module'], 'form');
//se formulário for submetido
if($this->input->post()){
//setando os valores a serem enviado ao bd
$data= $this->setData($this->input->post());
//alteracao
if(!is_null($id)){
$this->usuario->update($id, $data);
}
//cadastro
else{
$this->usuario->insert($data);
}
$this->index();
}
else{
//alteracao
$data=array();
if(!is_null($id)){
$data = $this->usuario->findById($id);
}
//setando os valores vindos do bd
$this->data['data'] = $this->setData($data);
//page do formulário
$this->template->view($page, $this->data);
}
}

//excluindo o registro
public function delete($id){
$this->usuario->delete($id);
$this->index();
}

/********************métodos auxiliares********************/

//setando os valores
private function setData($data=array()){
$values= array(
'usuario_id' => isset($data['usuario_id']) ? $data['usuario_id'] : null,
'usuario_nome' => isset($data['usuario_nome']) ? $data['usuario_nome'] : null,
'usuario_email' => isset($data['usuario_email']) ? $data['usuario_email'] : null,
'usuario_senha' => isset($data['usuario_senha']) ? md5($data['usuario_senha']) : null,
);
return $values;
}

}

?>