Participe também!

O Joomla! é um premiado gerenciador de conteúdo (CMS) livre e gratuito. Junte-se a nós, aprenda, interaja e ajude a aprimorar o Joomla! cada vez mais!

Cadastre-se
Tutoriais > Tutorial para Templates

Tutorial para Templates

E-mail Imprimir PDF

Vou tentar passar algumas técnicas para a construção do layout utilizando o joomla. A minha intenção com esse tutorial não é ensinar html, css e nem como desenhar um layout e sim como adaptar o layout para os padrões joomla.

Olá esse é o meu segundo tutorial, o primeiro faz um bom tempinho e servia (serve) para a instalação, na época ainda não existia o joomla, então o mesmo ainda era pra mambo.

Agora vou tentar passar algumas técnicas para a construção do layout utilizando o joomla. A minha intenção com esse tutorial não é ensinar html, css e nem como desenhar um layout e sim como adaptar o layout para os padrões joomla.

Vou utilizar como exemplo um template já todo pronto em html, esse exemplo de layout foi retirado do site, (http://www.zymic.com/) se alguém quiser lá tem vários templates prontos todos de graça, e com ótima qualidade, é uma boa também para começar a fazer o seu primeiro template para o joomla. 

Será utilizado como base o joomla 1.0.11. 

Vamos deixar a ladainha de lado e vamos começar a por a mão na massa.

Primeiramente o que a pessoa deve ter em mente é o seguinte:
- Análise o template e veja onde cada módulo do joomla possa se adaptar.
- Análise o que é template e o que é joomla. Ou seja, template será tudo que se repetirá nas outras páginas, o que é joomla será dinâmico, algumas partes aparecem, e em outras não necessariamente.


Vou fazer uma leitura de como esse template será adaptado.
Veja que, o que está em azul será manipulado pelo joomla e o que está
em verde será template, ou seja, dificilmente mudará.



Como esse é um template pronto, todo o html já está feito e aliás muito bem feito, foi todo feito utilizando técnicas de tableless.


Agora vamos começar a adaptar o nosso layout.
Primeiramente o que devemos fazer é seguinte, criar uma pasta dentro da pasta template do joomla. No nosso caso vamos criar uma pasta chamada, zymic (poderia ser qualquer nome).
Dentro dela terá os seguintes arquivos e pastas:

index.html - Apenas por segurança esse arquivo é criado, de forma que a pessoa não tenha acesso ao conteúdo da pasta

index.php – Aqui será onde colocaremos o nosso html.

templateDetails.xml – Arquivo para o uso do joomla e documentação.

template_thumbnail.png – Miniatura do site, para ser visualizada quando se for escolher o template.

/images/ - Pasta com as imagens utilizadas no template.
 
/css/ - Pasta contendo o css do nosso template.

Normalmente o que eu faço é o seguinte, copio uma pasta de template do joomla para outro diretório, renomeio ela e coloco-a de volta de forma que não precise ficar criando os mesmos arquivos. Isto não significa que você terá que fazer isso também, faço isso mais por prática.

Copiada a pasta, modifique o arquivo templateDetails.xml com os seus dados. Pronto agora você já pode ir até a administração e selecionar o seu template. Ele ficará igual ao antigo, mas vamos começar a alterá-lo agora. Não se preocupe pois no final do tutorial irei disponibilizar, todos os arquivos.
Esse será o nosso primeiro código.

Repare que entre as tag’s body não têm-se nada.
Vamos começar a colocar nosso código.

Agora iremos inserir no mesmo arquivo css:
html {
       height: 100%;
       font:normal normal 12px Arial, Helvetica, sans-serif;
       background-color: #282828;
       color: #383838;
       text-align: center;
}

 

body {
       height: 100%;
       text-align: center;
       margin: 20px auto 0 auto;
       text-align: left;
       width: 703px;
       background-color: #282828;
       color: #383838;
}

html > body {
      background: #282828 url('/../images/bg.gif') repeat-y center;
}

Até aqui nada demais...
Estou estilizando font’s e outros atributos...

Agora o nosso html a primeira coisa a ser feita é o topo onde se encontra o logo da empresa.
Vou utilizar uma forma semântica de forma que nosso logo será o elemento mais importante da nossa página. O código é o seguinte.
HTML:
<h1><a xhref="/" mce_href="/">Zymic os melhores templates Free.</a></h1>
CSS:
h1 { 
      text-indent:-5000em;
      overflow:hidden;
      width:703px;
      height:121px;
      background:url('/../images/header.jpg') no-repeat;
     margin:0;
}

h1 a {
     display:block;
     height:121px;
}

Pronto está criado o topo do site.

Agora vamos construir o menu superior, esse menu é em aba, dará um pouquinho de trabalho, mas estamos ai pra isso.
Coloco esse código:
<?php mosLoadModules('top'); ?>
A leitura desse código seria algo assim: Aparecer os módulos que estão na posição top;
Não esquece de ir na administração do site, ir em módulos e selecionar para que o menu top, seja exibido na posição “top”.
Quando você atualizar o site ele retornará o menu assim:
<TABLE class=moduletable cellSpacing=0 cellPadding=0>
        <TBODY>
          <TR>
            <TD>
              <UL id=mainlevel-nav>
                <LI><A class=mainlevel-nav xhref="
http://localhost/testes/tutorial/index.php>
                <LI><A class=mainlevel-nav xhref="
http://localhost/testes/tutorial/index.php?option=com_contact&amp;Itemid=3>
                <LI><A class=mainlevel-nav xhref="
http://localhost/testes/tutorial/index.php?option=com_content&amp;task=section&amp;id=1&amp;Itemid=2>
                <LI><A class=mainlevel-nav xhref="
http://localhost/testes/tutorial/index.php?option=com_weblinks&amp;Itemid=23>
              </UL>
            </TD>
          </TR>
        </TBODY>
      </TABLE>

Repare que a estrutura do menu foi criada dentro de tables, eu não quero isso, pois quando crio um template faço de forma que fique mais dentro o possível dos padrões Web. Então o que fazer para mudar isso?
Adicione um parâmetro a chamada do módulo:
<?php mosLoadModules('top',-1); ?>
Agora ele retornou o menu assim:
<UL id=mainlevel-nav>
        <LI><A class=mainlevel-nav xhref="
http://localhost/testes/tutorial/index.php>
        <LI><A class=mainlevel-nav xhref="
http://localhost/testes/tutorial/index.php?option=com_contact&amp;Itemid=3>
        <LI><A class=mainlevel-nav xhref="
http://localhost/testes/tutorial/index.php?option=com_content&amp;task=section&amp;id=1&amp;Itemid=2>
        <LI><A class=mainlevel-nav xhref="
http://localhost/testes/tutorial/index.php?option=com_weblinks&amp;Itemid=23>
      </UL>

Repare que ele não está mais utlizando a estrutura de tabelas, apenas as formatações do menu mesmo.
Você pode usar os seguintes atributos para os módulos:
<?php mosLoadModules('top',); ?>   - Esse seria o default, que chama tabelas;
<?php mosLoadModules('top',-1); ?> - Esse serve para voltar só o módulo, sem tag’s a mais;
<?php mosLoadModules('top',-2); ?> - Esse serve para voltar como xhtml;
<?php mosLoadModules('top',-3); ?> - Esse serve para retornar valores, para se fazer cantos arredondados;
Agora vai da sua criatividade. Utiliza o que lhe for mais conveniente.
Você também pode dar uma olhada no arquivo /includes/frontend.html.php encontrará os códigos e se quiser fazer algum hack no retorno dos valores dos módulos esse é o arquivo certo.

Observe também que a classe do módulo está com um –nav, isso foi inserido na administração do módulo, você pode trocar esse valor, de forma que você possa ter o mesmo menu com estilizações diferentes.

Agora vamos começar a estilizar o nosso menu.
ul#mainlevel-nav{
        list-style:none;
        margin:0;
        padding:0;
        height:33px;
        width:703px;
        background: #282828 url('/../images/top_nav_right_bg.gif') no-repeat bottom right;
}

