Ver Mensaje Individual
  #3 (permalink)  
Antiguo 18/03/2010, 20:17
Avatar de CraToS
CraToS
 
Fecha de Ingreso: diciembre-2008
Ubicación: Alajuela, CR
Mensajes: 24
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: como creo plantilla para joomla

Hola

Te preparé lo siguiente, a modo de resumen muy rápido (parecerá mucho texto, pero créeme que es un resumen...)

Al crear un template joomla en lo que más se tarda uno es en dejar la estructuración y el estilo general suficientemente terminados y definidos.

Básicamente, lo que tienes que tener muy bien claro al diseñar tu template es dónde van a estar:
- Los módulos
- El contenido principal
- Opcional: posición para "Breadcrumbs" (como lo es por ej: "Foros del Web > Diseño de Sitios web > Aplicaciones prefabricadas > Joomla > como creo plantilla para joomla", y los mensajes del sistema (como los que se despliegan al haber errores en algún formulario, o al enviarse dicho formulario, etc. Algunos componentes requieren tener estos espacios definidos en el template, pero no es obligatorio.)

INDEX.PHP

En cada posición se coloca una línea de código que Joomla entenderá para asignar ahí un módulo determinado. Por ejemplo, si quieres poner en un div tal la posición "left", entonces debes poner esto:



Código PHP:
Ver original
  1. <div id="izquierda">
  2.        <jdoc:include type="modules" name="left" style="xhtml" />
  3. </div>


Y con eso el sistema colocará todos los módulos asignados a "left" en ese espacio. (Ojo que lo del div es ejemplo, si quieres ponerlo dentro de una tabla es igual, aunque no es recomendable utilizar tablas para estructuración principal)

Así haces con el resto de posiciones. Tu escoges las que quieras.


Luego para el contenido haces lo mismo, sólo que la línea de código cambia, deberás usar:
Código PHP:
Ver original
  1. <div id="contenido_principal">
  2.                 <jdoc:include type="component" />
  3. </div>

Y para mensajes de sistema y breadcrumb las líneas son:
Código PHP:
Ver original
  1. <jdoc:include type="module" name="breadcrumbs" style="none" />
  2. <jdoc:include type="message" />

También, las colocas donde quieras.

Todo esto es dentro de las etiquetas del BODY.

Ahora, importante, para el HEAD y principio del archivo (siempre en index.php) debes poner como mínimo algo como esto:
Código PHP:
Ver original
  1. <?php
  2. // no direct access
  3. defined( '_JEXEC' ) or die( 'Restricted access' );
  4. ?>
  5.  
  6. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  7.  
  8. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?php echo $this->language; ?>" lang="<?php echo $this->language; ?>" >
  9.  
  10. <head>
  11. <jdoc:include type="head" />
  12.  
  13. <link rel="stylesheet" href="<?php echo $this->baseurl; ?>/templates/<?php echo $this->template; ?>/css/tu-hoja-de-estilo.css" type="text/css" />
  14. <link rel="stylesheet" type="text/css" href="<?php echo $this->baseurl; ?>/templates/system/css/general.css"/>
  15. <link rel="stylesheet" type="text/css" href="<?php echo $this->baseurl; ?>/templates/system/css/system.css"/>
  16. </head>

Nota: Dentro del index.php, cada vez quieras usar el URL de tu sitio, es recomendable usar este línea de código en lugar del uri absoluto:
Código PHP:
Ver original
  1. <?php echo $this->baseurl; ?>
que equivale al URL del sitio (e.g.: http://www.tusitioweb.com).

Nota2:
La línea de código:
Código PHP:
Ver original
  1. <?php echo $this->template ?>
es una variable que reemplaza el valor del nombre de la carpeta del template en el directorio. Si la carpeta de tu template se llama por ejemplo "mitemplate" entonces "<?php echo $this->template ?>" es igual a "mitemplate".




templateDetails.xml

Si lo quieres hacer simple, puedes utilizar algo como esto, y llenarlo con tus propios datos:

Código XML:
Ver original
  1. <?xml version="1.0" encoding="iso-8859-1"?>
  2. <mosinstall type="template">
  3.     <name>Título del Template</name>
  4.     <creationDate>la fecha de cración - se puede usar cualquier formato</creationDate>
  5.     <author>Tu nombre</author>
  6.     <copyright>This template is released under the GNU/GPL License - pones lo que quieras</copyright>
  7.     <authorEmail>[email protected]</authorEmail>
  8.     <authorUrl>http://www.tusitio.com</authorUrl>
  9.     <version>1.0 - la versión que escojas para tu template</version>
  10.     <description>El tag lo dice sólo... :)</description>
  11. <files>
  12.     <filename>index.php</filename>
  13.     <filename>templateDetails.xml</filename>
  14.     <filename>template_thumbnail.png</filename>
  15. </files>
  16. <images>
  17.     <filename>images/arrow.png</filename>
  18.     <filename>images/bg_green.gif</filename>
  19.     <filename>images/header_bg.jpg</filename>
  20.     <filename>images/mainmenu_bg.jpg</filename>
  21. </images>
  22. <css>
  23.     <filename>css/tu-hoja-de-estilo.css</filename>
  24. </css>
  25. <positions>
  26.     <position>header</position>
  27.     <position>top</position>
  28.     <position>breadcrumb</position>
  29.     <position>left</position>      
  30.     <position>footer</position>
  31. </positions>
  32. </mosinstall>

Obviamente, en <images> dentro pones las imágenes que usaste en tu template, si ocupas más líneas pues simplemente las agregas. Lo mismo con las posiciones que declaraste en el index.php.

Nota3: "content" no se declara en <positions> ya que no es una posición, sino precisamente el contenido principal, el cual es obligatorio ponerlo, ya que ahí es donde Joonla despliega los artículos y componentes.

Nota4: el template_thumbnail.png es una imagen que se hace con el fibn de servir como identificador gráfico en el ACP (Administrator Control Panel) de Joomla, en el administrador de plantillas. (Debe ser tipo thumbnail, de unos 200x150px, y lo ideal es que muestre un screenshot del aspecto de tu tempalte.




Para apoyo, la documentación oficial se encuentra en:
http://docs.joomla.org/Tutorial:Creating_a_basic_Joomla!_template#Creatin g_a_basic_index.php_file


Espero que te sirva la info, y lo que se requiere es paciencia, prácticamente.


Saludos!

Última edición por CraToS; 18/03/2010 a las 20:22