BEM VINDO AO BLOG DO MARCOS CARRARO CRIADOR DO "CARRARO DASHBOARD". MUITO MAIS QUE UM SIMPLES BLOG.
Mostrando postagens com marcador CodeiGniter. Mostrar todas as postagens
Mostrando postagens com marcador CodeiGniter. Mostrar todas as postagens

terça-feira, 18 de fevereiro de 2014

Criando uma "rule" regra no form_validation no codeigniter - Codeigniter parte 4?

Buenas,

Se falando de CodeiGniter ele já tem uma base e tanto de regras de validação, mas muitas vezes precisamos imcorporar alguma validação a mais no mesmo, porém não existe, e você deseja seguir a mesma lógica, então lá vamos nos...

no arquivo
system/librarires/form_validadion.php


Lá pelas ultimas linhas adicione as suas regras, no meu caso criei uma regra para impedir o uso de espaço apenas texto e numero.

    // --------------------------------------------------------------------

    /**
     * Não permite digiar espaços
     *
     * @access public
     * @param string
     * @return string
     */
    public function no_space($str) {
        return (!preg_match("/^[A-Za-z0-9]+$/", $str)) ? FALSE : TRUE;
    }


Até ali tudo beleza, porém ao aplicar no form, o erro dela vai estar como desconhecido, pois não existe uma tradução do erro para a regra no_space. Para isso...


application/languages/pt-BR/form_validation_lang.php

Adicione a tradução do erro.

$lang['no_space'] = 'O campo %s não pode ter espaços.';


Para utilizar a regra use da maneira normal em que é chamado as demais...

        $this->form_validation->set_rules('campo_name', 'Descricao do Input', 'required|no_space');


Forte Abraço
Marcos Carraro

Read More

sexta-feira, 7 de fevereiro de 2014

Integrando CodeiGniter com jDataTables - CodeiGniter parte 3

Buenas Turma...

É muito bom utilizar o datatables em projetos, ainda mais hoje nessa web 6.0 v12 biturbo HAHAH,

Então para inegrar é barabada.

Projeto:
https://github.com/IgnitedDatatables/Ignited-Datatables

Ali tem todas as partes para fazer a integração, lembre-se que após isto você deve ativar a biblioteca no application/config/autoload.php

em librarires, assim não precisa carregar na mão.

