Archive for dezembro, 2008
Papai noel trouxe de presente o CakePHP 1.2
| dezembro 29th, 2008É verdade, papai noel, não esqueceu dos programadores PHP e trouxe direto do forno, o CakePHP 1.2 versão final.
Algumas das funcionalidades dessa versão, pode ser vista aqui.
Parabéns pra equipe Core do CakePHP e vida loga a esse ótimo framework!
Drupal hook_theme()
| dezembro 17th, 2008O Drupal por ser um CMS e largamente utilizado, possuí um sistema de temas,, ou seja, é possível trocar toda a camada de visão do drupal, assim como algumas funções do drupal que retornem html, podem ser implementadas dentro do tema, para fazer uma substituição do resultado final.
Tendo isso em conhecimento, os módulos, normalmente necessitam retornar algum resultado, seja ele o que for ( HTML, XML, RSS…), e uma maneira de possibilitar os temas sobrescreverem os resultados é implementando em seu módulo o hook_theme(). Seu uso é super simples:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | function newspaper_theme() { return array( 'newspaper' => array( 'template' => 'newspaper', 'arguments' => array('newspaper' => NULL), ), 'newspaper_archive' => array( 'template' => 'newspaper_archive', 'arguments' => array('newspapers' => NULL) ), 'newspaper_block' => array( 'arguments' => array('path' => NULL), 'file' => 'newspaper.theme.inc', ), 'teaser_block' => array( 'arguments' => array('path' => NULL), 'file' => 'teaser.theme.inc', ), 'teaser' => array( 'arguments' => array('teaser' => NULL), 'template' => 'teaser', ) ); } |
Como pode ser visto sua implementação é super simples, definimos o nome dos temas que queremos, no exemplo temos, o array newspaper. Nesse array, recebe outro array com algumas definições:
- Arguments: Os argumentos que a função de tema tem que receber, por exemplo: theme(’newspaper’, 23);
- File: Indicamos onde está implementada a função tema, por exemplo:
file: newspaper.theme.inc e no arquivo temos a função theme_newspaper() - Template: Se passa 1 template, quando desejamos usar um arquivo de template, para exibir os resultados, salva o nome do template, tem que ser igual ao dado no theme.
Com o hook_theme, implementado e as funções de temas criadas, ou os templates, é possível ter diversos resultados, e dar visão as funcionalidades do seu modulo, sem perder a flexibilidade de sobreposição, ou seja continua sendo possível alterar a forma de exibir.
Drupal dica para poupar dor de cabeça
| dezembro 15th, 2008Uma dica preciosa, para quem esta criando módulos, ou fazendo algumas alterações no Drupal, é nunca se esquecer:
Limpar o cache, sempre que algo não esta funcionando, sem motivo aparente!
Isso é praticamente uma regra, por fazer muito cache, as vezes o drupal, pelo menos na versão 6, acaba se perdendo, e para o desenvolvedor da muita dor de cabeça, resolvi por um post-it, no monitor para sempre me lembrar disso, limpar o cache!
Drupal criando permissões para seus módulos hook_perm()
| dezembro 15th, 2008Criar permissões no drupal, para seus módulos é simples, basta implementar a função hook_perm(), e utilizar depois nos items do menu, ou algumas funções do drupal que nos ajuda na tarefa.
Implementando o hook_perm():
1 2 3 4 | function meumodulo_perm() { return array('meu modulo access', 'meu modulo view all'); //Criamos duas permissões, "meu modulo access" e "meu modulo view all" } |
Com isso já criamos 2 permissões, para usar agora temos algumas opções, no hook_menu do último post conhecemos o parâmetro dos items o ‘access arguments’, com ele é possível passar 1 array, com as permissões para acessar determinado item, vamos a um exemplo:
1 2 3 4 5 6 7 8 9 10 | $items['admin/novo_item/delete'] = array( 'title' => 'Delete Titulo', //Título que vai aparecer 'description' => 'A descrição de nosso Item', //Descrição de nosso Item 'page callback' => 'minhafuncao_page', //A função que iremos chamar 'page arguments' => array('edit'), //Parametros que desejamos passar para nossa função 'file' => 'meumodulo.module', //O arquivo onde está sua função 'access arguments' => array('meu modulo access'), //Definimos a permissão de acesso ao Item 'type' => MENU_CALLBACK, //Definimos que o item vai ser acessado apenas por URL ou seja por links na página não no menu ); |
Acima definimos que para acessar o delete de 1 item, temos que ter a permissão meu “modulo access”.
Algumas outras funções que podem nos ajudar no desenvolvimento, para restringir acessos são:
- user_access()
- Checa se o usuário tem acesso a determinada função, como parâmetros recebe uma string com as permissões entre vírgulas, e pode receber também o id do usuário, porém sendo o segundo não obrigatório, caso não passado a função pega o usuário ativo no momento.
- drupal_access_denied()
- Gera uma página de erro 403, indicando assim que o usuário não está, habilitado para acesso a URL, em conjunto com a user_access(), onde verificamos se o usuário tem acesso, é uma boa maneira de indicar que o usuário não tem acesso a determina “feature”.
Existem algumas outras funções, que podem ajudar quanto as permissões, assim como módulos, vale dar uma olhada na documentação do drupal, assim como, nos projetos.
