Sexta passada dei uma aula de introdução ao Smarty no canal #WebMaster...
Penso que foi muito corrida e tive que jogar alguns assuntos... não consegui pasasar tudo o que queria... mas creio que mostrei com o assunto abordado e com as respostas das perguntas o que se dá pra fazer com o smarty.. leia o log na integra...
<@ecl> Bom pessoal, vamos começar! :D
<@ecl> Agradecemos a presença do MUTANTE_POWER_B! E vamos que vamos! :D
<+MUTANTE_POWER_B> podemos?
<@ecl> Sim!
<@YaCK> gogo
<+MUTANTE_POWER_B> vamos lah!
<+MUTANTE_POWER_B> bem...
<+MUTANTE_POWER_B> pra quem nao sabe, meu nome eh Pedro Faria
<+MUTANTE_POWER_B> sou o admin do phpavancado.net e criador do canal #PHPAvancado aki da brasnet
<+MUTANTE_POWER_B> fui convidado pelo mobscene para dar uma aula aki
<+MUTANTE_POWER_B> e fiquei muito feliz em poder compartilhar um pouco
<+MUTANTE_POWER_B> da minha experiencia com o smarty
<+MUTANTE_POWER_B> nao posso falar que eh a melhor template enginer... (se nao o smallll me enforca depois)
<+MUTANTE_POWER_B> mas q com certeza eh um grande sistema... tanto q o php.net pegou ele para ter o status de "oficial" do PHP
<+MUTANTE_POWER_B> Chega de bla bla bla e vamos começar com o que realmente importa.
<+MUTANTE_POWER_B> O Smarty é um sistema de templates para PHP e escrito em PHP, ou seja, o smarty eh um script escrito em PHP que transforma um arquivo texto com uma mistura de HTML, Smarty e PHP em um arquivo PHP, interpreta este arquivo e retorna a saia deste arquivo interpretado.
<+MUTANTE_POWER_B> Vale ressaltar também que ele não é o único template enginer... existem outros mas ele é o oficial do PHP.
<+MUTANTE_POWER_B> como esse tal de TinyNaoSeiOQueLa q o smallll disse
<+MUTANTE_POWER_B> hehehehe
<+MUTANTE_POWER_B> Sua finalidade é somente resolver problemas de interface do seu site e não de gerênciar informações internas como controle de sessão, consultas em banco de dados etc...
-smallll(t7DS@avO5PKSjUK7.201.79.64.O)- sem zuar! TinyButStrong
<+MUTANTE_POWER_B> recebi no meu ponto de ouvido que o nome eh TinyButStrong
<+MUTANTE_POWER_B> serve somente para nao ter retrabalhos
<+MUTANTE_POWER_B> exemplo simples
<+MUTANTE_POWER_B> caso vc tenha varias caixas com design igual, vc nao precisa ficar reescrevendo HTML
<+MUTANTE_POWER_B> vc criaria um bloco e usaria este bloco... mudando somente o conteudo
<+MUTANTE_POWER_B> mas isso eh um exemplo muito basico... o smarty vai muito alem disso
<+MUTANTE_POWER_B> Pra mim, a grande vantagem de se usar o smarty é que você separa as tarefas do designer das tarefas do programador podendo trabalhar simultaneamente...
<+MUTANTE_POWER_B> neste caso, nao somente o smarty... mas como qq outro sistema de templates...
<+Perguntas_SDWeb> Espaço aberto para perguntas, para enviar a sua, utilize a seguinte forma => /msg Perguntas_SDWeb !pergunta SUA-PERGUNTA - Só serão enviadas perguntas que estejam de acordo com o tópico que está sendo abordado.
<+MUTANTE_POWER_B> o proprio conceio MVC (Model Viem Controller) aplicado em quase todas as frameworks por ae pregam isso... separar trabalhos...
<+MUTANTE_POWER_B> Outra grande vantagem, é o sistema de cache
<+MUTANTE_POWER_B> telas q não tem conteudos dinamicos, ou seja, que a cada visualização, mostre algo diferente....
<+MUTANTE_POWER_B> o smarty nao precise reprocessar tudo
<+MUTANTE_POWER_B> s/precisa
<+MUTANTE_POWER_B> ele simplesmente le o arquivo ja processado e o retorna
<+MUTANTE_POWER_B> Outra vantagem, é sua documentação
<+MUTANTE_POWER_B> completissima... e tem o estilo da documentação do php
<+MUTANTE_POWER_B> com muitos exemplos explicativos
<+MUTANTE_POWER_B> e diversas traduções... inclusive em pt_BR
<+MUTANTE_POWER_B> o site é: http://smarty.php.net/
-smallll(t7DS@avO5PKSjUK7.201.79.64.O)- www.tinybutstrong.com
<+MUTANTE_POWER_B> Bem... vamos passar agora para a parte um pouco mais pratica... mas não quero enxer vcs de exemplos... e sim dar uma pincelada no poder que o Smarty tem
<+MUTANTE_POWER_B> Ahhh recebi no meu ponto de ouvido novamente que o site do outro sistema de templates é www.tinybutstrong.com
<+MUTANTE_POWER_B> =0
<+MUTANTE_POWER_B> entao... vamos ver (via mirc) o negocio funcionando
<+MUTANTE_POWER_B> A instalação do Smarty é muito simples (coisa que prezo muito em tudo o que uso)
<+MUTANTE_POWER_B> basta baixar o arquivo em http://smarty.php.net/download.php e descompactar
<+MUTANTE_POWER_B> como dentro deste arquivo compactado tem varios exemplos e outros arquivos relacionados a creditos e licença, eles separaram o que eh realmente necessario em um diretorio
<+MUTANTE_POWER_B> eu costumo sugerir que se crie um diretorio soh pro smarty e colocar tudo q tem no diretorio *libs/* (do arquivo compactado) neste diretorio que foi criado
<+MUTANTE_POWER_B> O Smarty precisa de mais 4 diretórios para funcionar... são eles:
<+MUTANTE_POWER_B> templates - onde colocaremos nossos arquivos dos templates
<+MUTANTE_POWER_B> templates_c - onde ficam os arquivos php gerados pelo smarty (este diretorio precisa de permissão de escrita para o PHP)
<+MUTANTE_POWER_B> cache - onde ficam os caches gerados pelo smarty (permissão de escrita)
<+MUTANTE_POWER_B> configs - onde ficam os arquivos de configurações (caso use)
<+MUTANTE_POWER_B> os diretorios templates_c e cache precisam de permissao para o smarty criar novos arquivos la... no caso do linux geralmente se usa o 777 e para windows geralmente vc ja tem a permissao
<+MUTANTE_POWER_B> o diretorio configs, nao necessariamente precisa ser criado... soh se vc for usar este recurso do smarty
<+MUTANTE_POWER_B> seria mais ou menos um arquivo estilo INI do windows onde vc define varias informações... como Titulo do site, cor de fundo e o que vc quiser...
<+MUTANTE_POWER_B> eu quase nao uso isso... usei para fazer a internacionalização do projeto pasteLog... as traduções ficam neste arquivo...
<+MUTANTE_POWER_B> Vale lembrar, que os nomes destes diretorios, nao precisam ser exatamente estes... vc que vai dizer pro smarty os nomes dos diretorios... entao tanto faz o q vc colocar lah
<+MUTANTE_POWER_B> pode ser aaaa, bbbb, cccc, ddddd se vc quiser... mas nao faz sentido e fica complicado de compreender
<+MUTANTE_POWER_B> sugiro que use estes nomes de diretorio
<+MUTANTE_POWER_B> Bem... entao ja baixamos o arquvio, criamos o diretorio onde ficaram as libs do smarty, e criamos os diretorios necessarios para o seu funcionamento
<+MUTANTE_POWER_B> com as permissoes necessarias nos diretorios
<+MUTANTE_POWER_B> Agora vamos comecar a escrever nossa primeira tela usando o smarty
<+MUTANTE_POWER_B> crie um arquivo php, por exemplo index.php
<+MUTANTE_POWER_B> e coloque o conteudo:
<+MUTANTE_POWER_B> http://www.phpavancado.net/pastelog/1719
<+MUTANTE_POWER_B> pra agilizar... acesse este site e veja o conteudo do arquivo
<+MUTANTE_POWER_B> e vamos analizar linha a linha
<+MUTANTE_POWER_B> bem... axo q todos ja olharam o codigo =)
<+MUTANTE_POWER_B> vamos la
<+MUTANTE_POWER_B> o Smarty tem tres formas de chama-lo... mas vou mostrar a mais correta e que vc nao vai ter problemas
<+MUTANTE_POWER_B> definindo a constante SMARTY_DIR na linha 1
<+MUTANTE_POWER_B> coloque o caminho completo de onde esta o diretorio com as libs do smarty
<+MUTANTE_POWER_B> no caso do exemplo /web/www.mydomain.com/smarty/libs/
<+MUTANTE_POWER_B> na linha 2 dei o require_once do arquivo
<+MUTANTE_POWER_B> incluindo a classe Smarty em nosso scriot
<+MUTANTE_POWER_B> script
<+MUTANTE_POWER_B> e na linha 3 simplesmente instanciei a class Smarty na variavel $smarty
<+MUTANTE_POWER_B> moleza ateh ae
<+MUTANTE_POWER_B> nas linhas de 5 a 8, estaremos definindo os diretorios q criamos
<+MUTANTE_POWER_B> (para quem entrou agora, estamos analizando o codigo q esta em http://www.phpavancado.net/pastelog/1719)
<+MUTANTE_POWER_B> setando as propriedades template_dir, compile_dir, cache_dir e config_dir
<+MUTANTE_POWER_B> sugiro que sempre usem o caminho compleot
<+MUTANTE_POWER_B> completo
<+MUTANTE_POWER_B> na linha 10 estamos setando uma variavel de smarty com o metodo assign (veremos mais sobre isso posteriormente)
<+MUTANTE_POWER_B> e finalmente na linha 12 estamos chamando o template index.tpl
<+MUTANTE_POWER_B> o smarty vai pegar o arquivo index.tpl q esta no diretorio /web/www.mydomain.com/smarty/guestbook/templates/
<+MUTANTE_POWER_B> vai processar e imprimir na tela o html processado
<+MUTANTE_POWER_B> o arquivo index.tpl pode ser assim:
<+MUTANTE_POWER_B> <html><head><title>teste de smarty</title></head><body> Meu nome é: {$nome} </body></html>
<+MUTANTE_POWER_B> vamos falar sobre esse tal {$nome} mais pra frente tb
<+MUTANTE_POWER_B> soh estou matando a curiosidade de alguns
<+MUTANTE_POWER_B> :)
<+MUTANTE_POWER_B> Vamos ao principais metodos da classe Smarty e os pricipais comandos de template do smarty
<+MUTANTE_POWER_B> recebi mais uma msg no meu ponto de ouvido
<+MUTANTE_POWER_B> o nops testou tudo o que eu to falando
<+MUTANTE_POWER_B> http://smarty.fylelan.com/
<+MUTANTE_POWER_B> podem ver que funciona
<+MUTANTE_POWER_B> hehehehehe
<+MUTANTE_POWER_B> continuando....
<+MUTANTE_POWER_B> vlw nops
<+MUTANTE_POWER_B> Vamos aos principais metodos da classe Smarty
<+MUTANTE_POWER_B> $smarty->assign
<+MUTANTE_POWER_B> ele cria uma variavel de template
-smallll(t7DS@avO5PKSjUK7.201.79.64.O)- exemplos em tempo real mostrando o source do template, php ou a saída final http://www.tinybutstrong.com/examples.php
<+MUTANTE_POWER_B> axo que será o que voces mais vao usar
<+MUTANTE_POWER_B> $smarty->assign("Name","Fred");
<+MUTANTE_POWER_B> usamos ela assim...
<+MUTANTE_POWER_B> o primeiro parametro eh o nome da variavel que vai para o template e o segundo eh o valor
<+MUTANTE_POWER_B> vc pode passar qualquer tipo de variavel... texto, numero, arrays, booleanos e objetos*
<+MUTANTE_POWER_B> coloquei o * no objetos pois tem alguns porens
<+MUTANTE_POWER_B> qdo fazemos $novoobjet = $objeto; o php cria um clone do objeto... gastando mais memoria
<+MUTANTE_POWER_B> entao para nao ter este problema usamos o metodo
<+MUTANTE_POWER_B> assign_by_ref
<+MUTANTE_POWER_B> $smarty->assign_by_ref
<+MUTANTE_POWER_B> ele usa o $novoobjeto =& $objeto;
<+MUTANTE_POWER_B> cria uma referencia da variavel... e nao faz um clone... (gasta beeeeeeem menos memoria)
<+MUTANTE_POWER_B> tem os mesmos parametros do metodo assign
<+MUTANTE_POWER_B> nome e valor
<+MUTANTE_POWER_B> moleza
<+MUTANTE_POWER_B> $smarty->template_exists ("templatename.tpl");
<+MUTANTE_POWER_B> o metodo template_exists checa no diretorio que especificamos se o arquivo existe
<+MUTANTE_POWER_B> $smarty->display("index.tpl");
<+MUTANTE_POWER_B> o display, como vimos, ele pega o arquivo index.tpl, interpreta e IMPRIME o resultado
<+MUTANTE_POWER_B> temos o $smarty->fetch("index.tpl");
<+MUTANTE_POWER_B> que é muito parecido com o display
<+MUTANTE_POWER_B> a unica diferença é q ele RETORNA o arquivo processado
<+MUTANTE_POWER_B> nao imprime
<+MUTANTE_POWER_B> muito interessante
<+MUTANTE_POWER_B> $smarty->is_cached("index.tpl");
<+MUTANTE_POWER_B> o is_cached serve para verificar se ja existe o cache do template processado e retorna TRUE ou FALSE
<+MUTANTE_POWER_B> muito util para vc nao ter que fazer grandes consultas e tals
<+MUTANTE_POWER_B> ex:
<+MUTANTE_POWER_B> if (!$smarty->is_cached('index.tpl')) { mysql_query("...") or die(myslq_error()); ... }
<+MUTANTE_POWER_B> $smarty->display('index.tpl');
<+MUTANTE_POWER_B> entao... caso ele nao esteja "cacheado", vc faz as consultas e tals
<+MUTANTE_POWER_B> o fetch tb funciona assim
<+MUTANTE_POWER_B> $smarty->clear_cache("index.tpl");
<+MUTANTE_POWER_B> este metodo $smarty->clear_cache("index.tpl"); vc remove o cache deste template forçando o smarty a reprocessa-lo novamente
<+MUTANTE_POWER_B> Bem.... existem um monte de outros metodos... mas estes serao os mais usados...
<+MUTANTE_POWER_B> axo que vcs poderiam dar uma olhada neles depois na documentação
<+MUTANTE_POWER_B> http://smarty.php.net/manual/pt_BR/api.functions.php
<+MUTANTE_POWER_B> para dar uma relaxada antes de entrar na sintaxe de template do smarty, vamos as perguntas
<+MUTANTE_POWER_B> !perguntas
<+Perguntas_SDWeb> PERGUNTA de ( badcom ): O smarty vai deixar a navegação mais rápida? Vai agilizar o desenvolvimento do website? Vai tornar a minha página mais dinâmica? Se sim, como?
<+MUTANTE_POWER_B> ops =)
<+MUTANTE_POWER_B> a navegação esta relacionada ao layout... e nao ao processamento do seu codigo
<+MUTANTE_POWER_B> se vc nao der destaque aos links que daram as cordenadas aos seus usuarios, a navegabilidade do seu site eh fraca...
<+MUTANTE_POWER_B> sobre o desenvolvimento, agiliza na produção paralela (caso tenha 2 pessoas trabalhando juntas) e na reutilização de codigo
<+MUTANTE_POWER_B> como eu disse... o smarty nao vai torar um hello world em o site mais bonito do mundo
<+MUTANTE_POWER_B> isso ta relacionado em quao bom eh o seu projeto e o quao bom eh o seu designer
<+MUTANTE_POWER_B> =)
<+MUTANTE_POWER_B> !pergunta
<+Perguntas_SDWeb> PERGUNTA de ( Gholias ): nao é mais trabalhoso criar 2 arquivos, ter uma biblioteca amais e ter q direcionar as paginas do que jogar tudo no mesmo lugar ?
<+MUTANTE_POWER_B> bem... mais ou menos
<+MUTANTE_POWER_B> o smarty simplesmente organiza seu projeto
<+MUTANTE_POWER_B> ter tudo em seus devidos lugares é muito bom
<+MUTANTE_POWER_B> ajuda na manutenção... e seu projeto pode crescer (novas telas) sem ter que mudar muitas coisas
<+MUTANTE_POWER_B> da mesma forma q o conceito MVC (como disse no inicio) faz
<+MUTANTE_POWER_B> organiza seus projetos
<+MUTANTE_POWER_B> !pergunta
<+Perguntas_SDWeb> PERGUNTA de ( FoFao ): no caso esse programa ele separa designer de programação ou ele uni as duas coisas unindo o util do agradavel???
<+MUTANTE_POWER_B> ele separa o desenvolvimento do layout do seu site da gerencia do coteudo...
<+MUTANTE_POWER_B> !pergunta
<+Perguntas_SDWeb> PERGUNTA de ( insign ): o smarty tem assistente de instalação?
<+MUTANTE_POWER_B> como eu disse, basta descompatar
<+MUTANTE_POWER_B> nao precisa de mais nada
<+MUTANTE_POWER_B> nao tem necessidade de um assistente de instalação
<+MUTANTE_POWER_B> !pergunta
<+Perguntas_SDWeb> PERGUNTA de ( stlsorteio ): O uso do smarty é somente para parte visual do site? E qual seria a vantagem dele em relação a usar tableless com CSS. Estilo o csszengarden.com?
<+MUTANTE_POWER_B> sim... soh a parte visual...
<+MUTANTE_POWER_B> a vatagem em relação ao tableless? nao existe isso
<+MUTANTE_POWER_B> deixa eu esclarecer uma coisa...
<+MUTANTE_POWER_B> o Smarty nao eh um software de desenvolvimentos de layouts...
<+MUTANTE_POWER_B> ele eh um interpretador de um arquivo texto...
<+MUTANTE_POWER_B> ele pega este arquivo e transforma
<+MUTANTE_POWER_B> vc pode criar o template em tableless ou divless
<+MUTANTE_POWER_B> vc escreve o html...
<+MUTANTE_POWER_B> ele soh interpreta algumas "tags" e a transforma em um valor
<+MUTANTE_POWER_B> soh isso
<+MUTANTE_POWER_B> !pergutna
<+MUTANTE_POWER_B> ops
<+MUTANTE_POWER_B> !pergunta
<+Perguntas_SDWeb> PERGUNTA de ( DJ-MaRCeLLo[Wrk] ): se index.tpl estiver no cache os dados da query estao no template compilado?
<+MUTANTE_POWER_B> ele guarta o template que foi compilado
<+MUTANTE_POWER_B> por isso q vc pode remover o cache caso nao queira um conteudo estatico
<+MUTANTE_POWER_B> vc pode nao usar o sistema de cache se quiser
<+MUTANTE_POWER_B> setando a propriedade $smarty->caching = false;
<+MUTANTE_POWER_B> sacou?
<+MUTANTE_POWER_B> deixa eu ver qtas perguntas tem ainda
<+MUTANTE_POWER_B> se tirver muitas, vamos para a proxima etapa e depois continuamos
<+MUTANTE_POWER_B> com mais perguntas
<+MUTANTE_POWER_B> soh 3
<+MUTANTE_POWER_B> !pergunta
<+MUTANTE_POWER_B> ?
<+Perguntas_SDWeb> PERGUNTA de ( nops ): No index.php criado pode deixar de fora a pasta config, ou tem que "cria-la" mesmo sem usar?
<+MUTANTE_POWER_B> nao precisa criar
<+MUTANTE_POWER_B> soh se for usar
<+MUTANTE_POWER_B> !pergunta
<+Perguntas_SDWeb> PERGUNTA de ( badcom ): ta dando isso: Warning: Smarty error: unable to read resource: "index.tpl" in C:\WM\www\www\smarty\libs\Smarty.class.php on line 1095
<+MUTANTE_POWER_B> esse erro acontece qdo vc nao tem o arquivo index.tpl dentro do diretorio que vc especificou para os templates
<+MUTANTE_POWER_B> MUITO COMUM
<+MUTANTE_POWER_B> iuahiahuia
<+MUTANTE_POWER_B> !pergunta
<+Perguntas_SDWeb> PERGUNTA de ( Guest243234 ): teria como vc citar alguns locais onde seria legal utilizar smarty? e ainda teria um exemplo q utilize..
<+MUTANTE_POWER_B> creio q se vc for utilzar o smarty, q use em todo o seu site
<+MUTANTE_POWER_B> o pasteLog (pastel.phpavancado.net) usa, o gamelib.com.br (q eh do Xupisco) usa, o Gholias tem uma grande experiencia de uso do smarty no HostControl
<+MUTANTE_POWER_B> recebi no meu ponto q o http://www.mundoti.org/ tb usa
<+MUTANTE_POWER_B> !pergunta
<+MUTANTE_POWER_B> a ultima dessa parte
<+Perguntas_SDWeb> PERGUNTA de ( Guest243490 ): o q seria legal de fazer com smarty ? q daria mto trabalho de fazer na mao?
<+MUTANTE_POWER_B> por exemplo, no site do gamelib.com.br
<+MUTANTE_POWER_B> nos menus da esquerda
<+MUTANTE_POWER_B> poderiams criar um bloco (veremos o q eh isso) que criaria aquilo tudo
<+MUTANTE_POWER_B> passando o titulo, a cor, e os itens do menu com apenas uma linha
<+MUTANTE_POWER_B> por exemplo {menuGL title="Listagens" cor="lilas" links=$links}
<+MUTANTE_POWER_B> e o smarty geraria o menu
<+MUTANTE_POWER_B> nossa... inventei isso agora... imaginacao fertil
<+MUTANTE_POWER_B> hehehehe
<+MUTANTE_POWER_B> mas calma.... vamos ver isso depois
<+MUTANTE_POWER_B> Vamos continuar
<+MUTANTE_POWER_B> Vimos como instalar e os pricipais comandos da classe Smarty
<+MUTANTE_POWER_B> vamos aos pricipais comandos de templates...
<+MUTANTE_POWER_B> Sintaxe Básica:
<+MUTANTE_POWER_B> Todas as tags de template do Smarty contém delimitadores. Por padrão, estes delimitadores são { e }.
<+MUTANTE_POWER_B> pode ser alterado se quiser... mas eu gosto assim... cada um com seu cada um heheheheh
<+MUTANTE_POWER_B> O Smarty procura por elas e tenta interpretar e mostra a saída apropriada em seu lugar.
<+MUTANTE_POWER_B> Só pra constar, vou mostrar a sintaxe dos comentários... é assim: {* COMENTARIO *}
<+MUTANTE_POWER_B> entao o smarty qdo acha qualquer coisa que começa {* e termina com *} ele ignora...
<+MUTANTE_POWER_B> por isso eh um comentario =)
<+MUTANTE_POWER_B> eu quase nao uso isso... qdo quero comentar, comento no html
<+MUTANTE_POWER_B> mais uma vez, cada um com seu cada um! =)
<+MUTANTE_POWER_B> vamos às variaves do Smarty
<+MUTANTE_POWER_B> As variáveis definidas pelo método assign da classe Smarty podem ser acessadas via {$nomedavariavel}.
<+MUTANTE_POWER_B> Para arrays use {$variavel[0]} e para arrays associativos use {$variavel.chave}.
<+MUTANTE_POWER_B> No caso de objetos use {$variavel->metodos()} ou {$variavel->atributos}
-smallll(t7DS@avO5PKSjUK7.201.79.64.O)- como exemplo pro pessoal mostre seu script o PASTEL que usa e abusa do Smarty
<+MUTANTE_POWER_B> Vale lembrar que é possível fazer operações matemáticas normalmente dentro das tags de template. Exemplo: {$variavel1 - $variavel3 * ($variavel4->valor / 3)}
[notice(smallll:)] eh opensource... soh baixar e ver
[notice(smallll)] eh opensource... soh baixar e ver
[notice(smallll)] vou sugerir isso
<+MUTANTE_POWER_B> simples neh?
<+MUTANTE_POWER_B> o smarty tb tem suas funcoes
<+MUTANTE_POWER_B> Cada tag Smarty mostra uma variável ou utiliza algum tipo de função. Funções são processadas e exibidas colocando-se a função e seus atributos entre delimitadores, exemplo: {funcname attr1="val" attr2="val"}
<+MUTANTE_POWER_B> Lembrando que os valores dos atributos pode ser uma variável perfeitamente. Ex: {include file=$arquivo}
<+MUTANTE_POWER_B> uma listagem de todas as funções q o smarty possui: http://smarty.php.net/manual/pt_BR/language.custom.functions.php
<+MUTANTE_POWER_B> uma muito util eh a include
<+MUTANTE_POWER_B> para definir um template base... e soh alterar a area de conteudo
<+MUTANTE_POWER_B> o smarty tem uma outra coisas que ele chamou de MODIFICADORES
<+MUTANTE_POWER_B> sao as funcoes que alteram os valores
<+MUTANTE_POWER_B> ou melhro
<+MUTANTE_POWER_B> Modificadores de variáveis podem ser aplicados a variáveis, funções personalizadas ou strings. Para aplicar um modificador, especifique o valor seguido por | (pipe) e o nome do modificador.
<+MUTANTE_POWER_B> Ex: {$titulo|upper}
<+MUTANTE_POWER_B> vai colocar o valor de $titulo todo em maiusculo
<+MUTANTE_POWER_B> Um modificador aceita parâmetros adicionais que afetam o seu comportamento. Estes parâmetros vem após o nome do modificador e são separados por : (dois pontos).
<+MUTANTE_POWER_B> Ex: {$topico|truncate:40:"..."}
<+MUTANTE_POWER_B> no caso o truncate quebra a frase no 40o caracter e completa com ...
<+MUTANTE_POWER_B> Modificadores são muito úteis...
<+MUTANTE_POWER_B> Podemo usar tb uma combinação de modificadores....
<+MUTANTE_POWER_B> {$articleTitle|upper|truncate:40:"..."}
<+MUTANTE_POWER_B> blz?
<+MUTANTE_POWER_B> mole mole...
<+MUTANTE_POWER_B> muito util isso
<+MUTANTE_POWER_B> tem tb o BLOCOS
<+MUTANTE_POWER_B> Ahhh eskeci
<+MUTANTE_POWER_B> a url com todos os modificadores eh:
<+MUTANTE_POWER_B> http://smarty.php.net/manual/pt_BR/language.modifiers.php
<+MUTANTE_POWER_B> os Blocos...
<+MUTANTE_POWER_B> lembra que eu dei o exemplo dos blocos para o site do gamelib?
<+MUTANTE_POWER_B> ops... falei besteira...
<+MUTANTE_POWER_B> o exemplo era uma funcao
<+MUTANTE_POWER_B> desculpe
<+MUTANTE_POWER_B> vou dar um exemplo de um bloco
<+MUTANTE_POWER_B> q vai ser mais facil de explicar
<+MUTANTE_POWER_B> {if $auth eq 1} Usuario logado {else} Usuario nao esta logado {/if}
<+MUTANTE_POWER_B> este eh o if do smarty
<+MUTANTE_POWER_B> ele eh um bloco
<+MUTANTE_POWER_B> pois termina com {/if} (estilo html)
<+MUTANTE_POWER_B> e tem conteudo dentro dele
<+MUTANTE_POWER_B> vale lembrar q o $auth no if eh uma variavel de smarty, ou seja, precisa ser setada via metodo assign
<+MUTANTE_POWER_B> um outro bloco muuuuuuuito util, eh o section
<+MUTANTE_POWER_B> eh o que faz os loops...
<+MUTANTE_POWER_B> ele funciona assim:
<+MUTANTE_POWER_B> {section name=item loop=$nomes} Nome: {$nomes[item]} <br /> {/section}
<+MUTANTE_POWER_B> entao vc pode usar pra preencher uma tabela e tals
<+MUTANTE_POWER_B> e por fim
<+MUTANTE_POWER_B> o bloco {literal}
<+MUTANTE_POWER_B> ele nao interpreta o que esta dentro dele...
<+MUTANTE_POWER_B> ou seja... no seu javascript vc usa muitos { e }
<+MUTANTE_POWER_B> isso eh um problema qdo se usa com smarty
<+MUTANTE_POWER_B> entao geralmetne colocamos o codigo js dentro do bloco {literal} ... {/literal}
<+MUTANTE_POWER_B> vcs encontraram a listagem de todos os blocos em: http://smarty.php.net/manual/pt_BR/language.builtin.functions.php
<+MUTANTE_POWER_B> Logicamente voce pode criar suas funcoes, modificadores, blocos, filtros e objetos...
<+MUTANTE_POWER_B> mas precisaria de mais umas horas pra falar disso
<+MUTANTE_POWER_B> quem sabe numa proxima oportunidade
<+MUTANTE_POWER_B> um exemplo beeeem pratico do smarty
<+MUTANTE_POWER_B> vc pode encontrar em:
<+MUTANTE_POWER_B> http://www.phpavancado.net/node/39
<+MUTANTE_POWER_B> eu geralmente uso este estilo em meus sites q uso o smarty
<+MUTANTE_POWER_B> soh pra fechar
<+MUTANTE_POWER_B> o smarty tem uma variavel propria que vc pode acessar a sessao, get e post, cookies via ela
<+MUTANTE_POWER_B> eh a $smarty
<+MUTANTE_POWER_B> vc encontra tudo sobre ela em http://smarty.php.net/manual/pt_BR/language.variables.smarty.php
<+MUTANTE_POWER_B> vc pode ver o smarty na pratica baixando o pasteLog e analizando o codigo
<+MUTANTE_POWER_B> http://www.phpavancado.net/pastelog/about
<+MUTANTE_POWER_B> aki vc vai axar aonde pode baixar e tals
<+MUTANTE_POWER_B> enfim...
<+MUTANTE_POWER_B> deixa eu ver se tem mais perguntas
<+MUTANTE_POWER_B> !pergunta
<+Perguntas_SDWeb> PERGUNTA de ( ecl ): Considera uma boa prática lançar mão de arquivos .conf para intercionalizar parcialmente o sistema?
<+MUTANTE_POWER_B> uma boa pratica nao... mas uma saida simples para este problema
<+MUTANTE_POWER_B> o gettext faz isso bem melhor q o arquivo conf do smarty
<+MUTANTE_POWER_B> !pergunta
<+Perguntas_SDWeb> PERGUNTA de ( Guest243490 ): o q quero dizer é o seguinte eu quero mudar facilemente a cor de fundo de varios locais naum tem como criar um var interna a engine tipo um parametro de config?
<+MUTANTE_POWER_B> vc pode usar o assign para isso para fazer via programação ou o arquivo conf q falei para setar os valores q vc quer
<+MUTANTE_POWER_B> !pergunta
<+Perguntas_SDWeb> Sem mais perguntas cadastradas.
<+MUTANTE_POWER_B> Bem pessoal...
<+MUTANTE_POWER_B> desculpe pela aula massante...
<+MUTANTE_POWER_B> mas eh que tem muuuuita coisa pra falar do smarty
<+MUTANTE_POWER_B> falei um montao e nem falei da metade do q ele faz
<+MUTANTE_POWER_B> =)
<+MUTANTE_POWER_B> estou no mirc a semana toda...
<+MUTANTE_POWER_B> caso tenham mais duvidas
<+MUTANTE_POWER_B> e estarei a disposicao para ajudalos
<+MUTANTE_POWER_B> em fim....
<+MUTANTE_POWER_B> mobscene: vlw pela oportunidade, mais uma vez
<+MUTANTE_POWER_B> e eh isso ae pessoal
<@mobscene> Encerra-se aqui a aula de Smarty com MUTANTE_POWER_B, parabéns kra, bem detalhada e esclarecedora sua aula.. :)
<+MUTANTE_POWER_B> =)
<+MUTANTE_POWER_B> tentei ser o mais simples possivel
<+MUTANTE_POWER_B> para q todos a entendam...
<@ecl> Boa aula MUTANTE_POWER_B! :D Parabéns, obrigado! :D
<+MUTANTE_POWER_B> vlw
<@mobscene> muito boa mesmo, e lembrando que o log da mesma estará disponivel posteriormente em www.canalwebmaster.com.br
<@ecl> E só para informar, no site www.phpavancado.net vocês podem encontrar vários assuntos envolvendo o Smarty, para possíveis dúvidas que possam surgir, dêem uma olhada lá! :)
< mrvanz|working> MUTANTE_POWER_B valeu pela Aula (:
< tbu> =]
< mrvanz|working> :P
< hak> boa
<+MUTANTE_POWER_B> mobscene:/
<+MUTANTE_POWER_B> ops
<+MUTANTE_POWER_B> mrvanz|working :/
<+MUTANTE_POWER_B> mrvanz|working: acordou?
< ecl> hahhahaa
< mrvanz|working> MUTANTE_POWER_B sim sim, thanks :]
< mrvanz|working> MUTANTE_POWER_B creio que tenha ajudado bastante gente :P
< ecl> Designers, ... :D
<+MUTANTE_POWER_B> mrvanz|working: eh... espero mesmo..
< mrvanz|working> MUTANTE_POWER_B brother,o eu não curto programação, mas eu meio que dei umas lidas na aula e tal, deve ter ajudado muita gente por aqui :]
<+MUTANTE_POWER_B> mrvanz|working: ja percebi isso
< mrvanz|working> MUTANTE_POWER_B :P
<+MUTANTE_POWER_B> bem... vou nessa pessoal
<+MUTANTE_POWER_B> precisando; soh gritar...
< mrvanz|working> MUTANTE_POWER_B valeu brother! :]
< ecl> MUTANTE_POWER_B: Valeu Pedro! []s
<@PedroJudo> ecl de nada!
<@mobscene> []`s MUTANTE_POWER_B, vlw :)
<+MUTANTE_POWER_B> oajojajioajioajoia
< ecl> Já pode tirar o ponto de ouvido. :D
<+MUTANTE_POWER_B> AhaIhauAHiuAHiuahuiA
< ecl> huasihuahsiahsiuahsiuhasiuhai
< Baldoke> MUTANTE_POWER_B vlw pela aula
<+MUTANTE_POWER_B> Flw ae pessoal
<+MUTANTE_POWER_B> Ahhhhh RTFM
<+MUTANTE_POWER_B> Read The Fuck Manual
<+MUTANTE_POWER_B> eh muuuuuuuito importante q leiam
<+MUTANTE_POWER_B> Fui!