php

#7 Curso CodeIgniter – View de dados com HTML

Deixando o código bonito

O primeiro arquivo que vamos editar vai ser o menu_categorias.php que foi o último alterado, deixando ele da seguinte maneira.

<div id="menu_de_categorias" class="gradient0 sombra radious">
   <h2>Categorias</h2>
   <ul>
      <?php foreach ($categorias as $cat):?>
         <li class="gradient1 radious">
            <?php echo anchor('anotacoes/categoria/'.$cat->slug_categoria, $cat->categoria); ?>
         </li>
      <?php endforeach; ?>
   </ul>
</div>

Você já vai perceber que mudou a aparência, e nesse código primeiro fazemos o foreach nele é criado um loop que cria as <li> até não existir mais categorias, a função anchor que é usada vamos ver mais pra frente, ela chama um Controller nativo para URL, pode perceber o efeito dela no nome dos links gerados e nas suas relativas URL’s.

4 Registros na Controller

Vamos fazer a chamada de 4 registros na Controller Index() no arquivo application > views > home.php dessa forma que faremos irá exibir 4 notas randomicamente, seu método index() ficará da seguinte maneira.

public function index(){
   $data['categorias'] = $this->db->get('categorias')->result();
   $this->db->order_by('id_anotacao','random');
   $data2['chamadas'] = $this->db->get('anotacoes', 4)->result();
   $this->load->view('html_header');
   $this->load->view('cabecalho');
   $this->load->view('menu_categorias', $data);
   $this->load->view('conteudo', $data2);
   $this->load->view('rodape');
   $this->load->view('html_footer');
}

Perceba o uso da função order_by para random que ficará antes do get da tabela com 4 resultados.  No arquivo conteudo.php coloque o código a seguir.

conteudo.php

<div id="conteudo" class="gradient0 sombra radious">
  <h2>Anotações Simples</h2>
     <div id="grid-home">
       <?php foreach($chamadas as $chamada):?>
         <div class="item-grid-home sombra radious">
           <h3><?php echo $chamada->nome; ?></h3>
            <?php echo anchor("anotacoes/ver/". $chamada->slug_anotacao,
                 img('assets/imgs/anotacoes/'.$chamada->foto)) ?>
          </div>
          <p>
            <?php
                 echo anchor("anotacoes/ver/". $chamada->slug_anotacao,
                 word_limiter($chamada->texto,20)) ?>
           </p>
             <?php endforeach; ?>
      </div>
</div>

Usaremos a função do Helper Text para limitar o texto em 30 palavras, que para ser utilizada devemos habilitar naquele arquivo autoload.php.

$autoload['helper'] = array('html','url', 'text');

Insira dados na sua tabela anotacoes a vontade, na minha tabela inseri duas linhas com Lorem para teste como na imagem.

Anotações Banco de Dados

Anotações Banco de Dados

Anúncios

#6 Curso CodeIgniter – Dados do banco para a view

Modificando o Controller Index

Vamos modificar a nossa função Index() na Controller (application/controllers/home.php) para ter as chamadas adicionais de View’s, sendo que a primeira linha dentro da função  faz uma consulta no banco retornando os valores referente a ela.

public function index(){
$data['categorias'] = $this->db->get('categorias')->result();
$this->load->view('html_header');
$this->load->view('cabecalho');
$this->load->view('menu_categorias', $data);
$this->load->view('conteudo');
$this->load->view('rodape');
$this->load->view('html_footer');
}

Criando várias Views

Como temos as chamadas, temos que criar os arquivos referentes dentro da pasta application/views, como por exemplo o primeiro já existe o html_header.php, então criaremos cabecalho.php, menu_categorias.php, conteudo.php, rodape.php e html_footer.php. Há ainda o arquivo home.php que sobrou, podemos excluir ele.

 

Conteúdo da segunda View

Abra o arquivo menu_categorias.php e adicione o seguinte código.

<h2>Menu de Categorias</h2>
<pre> <?php print_r($categorias); ?> </pre>

 

Dados na tabela categorias

Na tabela categorias vamos inserir duas linhas como na imagem.

Tabela de categorias no banco de dados

 

Resultado

Podemos assim abrir a URL do projeto para conferir como ficou. Na tela exibirá as duas categorias com suas respectivas informações, em forma de array. Note que ele retorna como se estivéssemos fazendo uma laço para consultar o banco linha por linha, não precisamos fazer esse “laço” pois o próprio framework se encarregou de fazer isso.

#5 Curso CodeIgniter – Banco de Dados

Criando o banco de dados

Vamos criar um sistema para suas anotações nesse primeiro sistema, para isso iremos criar um banco de dados que ira conter imagens, anotações, a categoria a qual pertence, o slug da mesma, dentre outras informações. Iremos fazer uma ligação entre as tabelas através do ID de cada anotação gravada, terá também uma gravação automática da data que a anotação foi gravada.

