//application/libraries
<?php
class Auth{
private $CI;
public function __construct() {
$this->CI =& get_instance();
}
public function check(){
$this->CI->load->model('usuario_model');
$check = $CI->usuario_model->find();
return $check;
}
}
segunda-feira, 29 de dezembro de 2014
sexta-feira, 26 de dezembro de 2014
Instanciar Library em um Helper no Codeigniter
//application/helpers/
function setPagination($total_rows){
$CI =& get_instance();
$CI->load->library('pagination');
$config['base_url'] = _SERVER.'/www/cipadrao/usuario/index/';
$config['first_link'] = 'Primeiro';
$config['last_link'] = 'Último';
$config['next_link'] = 'Próximo';
$config['prev_link'] = 'Anterior';
$config['per_page'] = _PER_PAGE;
$config['num_links'] = _NUM_LINKS;
$config['total_rows'] = $total_rows;
return $CI->pagination->initialize($config);
}
function setPagination($total_rows){
$CI =& get_instance();
$CI->load->library('pagination');
$config['base_url'] = _SERVER.'/www/cipadrao/usuario/index/';
$config['first_link'] = 'Primeiro';
$config['last_link'] = 'Último';
$config['next_link'] = 'Próximo';
$config['prev_link'] = 'Anterior';
$config['per_page'] = _PER_PAGE;
$config['num_links'] = _NUM_LINKS;
$config['total_rows'] = $total_rows;
return $CI->pagination->initialize($config);
}
quarta-feira, 24 de dezembro de 2014
Paginação/Pagination Helper no Codeigniter
//config/constants.php
define('_SERVER', 'http://'.$_SERVER['SERVER_NAME']);
define('_PER_PAGE', 3);
define('_NUM_LINKS', 5);
//Controller
public function index(){
//criando paginação
$this->load->helper('pagination_helper');
$total_rows = $this->count();
$limit[0] = _PER_PAGE;
$limit[1] = $this->uri->segment(3) ? $this->uri->segment(3) : 0;
setPagination($total_rows);
//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);
}
//Pagination_helper
function setPagination($total_rows){
$CI =& get_instance();
$CI->load->library('pagination');
$config['base_url'] = _SERVER.'/usuario/index/';
$config['first_link'] = 'Primeiro';
$config['last_link'] = 'Último';
$config['next_link'] = 'Próximo';
$config['prev_link'] = 'Anterior';
$config['per_page'] = _PER_PAGE;
$config['num_links'] = _
$config['total_rows'] = $total_rows;
return $CI->pagination->initialize($config);
}
define('_SERVER', 'http://'.$_SERVER['SERVER_NAME']);
define('_PER_PAGE', 3);
define('_NUM_LINKS', 5);
//Controller
public function index(){
//criando paginação
$this->load->helper('pagination_helper');
$total_rows = $this->count();
$limit[0] = _PER_PAGE;
$limit[1] = $this->uri->segment(3) ? $this->uri->segment(3) : 0;
setPagination($total_rows);
//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);
}
//Pagination_helper
function setPagination($total_rows){
$CI =& get_instance();
$CI->load->library('pagination');
$config['base_url'] = _SERVER.'/usuario/index/';
$config['first_link'] = 'Primeiro';
$config['last_link'] = 'Último';
$config['next_link'] = 'Próximo';
$config['prev_link'] = 'Anterior';
$config['per_page'] = _PER_PAGE;
$config['num_links'] = _
$config['total_rows'] = $total_rows;
return $CI->pagination->initialize($config);
}
terça-feira, 9 de dezembro de 2014
Flashdata Messages no Codeigniter
//Controller
<?php
public function excluir($cliente_id){
$this->load->model('cliente_model');
$delete = $this->cliente_model->delete($cliente_id);
if($delete){
$this->session->set_flashdata('sucesso', 'Cliente excluído com sucesso.');
}
else{
$this->session->set_flashdata('erro', 'Não foi possível excluir o cliente.');
}
redirect('cliente');
}
?>
//View
<?php
if($this->session->flashdata('erro')){
echo '<div class="erro">'.$this->session->flashdata('erro').'</div>';
}
if($this->session->flashdata('sucesso')){
echo '<div class="sucesso">'.$this->session->flashdata('sucesso').'</div>';
}
?>
<?php
public function excluir($cliente_id){
$this->load->model('cliente_model');
$delete = $this->cliente_model->delete($cliente_id);
if($delete){
$this->session->set_flashdata('sucesso', 'Cliente excluído com sucesso.');
}
else{
$this->session->set_flashdata('erro', 'Não foi possível excluir o cliente.');
}
redirect('cliente');
}
?>
//View
<?php
if($this->session->flashdata('erro')){
echo '<div class="erro">'.$this->session->flashdata('erro').'</div>';
}
if($this->session->flashdata('sucesso')){
echo '<div class="sucesso">'.$this->session->flashdata('sucesso').'</div>';
}
?>
segunda-feira, 24 de novembro de 2014
Gerando as Entidades com Doctrine2 no Zend Framework2
01 - Configurar o arquivo /config/autoload/doctrine_orm.local.php
02 - No terminal (Linux/Mac)
cd /caminho/para/seu/projeto/root_do_projeto
03 - vendor/bin/doctrine-module orm:convert-mapping --filter="NomeTabela" --from-database annotation module/NomeController/src/NomeController/Entity/
04 - Verificar se o arquivo foi criando em /module/NomeController/src/NomeController/Entity/
//Observações
01 - O nome da tabela
A tabela nome_tabela na geração da entidade dever ser nomeada NomeTabela.
02 - No terminal o comando vendor/bin/doctrine-module, mostra todas as funções disponíveis do doctrine2.
02 - No terminal (Linux/Mac)
cd /caminho/para/seu/projeto/root_do_projeto
03 - vendor/bin/doctrine-module orm:convert-mapping --filter="NomeTabela" --from-database annotation module/NomeController/src/NomeController/Entity/
04 - Verificar se o arquivo foi criando em /module/NomeController/src/NomeController/Entity/
//Observações
01 - O nome da tabela
A tabela nome_tabela na geração da entidade dever ser nomeada NomeTabela.
02 - No terminal o comando vendor/bin/doctrine-module, mostra todas as funções disponíveis do doctrine2.
quinta-feira, 20 de novembro de 2014
Configurando Doctrine2 no Zend Framework2
01 - No diretório /config/autoload, criar o arquivo doctrine_orm.local.php:
<?php
return array(
'doctrine' => array(
'connection' => array(
'orm_default' => array(
'driverClass' => 'Doctrine\DBAL\Driver\PDOMySql\Driver',
'params' => array(
'host' => '127.0.0.1', //Não usar localhost
'port' => '3306',
'user' => 'root',
'password' => '',
'dbname' => 'nome_do_banco',
'driverOptions' => array(
PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'UTF8'"
)
)
)
)
),
);
?>
02 - No diretório data criar a pasta DoctrineORMModule e dentra ela criar a pasta Proxy.
<?php
return array(
'doctrine' => array(
'connection' => array(
'orm_default' => array(
'driverClass' => 'Doctrine\DBAL\Driver\PDOMySql\Driver',
'params' => array(
'host' => '127.0.0.1', //Não usar localhost
'port' => '3306',
'user' => 'root',
'password' => '',
'dbname' => 'nome_do_banco',
'driverOptions' => array(
PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'UTF8'"
)
)
)
)
),
);
?>
02 - No diretório data criar a pasta DoctrineORMModule e dentra ela criar a pasta Proxy.
terça-feira, 18 de novembro de 2014
Instalando Doctrine2/Hounddog no Zend Framework 2
No zendframework
01 - Composer.json
01 - Composer.json
{
"name": "zendframework/skeleton-application",
"description": "Skeleton Application for ZF2",
"license": "BSD-3-Clause",
"keywords": [
"framework",
"zf2"
],
"homepage": "http://framework.zend.com/",
"minimum-stability": "dev",
"require": {
"php": ">=5.3.3",
"zendframework/zendframework": "2.*",
"doctrine/doctrine-module": "dev-master",
"doctrine/doctrine-orm-module": "dev-master",
"hounddog/doctrine-data-fixture-module": "dev-master"
}
}
No Terminal
02 - php composer.phar self-update
03 - php composer.phar install
04 - cd public
05 - php -S localhost:8888
No browser
06 - localhost:8888
No zendframework
07 - Em config/application.config.php
'modules' => array(
'Application',
'DoctrineModule',
'DoctrineORMModule',
'DoctrineDataFixtureModule'
),
No zendframework
07 - Em config/application.config.php
'modules' => array(
'Application',
'DoctrineModule',
'DoctrineORMModule',
'DoctrineDataFixtureModule'
),
segunda-feira, 17 de novembro de 2014
Instalando o Zend Framework2
Acesse o link:
01 - http://framework.zend.com/downloads/skeleton-app
No terminal (Linux/Mac)
02 - cd caminho/para/pasta/www
03 - git clone git://github.com/zendframework/ZendSkeletonApplication.git
04 - mv ZendSkeletonApplication/ zf2
05 - cd zf2
06 - php composer.phar self-update
07 - php composer.phar install
08 - cd public
09 - php -S localhost:8888
No browser
10 - localhost:8888
01 - http://framework.zend.com/downloads/skeleton-app
No terminal (Linux/Mac)
02 - cd caminho/para/pasta/www
03 - git clone git://github.com/zendframework/ZendSkeletonApplication.git
04 - mv ZendSkeletonApplication/ zf2
05 - cd zf2
06 - php composer.phar self-update
07 - php composer.phar install
08 - cd public
09 - php -S localhost:8888
No browser
10 - localhost:8888
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>
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{
}
?>
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)));
$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);
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');
}
<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);
}
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>
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!');
}
}
?>
//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;
}
}
?>
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;
}
}
?>
quinta-feira, 18 de setembro de 2014
Estrutura Codeigniter - Parte01 (Model)
<?php
class usuario_model extends CI_Model{
private $table = null;
private $table_id = null;
public function __construct(){
$this->table = 'usuario';
$this->table_id = $this->table.'_id';
}
//selecionando os registros do bd pelos parâmetros passados
public function findAll($where=null, $order=null, $limit=null){
$this->db->select('*');
$this->db->from($this->table);
if(!is_null($where)){
$this->db->where($where);
}
if(!is_null($order)){
$this->db->order_by($order[0], $order[1]);
}
else{
$this->db->order_by($this->table_id, 'desc');
}
if(!is_null($limit)){
$this->db->limit($limit[0], $limit[1]);
}
$query = $this->db->get();
if($query->num_rows()>0){
return $query->result_array();
}
else{
return null;
}
}
//selecionando o registro pelo id
public function findById($id){
$this->db->select('*');
$this->db->from($this->table);
$this->db->where(array($this->table_id => $id));
$query = $this->db->get();
if($query->num_rows()>0){
$resultado = $query->result_array();
return $resultado[0];
}
else{
return null;
}
}
//selecionando o registro pela coluna
public function findBy($column, $value){
$this->db->select('*');
$this->db->from($this->table);
$this->db->where(array($column => $value));
$query = $this->db->get();
if($query->num_rows()>0){
$resultado = $query->result_array();
return $resultado[0];
}
else{
return null;
}
}
//realizando uma consulta com a query livre
public function find($qry){
$query = $this->db->query($qry);
if($query->num_rows()>0){
return $query->result_array();
}
else{
return null;
}
}
//contando a quantidade de registros da consulta
public function count($where){
$this->db->select('*');
$this->db->from($this->table);
if(!is_null($where)){
$this->db->where($where);
}
$query = $this->db->get();
return $query->num_rows();
}
//inserindo registros no bd
public function insert($data=array()){
$this->db->insert($this->table, $data);
return $this->db->insert_id();
}
//alterando o registro no db
public function update($id, $data=array()){
$this->db->where($this->table_id, $id);
return $this->db->update($this->table, $data);
}
//excluindo o registro do bd
public function delete($id){
return $this->db->delete($this->table, array($this->table_id => $id));
}
//realizando um requisição livre
//se retornar algum registro retorna e forma de array
public function execute($qry){
$query = $this->db->query($qry);
if(is_object($query)){
if($query->num_rows()>0){
return $query->result_array();
}
else{
return null;
}
}
else{
return true;
}
}
}
?>
class usuario_model extends CI_Model{
private $table = null;
private $table_id = null;
public function __construct(){
$this->table = 'usuario';
$this->table_id = $this->table.'_id';
}
//selecionando os registros do bd pelos parâmetros passados
public function findAll($where=null, $order=null, $limit=null){
$this->db->select('*');
$this->db->from($this->table);
if(!is_null($where)){
$this->db->where($where);
}
if(!is_null($order)){
$this->db->order_by($order[0], $order[1]);
}
else{
$this->db->order_by($this->table_id, 'desc');
}
if(!is_null($limit)){
$this->db->limit($limit[0], $limit[1]);
}
$query = $this->db->get();
if($query->num_rows()>0){
return $query->result_array();
}
else{
return null;
}
}
//selecionando o registro pelo id
public function findById($id){
$this->db->select('*');
$this->db->from($this->table);
$this->db->where(array($this->table_id => $id));
$query = $this->db->get();
if($query->num_rows()>0){
$resultado = $query->result_array();
return $resultado[0];
}
else{
return null;
}
}
//selecionando o registro pela coluna
public function findBy($column, $value){
$this->db->select('*');
$this->db->from($this->table);
$this->db->where(array($column => $value));
$query = $this->db->get();
if($query->num_rows()>0){
$resultado = $query->result_array();
return $resultado[0];
}
else{
return null;
}
}
//realizando uma consulta com a query livre
public function find($qry){
$query = $this->db->query($qry);
if($query->num_rows()>0){
return $query->result_array();
}
else{
return null;
}
}
//contando a quantidade de registros da consulta
public function count($where){
$this->db->select('*');
$this->db->from($this->table);
if(!is_null($where)){
$this->db->where($where);
}
$query = $this->db->get();
return $query->num_rows();
}
//inserindo registros no bd
public function insert($data=array()){
$this->db->insert($this->table, $data);
return $this->db->insert_id();
}
//alterando o registro no db
public function update($id, $data=array()){
$this->db->where($this->table_id, $id);
return $this->db->update($this->table, $data);
}
//excluindo o registro do bd
public function delete($id){
return $this->db->delete($this->table, array($this->table_id => $id));
}
//realizando um requisição livre
//se retornar algum registro retorna e forma de array
public function execute($qry){
$query = $this->db->query($qry);
if(is_object($query)){
if($query->num_rows()>0){
return $query->result_array();
}
else{
return null;
}
}
else{
return true;
}
}
}
?>
quarta-feira, 17 de setembro de 2014
Descompactar/extrair arquivo ZIP com Codeigniter
//link para download da classe Unzip criada por Phil Sturgeon
//https://github.com/philsturgeon/codeigniter-unzip
//colocar em: application/libraries/
//diretório em que o arquvivo .zip se encontra
$dir_arquivo_zip = 'uploads/tmp/';
//diretório para onde os arquivos serão movidos
$dir_fotos = 'uploads/imgs/';
//carregando a classe unzip
$this->load->library('unzip');
//definindo que só serão extraidos arquivos .jpg
$this->unzip->allow(array('jpg'));
//se a extração ocorrer corretamente
if($this->unzip->extract($dir_arquivo_zip.'pacote.zip')){
//pegando todos os arquivos .jpg
$arquivos = glob($path."*.jpg");
//movendo os arquivos para outro diretorio
foreach($arquivos as $foto){
$arq = explode('/', $foto);
copy($foto, $dir_fotos.'/'.strtolower($arq[2]));
}
$msg = 'Extração realizada com sucesso.' ;
$data['msg'] = '<div id="sucesso">'.$msg.'</div>';
}
//se houver algum problema na extração
else{
$msg = 'Não foi possível realizar a extração dos arquivos.' ;
$data['msg'] = '<div id="erro">'.$msg.'</div>';
}
$this->load->view('extracao_zip_view', $data);
//https://github.com/philsturgeon/codeigniter-unzip
//colocar em: application/libraries/
//diretório em que o arquvivo .zip se encontra
$dir_arquivo_zip = 'uploads/tmp/';
//diretório para onde os arquivos serão movidos
$dir_fotos = 'uploads/imgs/';
//carregando a classe unzip
$this->load->library('unzip');
//definindo que só serão extraidos arquivos .jpg
$this->unzip->allow(array('jpg'));
//se a extração ocorrer corretamente
if($this->unzip->extract($dir_arquivo_zip.'pacote.zip')){
//pegando todos os arquivos .jpg
$arquivos = glob($path."*.jpg");
//movendo os arquivos para outro diretorio
foreach($arquivos as $foto){
$arq = explode('/', $foto);
copy($foto, $dir_fotos.'/'.strtolower($arq[2]));
}
$msg = 'Extração realizada com sucesso.' ;
$data['msg'] = '<div id="sucesso">'.$msg.'</div>';
}
//se houver algum problema na extração
else{
$msg = 'Não foi possível realizar a extração dos arquivos.' ;
$data['msg'] = '<div id="erro">'.$msg.'</div>';
}
$this->load->view('extracao_zip_view', $data);
terça-feira, 16 de setembro de 2014
Upload de arquivos/imagens com Codeigniter
$dir= 'uploads/fotos/';
if(!file_exists($dir)){
mkdir($dir, 0777, true);
}
$config = array(
// onde irá salvar a imagem
'upload_path' => $dir,
//extenções permitidas
'allowed_types' => 'gif|jpg|png',
//Tamanho máximo do arquivo, caso 5MB
'max_size' => '5000'
);
$this->load->library('upload', $config);
$this->upload->initialize($config);
if ($this->upload->do_upload('nome_do_input')) {
$arquivo = $this->upload->upload_path . DIRECTORY_SEPARATOR . $this->upload->file_name;
$msg = 'Upload do arquivo '.$arquivo.' realizado com sucesso.';
$data['msg'] = '<div id="sucesso">'.$msg.'</div>';
}
else{
$msg = $this->upload->display_errors();
$data['msg'] = '<div id="erro">'.$msg.'</div>';
}
$this->load->view('upload_img_view', $data);
if(!file_exists($dir)){
mkdir($dir, 0777, true);
}
$config = array(
// onde irá salvar a imagem
'upload_path' => $dir,
//extenções permitidas
'allowed_types' => 'gif|jpg|png',
//Tamanho máximo do arquivo, caso 5MB
'max_size' => '5000'
);
$this->load->library('upload', $config);
$this->upload->initialize($config);
if ($this->upload->do_upload('nome_do_input')) {
$arquivo = $this->upload->upload_path . DIRECTORY_SEPARATOR . $this->upload->file_name;
$msg = 'Upload do arquivo '.$arquivo.' realizado com sucesso.';
$data['msg'] = '<div id="sucesso">'.$msg.'</div>';
}
else{
$msg = $this->upload->display_errors();
$data['msg'] = '<div id="erro">'.$msg.'</div>';
}
$this->load->view('upload_img_view', $data);
segunda-feira, 15 de setembro de 2014
Verificando se imagem/arquivo existe com CodeIgniter (file_exists)
//verificando se a imagem/arquivo existe no diretório
$imgFunc = "uploads/foto_funcionarios/".$funcionario->foto;
if(!file_exists($imgFunc)){
$imgFunc = 'uploads/foto_default/funcionario_default.png';
}
//mostrando a imagem no HTML
<img id="img_func" name="img_func" src="<?php echo base_url($imgFunc); ?>" alt="<?php echo $funcionario->nome; ?>"/>
$imgFunc = "uploads/foto_funcionarios/".$funcionario->foto;
if(!file_exists($imgFunc)){
$imgFunc = 'uploads/foto_default/funcionario_default.png';
}
//mostrando a imagem no HTML
<img id="img_func" name="img_func" src="<?php echo base_url($imgFunc); ?>" alt="<?php echo $funcionario->nome; ?>"/>
terça-feira, 9 de setembro de 2014
Ajax retornando Json com Codeigniter/JQuery
$("#cep").on("blur",function(){
var base_url = '<?php echo site_url(); ?>';
var controller = 'cliente';
var action = 'consultaCep';
var cep = $(this).val();
//requisicao ajax enviando os parâmetros via POST
$.ajax({
'url' : base_url + controller + '/' + action,
'type' : 'POST',
'data' : {'cep' : cep},
'success' : function(data){
//recuperando o resultado via json
var dado = $.parseJSON(data);
//populando os valores
$("#endereco").val(dado.rua);
$("#bairro").val(dado.bairro);
$("#cidade").val(dado.cidade);
$("#estado").val(dado.estado);
$("#numero").focus();
}
});
});
var base_url = '<?php echo site_url(); ?>';
var controller = 'cliente';
var action = 'consultaCep';
var cep = $(this).val();
//requisicao ajax enviando os parâmetros via POST
$.ajax({
'url' : base_url + controller + '/' + action,
'type' : 'POST',
'data' : {'cep' : cep},
'success' : function(data){
//recuperando o resultado via json
var dado = $.parseJSON(data);
//populando os valores
$("#endereco").val(dado.rua);
$("#bairro").val(dado.bairro);
$("#cidade").val(dado.cidade);
$("#estado").val(dado.estado);
$("#numero").focus();
}
});
});
Ajax com Codeigniter/JQuery
//parametros
var base_url = '<?php echo site_url(); ?>';
var controller = 'cliente';
var action = 'getCliente';
var cliente_id = $("#cliente_id").val();
//requisicao ajax enviando os parâmetros para o PRÓPRIO MÉTODO
$.ajax({
'url' : base_url + '/' + controller + '/'+action+'/'+cliente_id,
'success' : function(data){
alert(data);
}
});
//requisicao ajax enviando os parâmetros via POST
$.ajax({
'url' : base_url + '/' + controller + '/' + action,
'type' : 'POST',
'data' : {'id' : cliente_id, 'status': 1},
'success' : function(data){
alert(data);
location.reload();
}
});
var base_url = '<?php echo site_url(); ?>';
var controller = 'cliente';
var action = 'getCliente';
var cliente_id = $("#cliente_id").val();
//requisicao ajax enviando os parâmetros para o PRÓPRIO MÉTODO
$.ajax({
'url' : base_url + '/' + controller + '/'+action+'/'+cliente_id,
'success' : function(data){
alert(data);
}
});
//requisicao ajax enviando os parâmetros via POST
$.ajax({
'url' : base_url + '/' + controller + '/' + action,
'type' : 'POST',
'data' : {'id' : cliente_id, 'status': 1},
'success' : function(data){
alert(data);
location.reload();
}
});
Assinar:
Postagens (Atom)