Compartir
Primera parte sobre como crear un template para Joomla!
A diferencia de otros tutoriales que explican como crear un template para Joomla!, en este, no sera necesario ningún programa del tipo Dreamweaver, ni nada por el estilo, tan solo un editor de textos y conocimiento básico de HTML, CSS y PHP (no mucho).
La estructura básica de un template de Joomla! consta de:
- 'Index.php' el cual contendrá el HTML y las directivas PHP;
- 'TemplateDetails.xml', esencial para la instalación del template y su reconocimiento en la administración;
- Una carpeta llamada 'css' que contendrá el estilo en cascada 'template_css.css';
- Una carpeta llamada 'images' que contendrá las imágenes utilizadas para el diseño de la plantilla;
- 'Template_thumbnail.png', una pequeña imagen que funcionará como previsualizacion del template en la administración.
Por lo tanto un template en Joomla! tendrá la siguiente apariencia:
Todos las plantillas van alojadas en la carpeta 'templates', dentro del
directorio raiz de Joomla!. En este caso la plantilla será de tres
columnas, header y footer [ Ver Layout ] [ Descargar ]. No es la esencia de esta guia explicar cómo crear el layout, existen varios sitios para descargarlos y ahorrar trabajo.
Creación del index.php. Con tan solo saber como se desempeñan tres funciones PHP y dos variables ya se puede empezar con la creación del index...
- mosShowHead(): Esta función al invocarla muestra la información metatag, el titulo y favicon. Se lo usa entre <head> y </head>.
- mosMainBody(): Se utiliza para mostrar el cuerpo principal del documento. Se lo usa en el body del documento.
- mosLoadModules ():
Carga los módulos en una posición predispuesta y en un estilo
determinado. Para eso posee dos parámetros (posición , estilo). El
primero dirá que módulos cargar (left, right, user1, user2, user3, top,
etc). El segundo parámetro dirá en que forma cargarlos: 1= horizontal
(cada modulo se cargan en celdas en una única fila), 0= normal (cada
modulo se cargan en celdas en una única columna), -1= raw (los módulos
se cargan en bruto y sin título), -2= XHTML (muestra a los módulos en
divs), -3= extra divs (similar al anterior, pero con más divs). De esta
forma si tenemos mosLoadModules (left, -2) cargará los módulos predispuestos en la posición 'left' y los mostrará en diferentes divs. Otro ejemplo. Si tenemos mosLoadModules (user2, 1) cargamos los módulos predispuestos en la posición 'user2' y los mostrará de manera horizontal.
Variables:
- $mosConfig_live_site: Esta variable contiene la
URL del sitio en cuestión. Asi por ejemplo la variable
$mosConfig_live_site para este sitio es http://www.leandrodonofrio.com.
Se la utilizará para cargar el CSS.
- $mosConfig_sitename: Contiene el nombre del sitio en cuestión. Asi la variable $mosConfig_sitename para este sitio es Leandono´s Blog.
Con esto ya podemos empezar. El paquete de descarga del layout posee
dos archivos, 'index.html' y 'main.css'. Al estilo en cascada lo
renombramos 'template_css.css' y lo guardamos en la carpeta 'css' anteriormente creada. En tanto que a index.html lo abrimos con nuestro editor de textos. Veremos un código similar a:
HTML
-
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-
<html xmlns="http://www.w3.org/1999/xhtml">
-
-
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
-
<title>Fixed Width CSS Layouts - 3 Column - fw-34-3-col
</title>
-
<link rel="stylesheet" type="text/css" href="main.css" />
-
</head>
-
-
-
-
<!-- Begin Wrapper -->
-
-
-
<!-- Begin Header -->
-
-
-
This is the Header
-
-
</div>
-
<!-- End Header -->
-
-
<!-- Begin Left Column -->
-
-
-
Left Column
-
-
</div>
-
<!-- End Left Column -->
-
-
<!-- Begin Content Column -->
-
-
-
<a href="#">Download this CSS Layout
</a>
-
-
</div>
-
<!-- End Content Column -->
-
-
<!-- Begin Right Column -->
-
-
-
Right Column
-
-
</div>
-
<!-- End Right Column -->
-
-
<!-- Begin Footer -->
-
-
-
This is the Footer
-
-
</div>
-
<!-- End Footer -->
-
-
</div>
-
<!-- End Wrapper -->
-
-
</body>
-
</html>
Lo que haremos será copiar todo el código y pegarlo en un nuevo archivo. Este último lo guardamos como 'index.php'
y lo metemos dentro de la carpeta de nuestro template. Lo siguiente
será insertar las funciones PHP y las variables para cargar el
contenido a nuestra plantilla. Para eso abrimos el archivo recién
guardado. Empezaremos por la cabecera del documento:
PHP
-
<head>
-
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
-
<!--Incorporo el Título, Info Meta, y Favicon-->
-
<?php mosShowHead(); ?>
-
<!--Obtengo mi estilo en cascada-->
-
<link href="<?php echo $mosConfig_live_site;?>/templates/nombre_del_template/css/template_css.css" rel="stylesheet" type="text/css" />
-
-
</head>
Lo primero que se hizo fue mostrar toda la información metatag,
titulo del documento y el favicon. Esto se hizo con la directiva <? php mosShowHead(); ?>. Por otro lado utilizando la variable <?php echo $mosConfig_live_site;?>
se cargo el estilo en cascada del documento guardada en la carpeta
'css' dentro del directorio de nuestro template (nombre_del_template).
Esta carpeta se ubicará en el directorio 'templates' cuando hallamos
instalado la plantilla.
Siguiendo con el header del documento lo que haremos será mostrar el nombre del sitio y linkearlo:
PHP
-
-
<div id="header">
-
<!-- Muestro el nombre del sitio -->
-
<h1><a href=
"<?php echo $mosConfig_live_site; ?>"><?php
echo $mosConfig_sitename; ?></a></h1>
-
-
</div>
-
Con <?php echo $mosConfig_sitename; ?> estamos mostrando el nombre del sitio. A su vez se utiliza <?php echo $mosConfig_live_site; ?> para poder crear un link.
Lo siguiente será cargar y mostrar el contenido principal y los módulos:
PHP
-
<!-- Begin Left Column -->
-
<div id="leftcolumn">
-
-
<!-- Cargo los modulos left a la izquierda -->
-
<?php mosLoadModules ( 'left',-2);?>
-
-
</div>
-
-
-
<!-- Begin Content Column -->
-
<div id="content">
-
-
<!-- Cargo el contenido principal -->
-
<?php mosMainBody(); ?>
-
-
</div>
-
<!--
End Content Column -->
-
-
<!-- Begin Right Column -->
-
<div id="rightcolumn">
-
-
<!-- Cargo los modulos right a la derecha -->
-
<?php mosLoadModules ( 'right',-2);?>
-
-
</div>
-
<!--
End Right Column -->
La lectura del documento es fácil. En el div 'leftcolumn' cargaremos los módulos predispuestos en la posición 'left' (<?php mosLoadModules ( 'left',-2);?>). Estos serán mostrados en diferentes divs. Lo mismo sucede con el div 'rightcolumn' y los módulos en posición 'right' (<?php mosLoadModules ( 'right',-2);?>). Mientras tanto, el contenido principal del documento se muestra en la columna central a través de <?php mosMainBody(); ?>.
Finalmente nos queda el footer. Aqui podemos poner lo que queramos o incluir los datos predispuestos en 'footer.php'. Para eso:
PHP
-
<!-- Begin Footer -->
-
<div id="footer">
-
-
<!-- Cargo el footer -->
-
<?php include_once('includes/footer.php'); ?>
-
-
</div>
-
Editando el archivo 'footer.php' (dentro del directorio 'includes',
en la carpeta raiz de Joomla!) podremos cambiar la información a
mostrar. Y asi terminamos el 'index.php', el resultado final es:
PHP
-
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-
<html xmlns="http://www.w3.org/1999/xhtml">
-
<head>
-
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
-
<!--Incorporo el Título, Info Meta, y Favicon-->
-
<?php mosShowHead(); ?>
-
<!--Obtengo mi estilo en cascada-->
-
<link href="<?php echo $mosConfig_live_site;?>/templates/nombre_del_template/css/template_css.css" rel="stylesheet" type="text/css" />
-
</head>
-
-
<body>
-
-
<!-- Begin Wrapper -->
-
<div id="wrapper">
-
-
-
<div id="header">
-
<!-- Muestro el nombre del sitio -->
-
<h1><a href=
"<?php echo $mosConfig_live_site; ?>"><?php
echo $mosConfig_sitename; ?></a></h1>
-
-
</div>
-
-
-
<!-- Begin Left Column -->
-
<div id="leftcolumn">
-
-
<!-- Cargo los modulos left a la izquierda -->
-
<?php mosLoadModules ( 'left',-2);?>
-
-
</div>
-
-
-
<!-- Begin Content Column -->
-
<div id="content">
-
-
<!-- Cargo el contenido principal -->
-
<?php mosMainBody(); ?>
-
-
</div>
-
<!--
End Content Column -->
-
-
<!-- Begin Right Column -->
-
<div id="rightcolumn">
-
-
<!-- Cargo los modulos right a la derecha -->
-
<?php mosLoadModules ( 'right',-2);?>
-
-
</div>
-
<!--
End Right Column -->
-
-
<!-- Begin Footer -->
-
<div id="footer">
-
-
<!-- Cargo el footer -->
-
<?php include_once('includes/footer.php'); ?>
-
-
</div>
-
-
-
</div>
-
-
-
</body>
-
</html>
Escribir un comentario
Comentarios
Espero tu respuesta y muchas gracias nuevamente!
Suscripción de noticias RSS para comentarios de esta entrada.