CakePHP, Cod. Fonte

Código fonte de aplicação básica CakePHP

a version of the logo of the web application f...
Image via Wikipedia

Código fonte de aplicação básica desenvolvida sobre framework CakePHP.

A aplicação consiste em um site básico com implementação de layout CSS e formulario de e-Mail com validação.
A mesma não é e nem pretende ser modelo de uma aplicação CakePHP, consistindo de experimentações com o framework, baseadas em consultas na web.

O mesmo é uma compilação dos seguintes posts:

  1. https://blogetilico.wordpress.com/2011/08/18/criacao-de-layouts-cakephp-introducao-ao-cakephp-para-web-designers/ 
  2. https://blogetilico.wordpress.com/2011/08/20/aplicando-estilos-css-cakephp/
  3. https://blogetilico.wordpress.com/2011/09/27/formulario-de-envio-de-e-mail-com-validacao-cakephp/
Caso se interesse, você é livre para baixar, visualizar, alterar e disponibilizar todo o conteúdo.
Link para o arquivo:
Anúncios
CakePHP, PHP

Formulário de envio de e-Mail com validação – CakePHP

CakePHP
Image via Wikipedia

Criação de um simples formulário de e-mail, utilizando o sistema de validação do Cakephp.

Utilizaremos como base, a aplicação desenvolvida nos posts:

  1.  Criação de layouts CakePHP – Introdução ao CakePHP para Web Designers.
  2. Aplicando estilos CSS – CakePHP.

Criaremos a seguinte estrutura de diretórios:

  • /app/views/contacts

Crie no diretório /app/controllers, um arquivo com extensão .php e atribua o nome contacts_controller e insira no mesmo o seguinte conteúdo:

<?php
class ContactsController extends Controller {
    var $components = array('Email');
    function send() {
        if(!empty($this->data)) {
            $this->Contact->set($this->data);
            if($this->Contact->validates()) {
                if(!empty($this->data['Contact']['company'])) {
                    $this->Email->from = $this->data['Contact']['company'] . ' - ' . $this->data['Contact']['name'] . ' <' . $this->data['Contact']['email'] . '>';
                } else {
                    $this->Email->from = $this->data['Contact']['name'] . ' <' . $this->data['Contact']['email'] . '>';
                }
                $this->Email->to = 'emaildestinatário@dominio.com.br';
                $this->Email->subject = 'texto cabeçalho e-Mail';
                $this->Email->send($this->data['Contact']['message']);
                $this->render('success');
            } else {
                $this->render('index');
            }
        }
    }
    function index() {
    }
}

No controller, setaremos a utilização do componente email e definir os parâmetros de envio.

No diretório /app/models, crie um arquivo com extensão .php e de ao mesmo o nome de contact e insira o seguinte conteúdo:

<?php
class Contact extends AppModel {
    var $name = 'Contact';
    var $validate = array(
        'name' => array(
            'rule' => 'notEmpty',
            'message' => 'O campo Nome é obrigatorio.'
        ),
        'email' => array(
            'rule' => 'email',
            'message' => 'O campo e-Mail é obrigatório.'
        ),
        'message' => array(
            'rule' => 'notEmpty',
            'message' => 'O campo Motivo do contato é obrigatório.'
        )
    );
}
?>

O model, vai determinar quais campos serão validados.

No diretório /app/views/contacts, serão criados dois arquivos com extensão .ctp, abaixo, o conteúdo a ser inserido nos respectivos arquivos:

index.ctp – O formulário apresentado para o utilizador – “$content_for_layout”

<p>Utilize o formulário abaixo para entrar em contato.</p>
<?php echo $this->Form->create('Contact', array('action' => 'send')); ?>
<table style="border:none;">
    <tr>
        <td>Nome</td>
        <td><?php echo $this->Form->input('Contact.name', array('label' => false, 'maxlength' => 100, 'size' => 40)); ?></td>
    </tr>
    <tr>
        <td>Empresa</td>
        <td><?php echo $this->Form->input('Contact.company', array('label' => false, 'maxlength' => 100, 'size' => 40)); ?></td>
    </tr>
    <tr>
        <td>e-Mail</td>
        <td><?php echo $this->Form->input('Contact.email', array('label' => false, 'maxlength' => 100, 'size' => 40)); ?></td>
    </tr>
    <tr>
        <td style="vertical-align: top;">Motivo do contato</td>
        <td><?php echo $this->Form->input('Contact.message', array('label' => false, 'cols' => 50, 'rows' => 10)); ?></td>
    </tr>
    <tr>
        <td colspan="2" align="center"><br><?php echo $this->Form->end('Enviar e-Mail'); ?></td>
    </tr>
</table>

success.ctp – Mensagem de retorno após envio dos dados.

<?php
echo $this->Session->flash();
?>
<p>Obrigado, Em breve estarei retornando seu contato.</p>

No arquivo default.ctp, encontrado no diretório /app/views/layouts, altere a linha:

<?php echo $html->link('Contato', array('controller' => 'pages', 'action' => 'contato')); ?>

Para:

<?php echo $html->link('Contato', array('controller' => 'contacts', 'action' => 'index')); ?>

Delete o arquivo contato.ctp, presente no diretório: /app/views/pages.

Para saber mais sobre componente Email:

http://book.cakephp.org/pt/view/1283/Email

Para saber mais sobre Validação de dados:

http://book.cakephp.org/pt/view/1143/Valida%C3%A7%C3%A3o-de-dados

Para saber mais sobre FormHelper:

http://book.cakephp.org/pt/view/182/Form

Boa sorte.

CakePHP

Aplicação CakePHP sem utilização de banco de dados

Para que módulos de sua aplicação que não contenham acesso a banco de dados não apresentem erros, basta editar os models e seus determinados controllers.

Nos models, declarar e atribuir false a variável useTable:

var $useTable = false;

Nos respectivos controllers, declarar a variável uses, atribuindo Array():

var $uses = array();

De qualquer forma, caso não haja nenhum requisito de acesso a banco, seu  arquivo database.php deverá ser criado, mas não há necessidade de configurar acesso.

Boa sorte.

CakePHP

CakePHP 2.0.0-RC1.

A equipe principal CakePHP está orgulhosa em anunciar a disponibilidade imediata do CakePHP 2.0.0-RC1 [1]. 2.0.0-RC1 marca o início do processo de release candidate para a 2.0.0. Deste ponto em diante nenhum recurso adicional novas ou alterações para trás incompatabile serão feitos para CakePHP 2.0. Nós planejamos ter três versões RC, e se não há grandes questões pendentes que vai lançar a versão final. Leia o changelog [2] ou baixar a versão [1].

viaCakePHP 2.0.0-RC1 quentes e frescas | The Bakery, Everything CakePHP.

CakePHP

Adicionando biblioteca Javascript – CakePHP

Inicialmente, salve o arquivo com extensão .js no diretório: /seu_projeto/app/webroot/js.

No arquivo de layout (por padrão defaults.ctp) encontrado em: /seu_projeto/app/views/layouts, entre as tags <head></head>, insira a seguinte linha de código:

<?php echo $html->script(array('seu_arquivo.js')); ?>

Em seus views insira a linha abaixo ao final do corpo das páginas, acima da tag </body>.

echo $js->writeBuffer();

A utilização do código acima, permite a escrita em cache do conteúdo do script.

Inclua o helper, ao seu controller.

var $helpers = array('Js' => array('Seu_arquivo'));

=)…