Começaremos criando um banco no PhpMyAdmin ou em outro software de sua escolha que proponha a conexão com bando de dados de seu servidor local.

 

Primeiro passo

Esse banco deverá ser utf8_general_ci, se chamara anotacoes.

 

Segundo passo

Agora devemos criar as tabelas, a primeira ira ser a categorias, para isso basta executar o comando SQL:

 

CREATE TABLE anotacoes.categorias(

   id_categoria INTEGER UNSIGNED  AUTO_INCREMENT NOT NULL,

   categoria VARCHAR(45) NOT NULL,

   slug_categoria VARCHAR(255) NOT NULL,

PRIMARY KEY (id_categoria)

) ENGINE = InnoDB;

 

O tipo varchar especifica o total máximo de caracteres aceitos, e o valor auto_increment significa que ele vai ser acrescentado automaticamente ao adicionar mais uma linha na tabela. Se preferir pode criar manualmente a tabela desde que ela seja da seguinte maneira.

  • id_categoria – Inteiro, auto incremento.
  • categoria – Até 45 caracteres de texto.
  • slug_categoria – Até 255 caracteres de texto.

Terceiro passo

A próxima tabela a ser criada vai ser  a tabela de anotações que se chamara anotacoes, iremos executar o seguinte código:

 

DROP TABLE IF EXISTS anotacoes.anotacoes;

CREATE TABLE anotacoes.anotacoes (

id_anotacao int unsigned AUTO_INCREMENT PRIMARY KEY NOT NULL,

nome VARCHAR(255) NOT NULL,

slug_anotacao VARCHAR(255) NOT NULL,

texto TEXT NOT NULL,

categoria int UNSIGNED NOT NULL,

foto VARCHAR(45) DEFAULT NULL,

data TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL,

KEY FK_anotacoes_categoria (categoria),

CONSTRAINT FK_anotacoes_categoria FOREIGN KEY (categoria)

REFERENCES categorias (id_categoria) ON UPDATE CASCADE

) ENGINE = InnoDB;

Após ter criado essa segunda table, agora temos que configurar os arquivos para conectar com o banco de dados.

 

Quarto passo

Vamos habilitar a biblioteca database, para possibilitar a comunicação com o banco. Aba o arquivo:

config/autoload.php

 

Após abrir o arquivo edite a linha 55 para ficar igual a essa:

$autoload[‘libraries’] = array(‘database’);

 

Quinto passo

Na mesma pasta haverá outro arquivo chamado database.php no fim dele você poderá editar as configurações de conexão, no meu caso o usuário do banco de dados e senha são respectivamente:

  • rafael
  • 123456

Sendo assim você configurará de acordo com seus dados de acesso, as informações desse arquivo.

 

Exemplo:

Segue apenas o final do código, que é a parte referente a conexão que você configurará.

 

$db[‘default’][‘hostname’] = ‘localhost’;

$db[‘default’][‘username’] = ‘rafael’;

$db[‘default’][‘password’] = ‘123456’;

$db[‘default’][‘database’] = ‘anotacoes’;

$db[‘default’][‘dbdriver’] = ‘mysql’;

$db[‘default’][‘dbprefix’] = ”;

$db[‘default’][‘pconnect’] = TRUE;

$db[‘default’][‘db_debug’] = TRUE;

$db[‘default’][‘cache_on’] = FALSE;

$db[‘default’][‘cachedir’] = ”;

$db[‘default’][‘char_set’] = ‘utf8’;

$db[‘default’][‘dbcollat’] = ‘utf8_general_ci’;

$db[‘default’][‘swap_pre’] = ”;

$db[‘default’][‘autoinit’] = TRUE;

$db[‘default’][‘stricton’] = FALSE;

#4 Curso CodeIgniter – Helper

Helper

O CodeIgniter vem com funções como desabilitadas como a possibilidade de manipulação de XML, WebService, PDF, dentre outros. Para podermos usar a função doctype() teremos que que habilitar o autoload de ‘html’ e ‘url’, abrimos então o arquivo:

 

application/config/autoload.php

 

Na linha 67 trocaremos $autoload[‘helper’] = array(); por $autoload[‘helper’] = array(‘html’, ‘url’);

 

Criaremos uma nova chamada de View, abra o arquivo application > controllers > home.php e adicione o load html_header como o exemplo:

 

public function index(){

$this->load->view(‘html_header’);

$this->load->view(‘home’);

}

 

Então crie o arquivo:

 

application > views > html_header.php

 

e nele adicione o topo do site:

 

<?php echo doctype(‘html5’); ?>

<html lang=”pt”>

<head>

