Guia Rápido do XOOPS para Intermediarios
Esse trabalho é uma coletânea do guia que fiz para meu uso próprio quando estava aprendo XOOPS e agora estou disponibilizando para todos.
O considero indispensável para quem quer ganhar agilidade no trabalho com xoops.
Descrição:
Mesmo quando já temos alguma intimidade com o XOOPS é normal pararmos e pensar: "Como mesmo que insere imagens nesse treco?” “O que significa isso aqui que esta no arquivo .css?” e por aí vaí.
O objetivo desse guia é possibilitar rapidez e facilidades nessas circunstâncias.
Os tópicos abordados são:
- Os aquivos no Xoops
- Tags Xoops
- Chamadas XOOPS
- Antes do Body
- CSS Background
- CSS Border
- CSS Fonte
- CSS Pading
- Dicas Personalização Xoops
clique para baixar
César Felipe
8-)
Marcadores: XOOPS
A Latinoware Mercosul é um dos esforços para unificar o desenvolvimento e a ampliação do uso do Software Livre na região. O caráter cooperativo do software livre é um item importante da pretendida integração cultural, econômica e tecnológica dos países em desenvolvimento. Por isso a Latinoware é uma oportunidade estratégica única para o Mercosul. Além de promover o software livre nos respectivos países, a Latinoware Mercosul terá um forte empenho na qualificação de desenvolvedores e usuários, e estará aberta ao encontro das comunidades de desenvolvedores e usuários. A Latinoware nasceu em 2003, da Conferência Internacional de Software Livre, em Curitiba, e teve sua primeira versão em 2004, em Foz do Iguaçu.
LATINOWARE MERCOSUL - 26 e 27 de novembro de 2005 - Curitiba - Paraná - Brasil
Vamos promover tambem o 1º Encontro da Comunidade XOOPS Paraná / XOOPS BR
Em breve maiores informações sobre as inscrições e programação do evento
Marcadores: XOOPS
Quando se descobre o Smarty, é quase inviável viver sem ele. Neste artigo, mostro o seu funcionamento e exemplos do uso de métodos. Você notará um ganho de produtividade geral no desenvolvimento de aplicações.
O Smarty é uma classe de templates. Funciona de uma forma que separe interface da lógica de programação e tem por objetivo, facilitar e melhorar o desenvolvimento de qualquer aplicação em PHP.
Por ser muito difundido no mundo inteiro, e estar ligado ao site oficial do PHP, o Smarty tem uma comunidade grande de desenvolvedores. Isso ajuda no suporte e discussão de melhorias.
A sua última versão (até a escrita deste artigo) é a 2.6.11 (changelog), lançada em Dezembro de 2005.
Além das funcionalidades que comentei no post anterior (Como desenvolvedor melhor na Web), listo outras:
[update] Faça o download do Smarty. Descomprima todas as pastas. Verifique uma pasta "demo", é uma demonstração do funcionamento dele. Coloque a pasta "libs" dentro do "demo". No final você vai ter uma organização de diretórios, igual descrita abaixo. Não esqueça de dar permissão ao diretório "templates_c".
A árvore padrão de diretório do Smarty está organizada da seguinte maneira:
Esta arquitetura pode ser alterada pelo usuário, lembrando que, depois de alterado os nomes, você deverá modificar algumas linhas do Smarty.class.php (classe principal):
Smarty.class.php:
var $template_dir = 'templates';
var $compile_dir = 'templates_c';
var $config_dir = 'configs';
Programar usando Smarty é ainda mais simples. Todo arquivo PHP deve apontar pra um template. O acesso a banco de dados, críticas mais complexas, e outras lógicas ficam no arquivo PHP (como antes). O que muda aqui é a simplicidade da sintaxe dos templates, facilitando mudanças no futuro pelo Designer ou Programador: cada um altera seu arquivo.
Como o tópico sugere, vou direto ao assunto. Vejam um exemplo muito simples do uso dos templates no Smarty.
index.php:
<?php
/**
* Define a pasta onde está o Smarty
* esta constante pode ficar em arquivo separado por exemplo
*/
define('PATH_SMARTY', '/path/to/smarty');
/**
* Inclui classe principal do Smarty
*/
require PATH_SMARTY.'/Smarty.class.php';
/**
* Instancia Smarty e seta propriedades
*
* compile_check = avisa ao Smarty para mostrar erros de compilação
* debugging = em fase de desenvolvimento é bom deixar como true,
* uma vez que abre um popup com todas as informações da página gerada
*/
$smarty = new Smarty;
$smarty->compile_check = true;
$smarty->debugging = false;
/**
* Assign é um metodo do Smarty para criar uma
* nova variavel que será usada no Template
*
* sintaxe: assign->('nome_variavel', 'valor');
*/
$smarty->assign('nome', 'Ciro');
$smarty->assign('sobrenome', 'Feitosa');
/**
* Mostra o Template na tela
* observe que até aqui nada foi exibido, só processado
*/
$smarty->display('index.tpl');
?>
index.tpl:
{config_load file=test.conf}
<html>
<body>
{$nome} {$sobrenome}
</body>
</html>
Ao rodar o index.php pela primeira vez, automaticamente o Smarty criará um cache do conteúdo gerado no diretório /templates_c.
Neste exemplo simplérrimo, deu pra perceber quão simples é a sintaxe utilizada pelo Smarty não é?! Apresentarei agora, métodos que deverão ser usados nos arquivos de templates.
A variável reservada $smarty, traz opções de tratar as informações vindas pelo método GET, POST, ou por Cookies, Sessions, etc. Veja exemplos de chamadas:
{* mostra o valor de page da URL (GET) http://www.domain.com/index.php?page=foo *}
{$smarty.get.page}
{* mostra a variável "page" de um formulário (POST) *}
{$smarty.post.page}
{* mostra o valor do cookie "username" *}
{$smarty.cookies.username}
{* mostra a variável do servidor "SERVER_NAME" *}
{$smarty.server.SERVER_NAME}
{* mostra a variável de ambiente do sistema "PATH" *}
{$smarty.env.PATH}
{* mostra a variável de session do php "id" *}
{$smarty.session.id}
{* mostra a variável "username" da união de get/post/cookies/server/env *}
{$smarty.request.username}
Assim, na chamada dos formulários você deve inserir no campo value: $smarty.post.nome_do_campo. Exemplo:
formulario.tpl:
Nome: <input type="text" name="nome" value="{$smarty.post.nome}" /><br />
Estado: <select name="estado">{html_options options=$estados selected=$smarty.post.estado}</select>
A documentação do Smarty é excelente. Portanto, não tentarei reexplicar o que já existe, mas mostrar rapidamente funções úteis no dia-a-dia.
Para ajudar no entendimento, usarei formulários. Acredito que este seja o uso em que mais ajuda, quando você usa Smarty. Pressupõe que você já tenha incluído a classe do Smarty e instanciado (reveja o exemplo no tópico "Mãos à obra"). Não observem validações de código xHTML, pois não é a ideia central aqui.
São usadas, principalmente, para se modificar uma string. Funções do tipo capitalizar, contar caracteres, contar parágrafos, mudar para maiúsculas, indentar linhas, etc.
Veja um exemplo da função cat, que funciona concatenando 2 strings (veja todas as funções modificadoras de variável).
index.tpl:
<html>
<body>
{$nome|cat:" é o dono deste Blog."}
</body>
</html>
São funções utilizadas internamente pelos templates. Laços (loops), condicionais (if, else), inclusões (includes). Veja a lista completa de funções internas.
As funções condicionais, assim como em qualquer linguagem, são utilizadas quando se tem uma condição. Imagine que você possui um sistema com login feito em sessão. Se o usuário tiver logado, mostra o nome dele, caso contrário, mostra "Visitante". Veja como fazer isso usando os templates do Smarty:
{if $smarty.session.nome != ''}
{$smarty.session.nome}
{else}
Visitante
{/if}
Foram criadas afim de se criar de forma automatizada, alguns trabalhos repetitivos. Em se tratando de formulários, é possível gerar checkboxes, menus drop-downs, radios, e menus drop-downs de data e hora, tudo isso podendo vir de um array estático ou dinâmico (preenchido via banco de dados, por exemplo).
Imagine que você tenha um array com os estados brasileiros (num arquivo .php) e deseja gerar um menu drop-down na tela. Use o método html_options. Além desta, existe dezenas de funções personalizadas.
formulario.php:
$arrayEstados = array(
'AC' => 'Acre',
'AL' => 'Alagoas',
'AM' => 'Amazonas',
'AP' => 'Amapá',
'BA' => 'Bahia',
'CE' => 'Ceará',
'DF' => 'Distrito Federal',
'ES' => 'Espírito Santo',
'GO' => 'Goiás',
'MA' => 'Maranhão',
'MG' => 'Minas Gerais',
'MS' => 'Mato Grosso do Sul',
'MT' => 'Mato Grosso',
'PA' => 'Pará',
'PB' => 'Paraíba',
'PE' => 'Pernambuco',
'PI' => 'Piauí',
'PR' => 'Paraná',
'RJ' => 'Rio de Janeiro',
'RN' => 'Rio Grande do Norte',
'RO' => 'Rondônia',
'RR' => 'Roraima',
'RS' => 'Rio Grande do Sul',
'SC' => 'Santa Catarina',
'SE' => 'Sergipe',
'SP' => 'São Paulo',
'TO' => 'Tocantins'
);
$smarty->assign('estados',$arrayEstados);
$smarty->display('formulario.tpl');
formulario.tpl:
<html>
<body>
<select name="estado">{html_options options=$estados}</select>
</body>
</html>
É notável o aumento da produtividade utilizando este sistema de templates. Além do mais, quando se trabalha em equipe, Designer e Programador com funções distintas, e neste caso, trabalhando juntos. Se o Designer quiser alterar um label de um campo do formulário, por exemplo, só precisará mexer no template.
Marcadores: XOOPS