quarta-feira, 28 de janeiro de 2015

Configuração Doctrine no module.config.php no Zend Framework 2

No arquivo module.config.php do seu Modulo, após o indice view_manager colocar a seguinte configuração:

'doctrine' => array(
        'driver' => array(
            __NAMESPACE__ . '_driver' => array(
                'class' => 'Doctrine\ORM\Mapping\Driver\AnnotationDriver',
                'cache' => 'array',
                'paths' => array(__DIR__ . '/../src/' . __NAMESPACE__ . '/Entity')
            ),
            'orm_default' => array(
                'drivers' => array(
                    __NAMESPACE__ . '\Entity' => __NAMESPACE__ . '_driver'
                )
            )
        )

    ),

segunda-feira, 26 de janeiro de 2015

Assets Helper

01 - /application/config/autoload.php

$autoload['helper'] = array('url', 'modulo', 'assets');

02 - Na root criar a pasta assets e criar os arquivo com o nome do controller, por exemplo:
usuario.css
usuario.js
cliente.css
cliente.js

03 - /application/helper/assets_helper.php

<?php

    if ( ! defined('BASEPATH')) exit('No direct script access allowed');
   
     //carregando o .css/.js referente ao modulo, caso existam
     function moduleAssets(){
         $CI = & get_instance();
         $controller = $CI->uri->segment(1) == false ? 'usuario' : strtolower($CI->uri->segment(1));
         $css = "assets/css/{$controller}.css";
         $js = "assets/js/{$controller}.js";
         $files = null;
         if(file_exists($css)){
             $files .= "<link rel='stylesheet' type='text/css' href='".base_url($css)."' />\n";
         }
         if(file_exists($js)){
             $files .= "<script src='".base_url($js)."'></script>\n";
         }
         return $files;
     }

?>

04 - View

<!DOCTYPE html>
<html lang="pt-br">
<head>
<meta charset="UTF-8">
<title>Codeigniter Assets</title>

<?php echo moduleAssets(); ?>

</head>

quarta-feira, 21 de janeiro de 2015

Integração MailChimp com Codeigniter

01 - Fazer o download da classe do MailChimp para o Codeigniter:
https://github.com/waynhall/CodeIgniter-Library-for-MailChimp-API-v1.3


02 - Coloque a classe MCAPI no diretório /application/libraries /

03 - Configuração de conexão com o MailChimp

$config = array(
            'apikey' => 'db5b0123456789621651ca27f7c7657-us8', //API KEY do MailChimp
            'secure' => FALSE //default
        );

        $this->load->library('MCAPI', $config, 'mail_chimp');

        $list_id = 'b2d4012345'; //LIST ID do MailChimp


04 - Testando se a conexão com o MailChimp está correta:

$conexao = $this->mail_chimp->ping();
var_dump($conexao);

Irá retornar Everything's Chimpy! se tudo estiver correto ou FALSE caso encontre alguma falha na conexão.

05 - Exemplo simples de como cadastrar os dados no MailChimp:

        $email = trim($this->input->post('email'));

        $merge_vars = array(
            'FNAME'=> trim($this->input->post('nome')),
            'LNAME'=> trim($this->input->post('sobrenome')),
            'MMERGE4' => trim($this->input->post('telefone'))
        );
 

        //todos os parametros são obrigatórios
        $listSubscribe = $this->mail_chimp->listSubscribe($list_id, $email, $merge_vars); 


06 - Para mais informações consultar: https://apidocs.mailchimp.com/api/1.3/

segunda-feira, 29 de dezembro de 2014

Instanciar Model em uma Library no Codeigniter

//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;
    }
}

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);

}

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);
}

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>';
        }
?>