<meta charset=”UTF-8″>

<title>Minha primeira view</title>

<?php

$meta = array(

array(‘name’ => ‘robots’, ‘content’ => ‘no-cache’),

array(‘name’ => ‘description’, ‘content’ => ‘Meu primeiro site CodeIgniter’),

array(‘name’ => ‘keywords’, ‘content’ => ‘codeigniter, site, primeiro’),

array(‘name’ => ‘robots’, ‘content’ => ‘no-cache’),

array(‘name’ => ‘Content-type’, ‘content’ => ‘text/html;charset=utf-8’, ‘type’ => ‘equiv’)

);

echo meta($meta);

echo link_tag(‘assets/img/icon.ico’, ‘shortcut icon’, ‘image/ico’);

echo link_tag(‘assets/css/layout.css’);

?>

</head>

<body>

 

Explicação:

Para entender a função doctype() habilitada poderá ver os arquivos:

 

application/config/doctypes.php

(Nele é listado os tipos de doctypes aceitos)

 

system/helpers/html_helper.php

(Na linha 385 está a função chamada meta, e na linha 310 está localizada a função link_tag)

#3 Curso CodeIgniter – Minha primeira View

Criando sua primeira View

 

Primeiro passo

Abra o arquivo:

 application > config > routes.php

 Na linha 41 mude o redirecionamento da “welcome” para “home” (vai ser a view que iremos criar).

 

Segundo passo 

Vamos criar um controller para essa rota home, criando o seguinte arquivo:

application > controller > home.php

O conteúdo desse arquivo vai ser o sequinte:

<?php if ( !defined('BASEPATH')) exit('No direct script access allowed');

class Home extends CI_Controller {    

   public function _construct(){       

      parent::_contruct();    

   }    

   public function index(){        

      $this->load->view('home');

}

}

Explicação:

A primeira linha é uma questão de segurança do CodeIgniter que ele faz a verificação da constante “BASEPATH”, caso não esteja definida o script será interrompido.

A sua classe Home é estendida de CI_Controller que é a classe-base, e todo o controlador deverá seguir esse padrão.

O método construtor (_construct) será executado toda vez que a classe for instanciada ou um de seus métodos for executado.

 

#2 Curso CodeIgniter – Olá Mundo!

Fazendo um “Olá Mundo!”

 

Primeiro passo 

É fazer o download no site oficial do CodeIgniter (https://ellislab.com/codeigniter) e extrair para uma pasta chamada codeigniter os arquivos compactados, dentro da pasta de projetos do servidor local (a pasta varia de acordo com a ferramenta que irá utilizar, como Xampp, EasyPHP …).

Em seguida acesse o endereço url do seu localhost (http://localhost/codeigniter) e verá a tela e Welcome!

 

Segundo passo

Vamos abrir a pasta em seu editor favorito (SublimeText, PhpStorm…) e repare na ligação dos nomes nos arquivos, abra em seguida o arquivo routes.php que fica localizado na pasta:

application > config > routes.php

(Aqui fica as rotas de acesso ao sistema, como vemos a chamada padrão na linha 41)

Essa chamada de rota está se redirecionando a clase welcome em:

application > controllers > welcome.php

(Repare no nome da clase Welcome e o único método index dentro dela)

Por padrão o acesso acaba sendo no método index e nele está chamando a View welcome_message com o load, essa View está sendo carregada em:

application > views > welcome_message.php

(Essa é a página que você visualiza ao acessar o sistema)

 

Terceiro passo 

Abra o arquivo welcome.php que vimos na pasta application > controllers e coloque uma nova function chamada olamundo logo em seguida da index, dessa maneira:


public function index()

{

$this->load->view(‘welcome_message’);

}

function olamundo()

{

echo “Ola Mundo!”;

}

Pronto!

Acesse novamente o endereço url localhost, mas dessa vez passando o index.php por causa do rewrite que esta desativado, passano o parâmetro welcome pois é o nome da classe, e por ultimo olamundo que é o seu método. (http://localhost/index.php/welcome/olamundo)

#1 Curso CodeIgniter – Conhecendo MVC

Nessa primeira aula vemos o básica do CodeIgniter, o site e como funciona seu sistema MVC.

Se você está interessado em aprender CodeIgniter, já sabe que ele trabalha com MVC ou pelo menos já ouviu falar. MVC é um modelo de desenvolvimento referenciado como design pattern ou padrão de design de software, o qual significa Model-View-Controller, que é a organização de arquivos e pastas.

Para que cada um serve?! Simples:

Model – Comunicação com o banco e dados (entrada e saída).

View – Visual do sistema, aonde vai ser mostrado o resultado (controla tudo que aparece na tela).

Controller – Funções e métodos com base na Model para mostrar na View (A única ligação entre a View e Model).