ul#mainlevel-nav li{
       float:left;
      display:block;
      background-image:none;
      margin:0;
      padding:0;
}

ul#mainlevel-nav li a, ul#mainlevel-nav li a:visited{
      background: #282828 url('/../images/top_nav_small_tab.gif') no-repeat;
      height: 23px !important;
      height: 33px;
      width: 131px;
      padding: 10px 0 0 0;
      text-align: center;
      font-size: 14px;
      color: #515151;
      text-decoration: none;
      display: block;
}

ul#mainlevel-nav li a:hover{
  background: #282828 url('/../images/top_nav_small_tab_hover.gif') no-repeat;
}

Veja a imagem da configuração do módulo:

Pronto menu estilizado.

Agora vamos colocar aquela imagem, como se fosse um header.
<img xsrc="<?php echo $mosConfig_live_site;?>/templates/zymic/images/slogan_box.gif" alt="slogan box" />
Repare que utilizei esse comando <?php echo $mosConfig_live_site;?> ele serve para imprimir o path (caminho) do site, com isso quando mudar o nosso site para o servidor, não precisa ficar alterando caminhos.

Agora o css, do módulo de estatísticas:
Originalmente não existe um módulo igual a este, pelo menos não conheço mas nada que não possa ser adaptado de alguma coisa que já exista.

