RSS
 

Archive for dezembro, 2009

Como adicionar um novo campo para contato no WordPress 2.9

30 dez

Developers,

hoje precisei adicionar alguns novos campos de contato em uma instalação wordpress, então criei uma plugin de hack, e adicionei uma função add_more_contactmethods.

function add_more_contactmethods(  $contactmethods )
{
// Adiciono aqui os meus novos campos: Telefone e endereço
$contactmethods['telephone']    = 'Telefone';
$contactmethods['address']      = 'Endereço';

// Removo alguns campos que não serão necessários
unset( $contactmethods['yim'], $contactmethods['jabber'], $contactmethods['aim'] );

return $contactmethods;
}

Filtramos…

add_filter('user_contactmethods', 'add_more_contactmethods',10,1);

E exibimos usando a template tag the_author_meta

the_author_meta('telephone', $current_author->ID);

Fácil neh?

Abs

Fonte: WP Engineer.com

 
 

Como configurar uma aplicação completa usando Zend Framework

29 dez

Developers,

No artigo anterior Estruturando uma aplicação completa usando Zend Framework, disponibilizei para download somente a estrutura da aplicação, nos falta configurar o application.ini, e colocar algumas regras em prática e sem nem mexer no bootstrap.

Se você ainda não baixou a estrutura da aplicação, baixe para poder acompanhar o desenvolvimento.

Sample Project (10,7 KiB, 1.276 downloads )

Começando pelo application.ini, vamos configura-lo assim:

[production]
;  Desabilitamos a exibição dos erros se estiver em ambiente de produção
phpSettings.display_startup_errors = 0
phpSettings.display_errors = 0

; Incluímos o caminho da biblioteca e também dos models
includePaths.library = APPLICATION_PATH "/../library"
includePaths.models = APPLICATION_PATH "/models"

; Bootstrap
bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
bootstrap.class = "Bootstrap"

; Configuramos o Front Controller, colocando o controller principal no módulo default
resources.frontController.controllerDirectory = APPLICATION_PATH "/modules/default/controllers"
resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"
resources.frontController.defaultModule = "default"

; Configuramos as views setando sua codificação para UTF-8 e a view principal no módulo default
resources.view.encoding = "UTF-8"
resources.view.basePath = APPLICATION_PATH "/modules/default/views"

[development : production]
; Habilitamos a visualização dos erros se estiver no ambiente de desenvolvimento
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1

Prontinho, application.ini configurado e agora nos resta apenas adicionar um prefixo com o nome de cada módulo (exceto “default”) no nome das classes dos controllers.

Por exemplo, nos controllers do módulo admin, no arquivo IndexController.php acrescente o prefixo “Admin_” no nome da classe.

class Admin_IndexController extends Zend_Controller_Action

E no módulo app acrescente “App_”, apenas no módulo default que não é necessário o prefixo.

Portanto, agora podemos acessar nossa URL sem problemas de acordo com cada módulo.

http://localhost/sample_project/www/ -> “Acessa o módulo default”

http://localhost/sample_project/www/ app/  -> “Acessa o módulo app”

http://localhost/sample_project/www/admin/  -> “Acessa o módulo admin”

É isso pessoal, confesso que estou a cada dia me surpreendendo mais com o ZendFramework.

Como sempre, pra facilitar pra todo mundo, estou disponibilizando mais um arquivo com a nova estrutura, agora com tudo configurado e rodando. OBS: lembrando que eu não mando a biblioteca do zend junto com os arquivos, pois é muito pesadinha!

Sample Project - Configurado (10,7 KiB, 805 downloads )

Abs

 

Como estruturar uma aplicação completa usando Zend Framework

22 dez

Hoje vou mostrar como estruturar uma aplicação usando Zend Framework 1.9.6 de forma com que ela tenha três(3) módulos, são eles:

  • admin (Administração)
  • default (Site/Homepage)
  • app (app)

Visualmente nossa aplicação ficará com a seguinte estrutura:

Como exemplo, foi criado o projeto sample_project onde defimos a estrutura da aplicação.

Dentro do projeto, temos a pasta application, que é onde fica toda a aplicação, regras de negócio, controlers, views, classes de abstração de dados e etc. Dentro dela não se aplica imagens nem arquivos de css e javascript, pois todos devem estar dentro de assets/css … /javascript.

Dentro da aplicação temos a pasta configs onde nela existe o application.ini, que é onde fica todas as configurações inicias da nossa aplicação, onde definimos a URL base, caminhos dos módulos, controllers, views e etc.

A pasta models (modelos) é onde fica nossas classes de abstração de dados, ou seja, onde manipulamos os dados do banco, insert, update, select e delete, onde definimos também os relacionamentos entre as tabelas do banco dados. É aconselhável também a criação de um model para cada tabela criada no banco de dados e que haja necessidade de manipulação dinâmica.

Chegamos agora na pasta modules (módulos), que por sua vez contém os módulos que iremos utilizar na nossa aplicação. Ela separa os módulos admin, app e default de forma com que cada um seja responsável por seus controllers, layout e views.

Os controllers são os responsáveis por separar toda a lógica da parte visual da aplicação, são a cabeça da estrutura MVC, busca os dados no model, o trata e o devolve para uma view onde são exibidos os dados.

A pasta layouts contém o arquivo .phtml de exibição do layout, nele deve conter toda a estrutura (html) do layout do módulo em que se está. Obs: o nome deste arquivo deve sempre ser o nome do módulo a que ele pertence.

As views são as responsáveis por exibir os dados passados pelos controllers, formatados e da forma que se deseja.

A pasta views/helpers contém arquivos que poderão ser reutilizados por todas as views.

Na pasta scripts contém uma pasta para cada controller e um arquivo .phtml para cada action desse controller. Todo controller deve conter uma view, senão acarretará erro na aplicação.

o arquivo Bootstrap.php é o coração da nossa aplicação, onde startamos funções essencias na nossa aplicação como autoloader, plugins e conexão com banco de dados.

A pasta library é a nossa biblioteca de arquivos do Zend, e também onde podemos criar nossas próprias bibliotecas, como é o caso da pasta Sample.

www, esta é a nossa pasta pública na web, ou seja, que ficará visivel para o usuário. É dentro dela que inserimos nossos arquivos de css, javascript e imagens, como no exemplo situados dentro da pasta assets. Também temos dentro dela a pasta de upload onde será o caminho do arquivos “upados” para nossa aplicação.

No arquivo .htaccess configuramos alguns diretórios e redirecionamentos para o servidor apache, no momento não é necessário modifica-lo, pois ele já vem pré configurado ao criar a aplicação usando o Zend_Tools.

E finalmente chegamos ao nosso index.php, que nada mais nada menos é o responsável por juntar tudo sitado anteriormente e exibir para gente na telinha. É nele que se “starta” toda a aplicação usando o método $application->bootstrap()->run();

Com minha experiência en desenvolvimento web e zend, acredito que essa seja a melhor forma para pensar, começar e estruturar uma aplicação web de respeito e muita segurança.

Baixe a estrutura e comece agora mesmo a desenvolver sua app.

Sample Project (10,7 KiB, 1.276 downloads )

Abs