//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);
}
segunda-feira, 29 de setembro de 2014
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)