HTML
<ul id="statsbar">
      <li id="comments">10,232 Comments</li>
      <li id="hits">298 Unique Hits Today</li>
      <li id="online">65 People Online</li>
</ul>

CSS
ul#statsbar {
       background: #282828 url('/../images/stats_bar.gif') no-repeat;
       height: 39px;
       width: 703px;
       margin: -3px 0 0 0;
       padding: 0;
       color: #fff;
}

ul#statsbar li {
        list-style-type: none;
        float: left;
        display: block;
        margin: 0;
        padding: 11px 0 0 0;
}

ul#statsbar li#comments {
       padding-left: 35px;
       background-image:none;
}

#statsbar li#hits {
       padding-left: 45px;
       background-image:none;
}

#statsbar li#online {
       padding-left: 45px;
       background-image:none;
}

Agora vamos começar a estruturar as partes mais dinâmicas do site.
Como disse não será um tutorial ensinando como fazer layout’s e sim template, então não vou detalhar tudo apenas que julgar importante para a criação de templates pro joomla.

Criei as seguintes tag’s html:
<div id="conteudo">
        <div id="left"></div>
        <div id="right"></div>   
</div>

Com os seguintes css’s:
#left{
       width:218px;
       height:200px;
       float:left;
       background-color: #fff;
      color: inherit;
}

#right{
      width:485px;
      height:200px;
      float:right;
      background-color: #fff;
}

Agora vamos começar a inserir os módulos:
Entre as tag´s left colocarei esse código:
<div id="left"><?php mosLoadModules('left',-2); ?></div>

O -2 é a forma xhtml de chamar módulos.

Configurações do módulo:

CSS:
div.moduletable {
}

div.moduletable h3 {
       font-size: 12px;
       font-weight: normal;
       background-color: inherit;
       color: #fff;
       margin: 0;
       padding: 5px 0 0 15px;
       background-image: url('/../images/left_content_header.gif');
       line-height: 32px;
      width: 218px;
      text-align:left;
}

ul#mainlevel{
      margin: 0;
      padding: 0;
}

ul#mainlevel li {
      list-style-type: none;
      display: block;
      margin: 0;
      padding:0;
      background-image:none;
      text-align:left;
      height: 28px;
}

ul#mainlevel li a{
       background-image: url('/../images/left_nav_link_bg.gif');
       color: #000;
       text-decoration: none;
       display: block;
       height: 22px !important;
       height: 28px;
       padding: 6px 0 0 20px;
}

ul#mainlevel li a:hover{
       background-image: url('/../images/left_nav_link_bg_hover.gif');
}

Dentro da div right vamos colocar a imagem da laranja, nada demais.

Agora colocaremos aquela barra onde está escrito: Welcome to yoursite.com
Porém vamos inserir o pathway, ele faz uma navegação do site, nada demais.

HTML:
<div id="pathway"><?php mosPathWay(); ?></div>

CSS:
#pathway{
       font-size: 12px;
       font-weight: normal;
       color: #f9ffff;
       margin: 0;
       background: #fff url('/../images/main_content_header.gif') no-repeat;
       line-height: 32px;
       width: 470px !important;
       width: 485px;
       padding: 5px 0 0 15px;
       text-align:left;
}


Vamos configurar o joomla de forma que ele fique igual ao template original.
Na administração entre em, Menu > mainmenu, e escolha o primeiro item, no caso Início.
Vou fazer um resumão. Não deixei exibindo nada, configurei para aparecer três notícias principais, nenhum introdução, 1 coluna, links 0.

Pronto agora vamos estilizar de forma que fique igual ao nosso layout.
Obs: Eu apenas alterei as tag’s que já existiam no css original.

CSS:
td.contentheading {
          padding:5px 0 0 2px;
          background-color:#f0f0f0 !important;
          background-color:none;
}

 

a.contentpagetitle, a.contentpagetitle:visited {
          padding:0 0 0 10px !important;
          padding:5px 0 2px 10px;
          height:30px;
          background: #f0f0f0;
          width:478px;
          font:bolder normal 18px Arial, Hevlvetica, sans-serif;
          color:#161616;
}

a.contentpagetitle:hover {
         padding:0 0 0 10px !important;
         padding:5px 0 2px 10px; 
         height:30px;
         background: #f0f0f0;
         width:478px;
         font:bolder normal 18px Arial, Hevlvetica, sans-serif;
        color:#161616;
}

Por fim, iremos fazer o rodapé do site.

HTML:
<div id="rodape">
      &copy; Copyright  2006 -
      <a xhref="
http://www.zymic.com/ Templates</a>
      By
      <a xhref="