Para emitir o json compativel com o datatalbes...

    function getservicosremotos() {
        $this->datatables
        ->select('a.id,a.descricao_sr,
                b.range_ip,b.host,
                b.descricao_ips,
                c.porta,
                c.descricao_porta')
        ->from('tb_servico_remoto a,tb_ips b,tb_portas c')
        ->where('a.host = b.id_ip and a.porta = c.id_porta') ;    
        echo $this->datatables->generate();
    }

Desta maneira ele vai retornar o json correto.

{"sEcho":0,"iTotalRecords":4,"iTotalDisplayRecords":4,"aaData":[["5","Conexao intranet","10.0.0.1","fw","Firewall principal","80","HTTP"],["6","TESTE","10.0.0.1","fw","Firewall principal","80","HTTP"],["7","ASD 2","172.16.1.1","TS","TS w2k8 SERVER2","8080","HTTP-ALTERNATIVE"],["8","teste dns google","8.8.8.8","google-dns","google-dns","53","DNS-TCP"]],"sColumns":"a.id,a.descricao_sr,b.range_ip,b.host,b.descricao_ips,c.porta,c.descricao_porta"}

// OBS:
wiki https://github.com/IgnitedDatatables/Ignited-Datatables/wiki

para adicionar uma coluna no json com algum link, alguma imagem, alguma informação html, utilize esta m

    function getservicosremotos() {
        $this->datatables
                ->select('
                b.descricao_ips,
                b.range_ip,
                c.descricao_porta,
                c.porta,
                a.descricao_sr,
                ')
                ->add_edit('a.id', '<a href="url/opcao/editar/$1">Editar</a>', 'a.id')
                ->from('tb_servico_remoto a,tb_ips b,tb_portas c')
                ->where('a.host = b.id_ip and a.porta = c.id_porta');
        echo $this->datatables->generate();
    }

->add_edit('COLUNA_ORIGINAL', '<a href="url/opcao/editar/$1">Editar</a>', 'COLUNA_ORIGINAL')

Então, vai ser alterada a coluna_original para o seguinte conteudo <a href="url/opcao/editar/$1">Editar</a> onde $1 é o valor original da mesma.

Abraços

Read More

domingo, 26 de janeiro de 2014

Compactando Saida HTML CodeiGniter - Parte 2

Dica rápida mas boa.

O que vai acontecer é que a saida do codigo HTML gerado pelas views do CodeiGniter vão ser mais compactas, removendo espaços desnecessários, com isso vai se ganhar mais performance, e também dá uma dificultada na visualização do código html.



application/config/config.php

$config['enable_hooks'] = TRUE;

Cole o seguinte conteudo no arquivo
application/config/hooks.php

<?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');
/*
| -------------------------------------------------------------------------
| Hooks
| -------------------------------------------------------------------------
| This file lets you define "hooks" to extend CI without hacking the core
| files.  Please see the user guide for info:
|
| http://codeigniter.com/user_guide/general/hooks.html
|
*/
$hook['display_override'][] = array(
'class' => '',
'function' => 'compress',
'filename' => 'compress.php',
'filepath' => 'hooks'
);


/* End of file hooks.php */
/* Location: ./application/config/hooks.php */

Então agora crie o arquivo compress em 
application/hooks/compress.php

<?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');
 
function compress()
{
$CI =& get_instance();
$buffer = $CI->output->get_output();
 
$search = array(
'/\n/', // replace end of line by a space
'/\>[^\S ]+/s', // strip whitespaces after tags, except space
'/[^\S ]+\</s', // strip whitespaces before tags, except space
'/(\s)+/s' // shorten multiple whitespace sequences
 );
 
$replace = array(
' ',
'>',
'<',
'\\1'
 );
 
$buffer = preg_replace($search, $replace, $buffer);
 
$CI->output->set_output($buffer);
$CI->output->_display();
}
 
/* End of file compress.php */
/* Location: ./system/application/hools/compress.php */
Read More

sexta-feira, 24 de janeiro de 2014

Começando com Framework CodeiGniter - Parte 1

// Configurando CodeiGniter.
- Remover Index.php
application/config/config.php
Deixe em branco a variavel $config['index_page'] = '';
Fonte: http://websitetutorials.grafix.gr/php/the-codeigniter-framework/initial-configuration/

- Configurando Modulos HMVC
//Baixar a extensão
https://bitbucket.org/wiredesignz/codeigniter-modular-extensions-hmvc/overview
//Coloque a subpasta “MX” (dentro de “third_part”) no diretório “application/third_party”
//Coloque os arquivos da pasta “core” (não a própria pasta!) dentro de “application/core”
//Crie a pasta “modules” dentro da pasta “application”

//para utilizar os módulos vai ficar assim a estrutura.
application/modules/livros/
application/modules/livros/controllers/
application/modules/livros/models/
application/modules/livros/views/

Fonte: http://codeigniterbrasil.com/tutoriais/hmvc-no-codeigniter-com-modular-extensions/

- Configurando Modulo Padrão
// Vai chamar a pagina/modulo padrão
application/config/router.php
$route['default_controller'] = "login";

- Habilitando Helpers no AutoLoad
application/config/autoload.php
$autoload['helper'] = array('html','text','url','form');

Fonte: http://websitetutorials.grafix.gr/php/the-codeigniter-framework/codeigniter-helpers/

- Habilitando Bibliotecas no AutoLoad
application/config/autoload.php
$autoload['libraries'] = array('database', 'session','email','form_validation');

Obs:. Se habilitar database, devesse automaticamente configurar o Banco, pois vai apresentar erro ao abrir a aplicação.
application/config/database.php

Obs2:. Se habilitar session devesse rapidamente criar uma chave criptografada
application/config/config.php
$config['encryption_key'] = 'oHnhkSq5zZRhozKoNzKMG6e64dnHv6Rt';
Para usar uma chave aleatória pode utilizar este link: http://jeffreybarke.net/tools/codeigniter-encryption-key-generator/


Read More

Posts que a turma mais esta lendo...

Posts que a turma mais esta lendo...

Marcos Carraro