Page 1 of 1

dificuldade para se trabalhar com templates

Posted: Tue Sep 08, 2009 8:56 pm
by leoliveira00
Olá.
Sou desenvolvedor php e gosto de ter liberdade na criação e montagem dos layouts (usando tableless). Por esse motivo, nunca gostei muito de usar cms. Porém conheci hoje mesmo o cmsms e estou me surpreendendo com a liberdade que ele dá no quesito design, mas claro que como todo iniciante, estou com muitas dúvidas e gostaria da ajuda de vocês.

Minhas configurações:
Versão do CMS: 1.6.5;
Php: 5.2.4;
BD: MySQL 5.0.45
Apache/2.0.59 (Win32)
WINNT 5.1 Ligado i586

Bom, a minha primeira dúvida é sobre como criar meus próprios templates. Além disso gostaria de usar frameworks como o jquery, mooltools, aplicativos em flash, enfim. Mão estou me dando bem com a relação html - css. Alguém pode me ajudar? Como criar templates?

Muito Obrigado.

Re: dificuldade para se trabalhar com templates

Posted: Wed Sep 09, 2009 6:15 am
by viebig
Fala Amigo!

Muito bem vindo!

Templates são puro html, e smarty.

Mini Tutorial CMS Made Simple CMSMS - Templates

Sugiro que você fuce um pouco e descubra mais sobre o smarty e como ele funciona.

De qualquer forma ai vão algumas dicas!

Eis aqui um template minimalista

Code: Select all

<__html>
<head>
<title>{title} - {sitename}</title>
</head>
</__body>
{menu}
{content}
<__body>
</__html>
Veja que temos puro html e algumas tags smarty, que serão substituídas. por exemplo {title} é o título da página, {sitename} o nome do site, {menu} uma lista com as páginas do site, {content} o conteúdo da página.

Veja que os delimitadores das tags em smarty são chaves "{"  "}" e tudo que estivr entre chaves será processado, por exemplo:

Code: Select all

<__html>
<head>
<title>{title} - {sitename}</title>
<__script__ type="text/javascript">
function oi()
{
alert ("oi");
}
</__script>
</head>
</__body>
{menu}
{content}
<__body>
</__html>
Este código acima levará o cmsms à um erro pois o smarty tenta entender:

Code: Select all

{alert ("oi");}
que obviamente não é uma tag do smarty e sim javascript. assim sendo temos de dizer ao smarty para não processar essas chaves, fazemos isso assim:

Code: Select all

<__html>
<head>
<title>{title} - {sitename}</title>
<__script__ type="text/javascript">
{literal}
function oi()
{
alert ("oi");
}
{/literal}
</__script>
</head>
</__body>
{menu}
{content}
<__body>
</__html>
Perceba que a tag {literal}...{/literal} faz com que todo o conteúdo dentro dela seja processado como texto, e não interpretado pelo smarty.

Muitas vezes tags chamam módulos que por si tem outros templates editáveis, como o {menu}

Parece difícil mas é bem mais simples do que programar em PHP. Aprenda Smarty. Se quiser ajuda, um curso ou qualquer outra coisa poste aqui ou mande uma mensagem para mim.

Abraços

Re: dificuldade para se trabalhar com templates

Posted: Wed Sep 09, 2009 1:53 pm
by leoliveira00
Viebig, valeu mesmo pela dica. Saquei como funciona, vc explica muito bem. Deu certo aq o teste que fiz com o lightbox. Incluí o jquery e o plugin dentro do próprio template. Agora, acho que seria bem mais legal definir uma tag. Tentei fazer da seguinte forma, mas não funcionou:

nome da tag: incluiJquery
código:
{literal}


{/literal}

Daí seria só colocar no template {incluiJquery}

Tem alguma dica de como definir isto usando tags, Viebig?

Mais uma vez Obrigado.

Re: dificuldade para se trabalhar com templates

Posted: Thu Sep 10, 2009 2:43 am
by viebig
tags são PHP, global content blocks é smarty

numa tag seria

Code: Select all

echo '<__script__ type="text/javascript" src="js/jquery-1.2.6.pack.js"></__script>';
Num Global Content Block seria

Code: Select all

{literal}
<!--esta tag inclui a biblioteca jquery-->
<__script__ type="text/javascript" src="js/jquery-1.2.6.pack.js"></__script>
{/literal}
E você chamaria essa tag assim

Code: Select all

{global_content name="nome-do-global-content-block"}