Professional Documents
Culture Documents
5
GRTIS ONLINE
AU TH OR // L e o Mi ra n d a
C ATEGOR IES // Jo o m l a , C u rs o s Gr ti s , C ri a o d o Ze ro , Te m p l a te s , C u rs o s d e Jo o m l a o n l i n e
Nesse mini-curso iremos mostrar passo a passo como criar um Template Joomla customizado do
zero.
Primeiramente vamos explicar melhor o que um template Joomla.
Mas no fuja muito do HTML, ele a base de tudo na internet, o seu conhecimento ideal at mesmo
para Editores e Redatores.
<?php
/*-----------------------------------------------------------------------# author
your name or company
# copyright Copyright 2011 example.com. All rights reserved.
# @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
# Website
http://www.example.com
-------------------------------------------------------------------------*/
defined( '_JEXEC' ) or die;
// variables
$app = JFactory::getApplication();
$doc = JFactory::getDocument();
$params = &$app->getParams();
$pageclass = $params->get('pageclass_sfx');
$tpath = $this->baseurl.'/templates/'.$this->template;
$this->setGenerator(null);
// load sheets and scripts
$doc->addStyleSheet($tpath.'/css/template.css.php?v=1.0.0');
$doc->addScript($tpath.'/js/modernizr.js'); // <- this script must be in th
head
// unset scripts in head and put them to the end of the page (before
</body>) for better page loading
unset($doc->_scripts[$this->baseurl.'/media/system/js/core.js']);
unset($doc->_scripts[$this->baseurl.'/media/system/js/mootools-core.js']);
unset($doc->_scripts[$this->baseurl.'/media/system/js/caption.js']);
$scripts = '<script src="'.$this->baseurl.'/media/system/js/core.js"
type="text/javascript"></script>';
$scripts .= '<script src="'.$this->baseurl.'/media/system/js/mootoolscore.js" type="text/javascript"></script>';
$scripts .= '<script src="'.$this->baseurl.'/media/system/js/caption.js"
type="text/javascript"></script>';
?><!doctype html>
<!--[if IEMobile]><html class="iemobile" lang=""> <![endif]-->
<!--[if lt IE 7]> <html class="no-js ie6 oldie" lang=""> <![endif]-->
<!--[if IE 7]>
<html class="no-js ie7 oldie" lang=""> <![endif]-->
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
<!--[if IE 8]>
<html class="no-js ie8 oldie" lang=""> <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang=""> <!--<![endif]-->
<head>
<jdoc:include type="head" />
<meta name="viewport" content="width=device-width, initial-scale=1.0,
maximum-scale=1.0, user-scalable=0" /> <!-- mobile viewport -->
<link rel="stylesheet" media="only screen and (max-width: 768px)"
href="/css/tablet.css" type="text/css" />
<link rel="stylesheet" media="only screen and (min-width: 320px) and (maxwidth: 480px)" href="/css/phone.css" type="text/css" />
<!--[if IEMobile]><link rel="stylesheet" media="screen"
href="/css/phone.css" type="text/css" /><![endif]--> <!-- iemobile -->
<link rel="apple-touch-icon-precomposed" href="/apple-touch-icon57x57.png"> <!-- iphone, ipod, android -->
<link rel="apple-touch-icon-precomposed" sizes="72x72" href="/apple-touchicon-72x72.png"> <!-- ipad -->
<link rel="apple-touch-icon-precomposed" sizes="114x114" href="/appletouch-icon-114x114.png"> <!-- iphone retina -->
<!--[if lte IE 8]>
<style>
{behavior:url(/js/PIE.htc);}
</style>
<![endif]-->
</head>
<body class="">
<div id="overall">
<div id="header">
<div class="inheader">
</div>
</div>
<div id="main">
<div class="inmain">
</div>
</div>
<div id="footer">
<div class="infooter">
</div>
</div>
</div>
<jdoc:include type="modules" name="debug" />
</body>
</html>
<body
<div
<div
<div
class="">
id="overall">
id="header">
class="inheader">
</div>
</div>
<div id="main">
<div class="inmain">
</div>
</div>
<div id="footer">
<div class="infooter">
</div>
</div>
</div>
<jdoc:include type="modules" name="debug" />
<?=$scripts?>
</body>
Na primeira linha existe um pequeno cdigo que ir imprimir uma classe especfica para cada pgina
sua, caso exista. uma tima forma de poder customizar estilos diferentes para cada pgina.
As linhas seguintes so tags HTML de diviso, onde temos a diviso do cabealho, corpo e rodap,
voc pode estar alterando como desejar.
No final temos um JDOC, que o cdigo que voc precisa colocar para imprimir um mdulo do Joomla
com o respectivo nome no atributo "name". Nesse caso ele imprime o debug caso esteja ativado no
Joomla.
Por ltimo ele imprime a varivel $script com as chamadas de JS que carregou na varivel l no topo.
Modificando o index.php
Vamos modificar o que est entre as tag <body> da sequinte forma:
01.
02.
03.
04.
05.
06.
07.
08.
09.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
<body class="">
<div id="overall">
<div id="header">
<div class="inheader">
<jdoc:include type="modules" name="topo" />
</div>
</div>
<div id="main">
<div class="inmain">
<jdoc:include type="message" />
<jdoc:include type="modules" name="artigo-topo" />
<jdoc:include type="component" />
<jdoc:include type="modules" name="artigo-baixo" />
</div>
</div>
<div id="footer">
<div class="infooter">
<jdoc:include type="modules" name="rodape" />
</div>
20.
21.
22.
23.
24.
</div>
</div>
<jdoc:include type="modules" name="debug" />
<?=$scripts?>
</body>
O que modificamos?
Adicionamos uma posio de mdulo chamado "topo", dentro das tags do topo do site. Assim, voc
poder por exemplo criar um mdulo tipo HTML e colocar seu logo e uma imagem por exemplo, s
salvar o mdulo na posio "topo".
Dentro do "main" criamos uma tag JDOC do tipo "message", ela ir imprimir alguma mensagem quando
tiver, por exemplo, quando cadastrar um usurio ou enviar um email.
Outra tag especial que criamos foi a do tipo "componente", ela que ir carregar o contedo principal
da sua pgina, ou seja, o seu artigo, blog de artigo e todos os componentes.
Criamos tambm duas posios entre o carregamento da pgina, uma chamada "artigo-topo" e outra
"artigo-baixo", nele voc poder colocar mdulos especfico em cima e em baixo dos artigos e
contedos das pginas, como por exemplo o breadcrumb.
E para finalizar colocamos uma chamada de mdulo no "rodape".
Pronto, essas so as tags bsicas que voc precisa saber para alterar o template como quiser, basta
modificar o HTML e colocar novas posies de mdulos com nomes diferentes.
Salve o seu index.php.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
01.
02.
03.
04.
05.
06.
07.
08.
09.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
<filename>template_thumbnail.png</filename>
<filename>templateDetails.xml</filename>
</files>
<languages folder="languages">
</languages>
<positions>
<position>topo</position>
<position>artigo-topo</position>
<position>artigo-baixo</position>
<position>rodape</position>
<position>debug</position>
</positions>
<config>
<fields name="params">
<fieldset name="advanced">
<field name="FIELD_SPACER_HEADER_DESC" type="spacer" hr="false" />
</fieldset>
</fields>
</config>
</install>
Note que eles esqueceram de mudar a verso do Joomla na terceira linha, ele continua funcionando,
mas vamos modificar.
<name> - Logo abaixo temos o nome do template, no coloque caracteres especiais, nem espaos
nem acentos.
Depois modifique os dados de crditos do template, data, autor, etc.
<description> - Apenas descrio em HTML
<files> - Se adicionou novos arquivos, adicionar dentro dessa tag como as demais.
<languages folder="languages"> - Modifique o nome do arquivo aqui, ou apague, j que no iremos
usar em outros idiomas, apague tambm os arquivos na pasta language.
<positions> - Modifique para as posies existente no seu template
Nesse momento temos um template instalado, porm se perceber ele est todo
branco e descentralizado.
Isso acontece porque no demos um estilo no CSS do template, temos apenas
a estrutura bsica do HTML sem estilo.
A idia desse mini-curso no ensinar HTML e CSS, se voc realmente quer
ser um Web Designer saber HTML e CSS essencial.
Para ilustrar melhor essa nova faze do projeto vamos fazer uma pequena modificao.
ALTERANDO O CSS
Abra o arquivo template.css que est na pasta CSS:
01.
02.
03.
04.
05.
06.
/* TEMPLATE CSS
*********************************************/
html {height:100%; margin-bottom:1px; overflow-y:scroll;}
body {background-color:#fff; color:#000; font:normal normal normal 75%/125%
arial,sans-serif; height:100%; text-align:center;}
/* LAYOUT
07.
08.
09.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
*********************************************/
#overall {height:100%; margin:0 auto; text-align:left; width:100%;}
#header {}
#main {}
#footer {}
/* Layout Classes */
.inheader {}
.inmain {}
.infooter {}
/* Floats */
.float-left {float:left;}
.float-right {float:right;}
.group:before, .group:after {content:""; display:table;}
.group:after {clear:both;}
.ie6 .group {zoom:1;}
.ie7 .group {zoom:1;}
Agora veja como com pouco cdigo de CSS voc consegue dar uma forma personalizada ao seu
template:
/* TEMPLATE CSS
*********************************************/
html {height:100%; margin-bottom:1px; overflow-y:scroll;}
body {background-color:#eee; color:#000; font:normal normal normal 75%/125%
arial,sans-serif; height:100%; text-align:center;}
/* LAYOUT
*********************************************/
#overall {height:100%; margin:0 auto; text-align:left; width:100%;}
#header { background-color: #000; }
#main { background-color: #fff; }
#footer { background-color: #eee; }
/* Layout Classes */
.inheader { width:960px; margin:0 auto; padding:20px; }
.inmain { width:960px; margin:0 auto; padding:20px; }
.infooter { width:960px; margin:0 auto; padding:20px; }
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
Para quem no conhecia ainda CSS deu para perceber que ele realmente todo estiloso.