http://www.zymic.com/>
      - All Rights Reserved</div>
</div>

CSS:
#rodape{
         clear:both;
         width: 701;
         height: 26px;
         padding: 10px 0px 0px 0px;
         background: #383838;
         border: 1px solid #fff;
         border-top: 0;
         color: #fff;
         text-align: center;
         margin: 0;
}


Por favor, agora aguardo as críticas os elogios e as correções de português.
E também sinta-se a vontade para adicionar mais conteúdo a este tutorial. Na verdade essa é a primeira parte desse material, pretendo continuar o mesmo, utilizando recursos mais avançados.

Detalhe:
Não fiz toda a estilização do módulo de últimas notícias, pois a idéia aqui é você aprender a fazer e não pegar o template para usar.
Mas se alguém quiser fazer a alteração e enviar o arquivo corrigido, será dado os créditos merecidos.

Eventualmente alguma coisa possa não ter ficada idêntica ao layout, mas como disse antes a idéia é passar o conceito.


Segue todos os arquivos para download, inclusive o SQL, da minha instalação.

 

Comments (12)
1 Seg, 04 de Agosto de 2008 23:27
Administrator
Olá!

Aparentemente este não é um tutorial para iniciantes em construção de templates, correto?

Senti falta de muitas explicações, as mais simples, do tipo: Você deve escrever o código CSS dentro do arquivo .css que está dentro do diretório /css do seu template... deve ser escrito na ordem tal para tal finalidade...

Um abraço!
2 Ter, 05 de Agosto de 2008 15:21
Administrator
Ronildo Beleza?

So para entender, o index.php você tirou da onde?
Quando vc fala em modificar o arquivo templateDetails.xml, como se faz isto?
Achei interessante este seu tutorial, mas para nós iniciantes falta "pega" entre os assuntos.
Mas esta legal mesmo.
3 Sáb, 09 de Agosto de 2008 02:05
Administrator
Achei extremamente confuso! Acabei de instalar o Joomla! no meu computador!
4 Sex, 22 de Agosto de 2008 16:56
Daniel
Muito bom esse tutorial. Valeu!
5 Sex, 29 de Agosto de 2008 13:30
nana
Olha esse tutorial precisava ser mais detalhado.
Mesmo pra que tem alguma noção ficou meio confuso.
mas valeuu!!
6 Qui, 25 de Setembro de 2008 19:05
Spoonman
realmente...
muito confuso!
Não e pra iniciantes!
7 Sex, 17 de Outubro de 2008 19:35
Samuel Lanes
Gostrei.
O tutorial não é "teórico" e sim prático, por isso a dificuldade de entendimento de alguns.
Obrigado.
8 Qua, 22 de Outubro de 2008 01:23
Moacir
Gostei! Continue fazendo tutoriais, estou aprendendo com o seu. No futuro farei os meus para os iniciantes do futuro, pois nada é fácil e uma ajuda como essa é muito bem-vinda.
Muito Obrigado!
9 Qua, 22 de Outubro de 2008 22:15
Rodnei
Olá amigo
Faltou só umas dicas, pra galera iniciante: antes de tentar entender php, precisa estudar html, sql e hosting, pra realmente entender o funcionamento do Joomla, ou qualquer outro cms. Não basta tentar entender o código de um dia pro outro, tipo, "Oi, vi na internet, achei legal e como faz?".
leva tempo até entender, e no mais, é muito boa essa iniciativa de tutoriais em português. Um abraço e boa sorte
10 Sáb, 25 de Outubro de 2008 01:54
Joel
Bom, iniciante acabo de instalar o joomla e o nobre homem faz este tuto... mas perai, é confuso, é pra um nivel mas avançado? entao me servirá pro futuro.
Acredito que haja tuto para todos os niveis, é só procurar, um dia ele tambem nao sabia e hoje faz ate tuto que nós estamos achando confuso..
risos
Obrigado mesmo...
abraços e sucesso a todos nós..
11 Sáb, 01 de Novembro de 2008 21:17
Adilson
voce fala o que fazer... mas não fala porque fazer e nem como fazer

Aí voce matou o TUTORial.

complicadíssimo!
12 Qui, 06 de Novembro de 2008 01:57
Francisco Augusto
Mandou bem! Simples e objetivo! Aí galera vamo colocar o miolo pra funcionar tb, nao vamos esperar tudo na mão... não sabe nada de Joomla, então procura o tutorial de "Hello Word" no Joomla por aí! Não vai tentar de cara um negócio mais complicado! Abraço a todos!

Add your comment

Your name:
Your email:
Comment:
  The word for verification. Lowercase letters only with no spaces.
Word verification:
 

Busca Rápida

 

Veja Também